如何使用许多变量(> 10)简化给定的布尔表达式,以便最大限度地减少每个变量的出现次数?
在我的场景中,变量的值必须被认为是短暂的,也就是说,必须为每次访问重新计算(当然仍然是静态的)。因此,我需要在尝试解决函数之前尽量减少变量的评估次数。
考虑功能
f(A,B,C,D,E,F)=(ABC)+(ABCD)+(ABEF)
递归地使用分配和吸收法则提出
f'(A,B,C,E,F)= AB(C +(EF))
我现在想知道是否有一种算法或方法可以在最短的运行时间内解决这个问题。
在上面的示例中仅使用Quine-McCluskey
f'(A,B,C,E,F)=(ABEF)+(ABC)
这对我的情况不是最佳的。假设首先使用QM进行简化然后使用上面的代数进一步减少是最佳的,是否可以保存?
答案 0 :(得分:1)
我经常使用Wolfram Alpha来做这类事情。
答案 1 :(得分:-1)
尝试Logic Friday 1
它具有布尔电路的多级设计。
对于您的示例,输入和输出如下所示:
答案 2 :(得分:-1)
您可以使用在线布尔表达式计算器,例如https://www.dcode.fr/boolean-expressions-calculator
您可以参考Any good boolean expression simplifiers out there?,这肯定会有所帮助。