一些已知术语组合的布尔简化



我使用Quine McCluskey进行布尔简化,效果很好。

然而,我现在需要使用一些已知的术语组合来进行简化。

例如,我想简化:

(A+B)C

如果我知道:

A+B==true

那么这就简化为:

C

或者如果我知道:

BC==false

然后简化为

AC

有没有一种算法可以在给定已知术语列表的情况下简化布尔表达式?

我发现了这个问题的一个很好的解决方案。

Quine McCluskey能够处理一个真值表,其中一些术语被标记为"不在乎",这意味着该术语永远不会出现,因此最小化表达式可以返回true或false。

例如:

A B结果0 00 1不在乎1 0不在乎1 1不在乎

可以清楚地看到,上面的函数可以最小化,只返回"false",因为这是我们唯一关心的结果。

因此,要处理已知术语,所要做的就是将真值表中已知术语评估为false的任何术语的结果设置为"不在乎"。然后,Quine McCluskey算法在考虑已知项的情况下生成最小化函数。

例如,如果我们有一个a和B的函数,并且我们知道A == false,那么真值表上a为真的任何一行都可以标记为"不在乎",因为我们知道它永远不会发生。

最新更新