use*_*968 5 algorithm boolean-logic algebra boolean-operations
我正在处理布尔函数,我只能(但安全地)假设它们作为SOP进入并且不包含否定(例如(A && B && C)||(A && B && D)).析取的数量通常> 5,连词的数量通常> 10.
因为在我的情况下计算每个变量的值很难并且结果被认为是短暂的,我需要能够最小化关于变量出现的所述函数.这种最小化的结果不需要是任何正常形式,并且允许任意深度嵌套.
在问过类似问题之前,SO 指出了使用扇出最小化,卡诺图,QM或BDD的一般解决方案.在处理这些方法之前 - 这会大大夸大我的代码 - 我想仔细检查输入函数的先验已知事实是否不会产生使用较小但较不通用的最小化方法的可能性.
应用吸收和分配规律的AFAICS将始终提供最小的形式.是否有可能利用这些功能作为SOP而没有否定的事实?在我看来,对变量应该有一个简单的交集和并集运算的递归算法,它将产生所需的结果.
可以描述一下这个算法吗?
编辑:征求意见:在对该主题做了一些研究之后,在我看来,这里提出的问题等同于找到给定函数的简化BDD的最优变量排序.
背景:最小化的函数被传递到作业队列以计算所有必需变量的值.之后评估该功能.考虑应用示例:
归档时间: |
|
查看次数: |
1529 次 |
最近记录: |