python - Python 的 bool 函数优化器包

标签 python optimization hardware boolean-logic

我想以表格形式定义一个 bool 函数(具有 n 个输入和 m 个输出)。我想找到一个实现该功能的最佳 bool 表达式。这里的最优意味着,在硬件中实现它需要尽可能少的门(可能每个门都有不同的成本)

我确信 VHDL/Verilog 合成器经常进行这种优化,出于同样的原因,我基本上也需要它。有某种卡诺求解器吗?或者,是否可以将问题指定为经典优化问题(SAT,整数规划)?我想用 Python 实现它,所以我主要是在寻找一个已经可以做到这一点的包。

最佳答案

寻找最佳解决方案的算法具有指数级的复杂性,因此通常可用的工具会寻找良好的实现而不是最佳实现。我不确定您的要求有多严格,或者您的功能有多大。

逻辑优化的一种算法是Quine-McCluskey .有一个 python implementation .但是,这仅涵盖单个输出情况。

$ ./qm.py -o 1,2,3
1X X1
$ ./qm.py -o 1,2
10 01
$ ./qm.py -o 0,15
1111 0000
$ ./qm.py -o 0,8,15
1111 X000

对于多个输出,最简单的策略是分别实现每个输出。它们之间可能有一些重复的术语,可以很容易地共享;构建最大化共享的逻辑更加困难。

关于python - Python 的 bool 函数优化器包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5922315/

相关文章:

python - Anaconda Python 在 Windows10 中安装 imutils

Python:完整的模块列表

performance - 如何衡量由许多子基准组成的基准的可变性?

javascript - 为什么递归比 JavaScript 求和函数的平面 for 循环更快?

objective-c - 调试statfs?

c++ - 升级显卡时帧率降低是什么原因?

python - len 的文档字符串中的 "module"是什么?

xcode - 如何在 Xcode 中打开优化?

optimization - 按位运算在加法上分布吗?

Python:展平对象列表