【问题标题】:Anyone knows Reduce Boolean Expression任何人都知道减少布尔表达式
【发布时间】:2016-04-17 06:56:13
【问题描述】:

谁能帮我把它减少到 4 个文字?

F = ( A + C + D) ( A + C + D') (A + C' + D) ( A + B')

我在逻辑星期五进行了测试,答案是 F = C D B' + A。

【问题讨论】:

标签: boolean logic boolean-expression


【解决方案1】:

假设 ⋅ 运算符表示二元合取、+ 二元析取和 ' 或 ¬ 一元否定,我会以这种方式应用 Boolean algebra 的法则:

(a + c + d)⋅(a + c + ¬d)⋅(a + ¬c + d)⋅(a + ¬b)
((a + d) + (c⋅¬c))⋅(a + c + ¬d)⋅(a + ¬b)        //distributivity
((a + d) + (0))⋅(a + c + ¬d)⋅(a + ¬b)       //complementation: c⋅¬c = 0
(a + d)⋅(a + c + ¬d)⋅(a + ¬b)           //identity for +: (a + d) + (0) = (a + d)
(a) + (d⋅(c + ¬d)⋅¬b)                 //distributivity
(a) + ((d⋅c + d⋅¬d))⋅¬b)              //distributivity: d⋅(c + ¬d) = (d⋅c + d⋅¬d)
(a) + ((d⋅c + 0))⋅¬b)                 //complementation: d⋅¬d = 0
(a) + (d⋅c⋅¬b)                        //identity for +: (d⋅c + 0) = d⋅c

a + ¬b⋅c⋅d

最后一行是最小的 DNF。您也可以通过这种方式将其转换为最小的 CNF:

(a) + (¬b⋅c⋅d)
(a + ¬b)⋅(a + c)⋅(a + d)              //distributivity

对于这么少的变量,您可以使用卡诺图快速找到最小形式或控制结果。在下图中(使用 Latex 生成)是它的最小 DNF 和最小 CNF 旁边的原始表达式。

【讨论】:

  • 谢谢你,希望我的感谢还不算太晚,我没有注意到
【解决方案2】:

找到平均术语后,您可以使用 Quine McCluskey Technique 解决表达。结果将与 K-Map 相同。但它是许多可验证的布尔表达式的快速技术。

Quine McCluskey online solver

【讨论】:

    猜你喜欢
    • 2012-03-17
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多