【问题标题】:How To simplify boolean equations如何简化布尔方程
【发布时间】:2019-02-16 18:21:26
【问题描述】:

请注意,这是一个代表所有相似问题总和的示例问题,请不要只回答下面的问题,而是优化布尔表达式的一般问题


我有这个布尔方程:[boolean equation] e.g. (!B && A) || A

有没有更好的办法?

【问题讨论】:

  • 您可以使用以下序列以获得更好的性能 A || (!B && A)
  • 这个问题不是关于如何简化那个单一的方程,而是一般
  • 这样我添加了评论而不是回答。
  • 对于一般情况 - 使用卡诺图。
  • 这能回答你的问题吗? Simplify boolean expression algorithm

标签: boolean-logic boolean-expression


【解决方案1】:

布尔方程遵循简单的计算规则,称为Boolean Algebra

通过这些规则,您可以通过努力简化任何布尔方程:

 Associativity of ∨ :         x ∨ ( y ∨ z ) = ( x ∨ y ) ∨ z 
 Associativity of ∧ :         x ∧ ( y ∧ z ) = ( x ∧ y ) ∧ z
 Commutativity of ∨ :                 x ∨ y = y ∨ x 
 Commutativity of ∧ :                 x ∧ y = y ∧ x 
 Distributivity of ∧ over ∨ : x ∧ ( y ∨ z ) = ( x ∧ y ) ∨ ( x ∧ z )
 Identity for ∨ :                     x ∨ 0 = x
 Identity for ∧ :                     x ∧ 1 = x 
 Annihilator for ∧ :                  x ∧ 0 = 0 

 The following laws hold in Boolean Algebra, but not in ordinary algebra:

 Annihilator for ∨ :                  x ∨ 1  = 1
 Idempotence of ∨ :                    x ∨ x = x 
 Idempotence of ∧ :                    x ∧ x = x  
 Absorption 1:                 x ∧ ( x ∨ y ) = x  
 Absorption 2:                 x ∨ ( x ∧ y ) = x 
 Distributivity of ∨ over ∧ : x ∨ ( y ∧ z ) = ( x ∨ y ) ∧ ( x ∨ z )

 Complementation 1 :                  x ∧ ¬x = 0
 Complementation 2 :                  x ∨ ¬x = 1
 Double negation :                     ¬(¬x) = x
 De Morgan 1 :                       ¬x ∧ ¬y = ¬(x ∨ y)
 De Morgan 2 :                       ¬x ∨ ¬y = ¬(x ∧ y)

注意

  • 代表OR (||)
  • 代表AND (&&)
  • ¬ 代表NOT (!)
  • = 代表EQUALS (==)

但是,由于您的方程式更加复杂,因此手动完成几乎是不可能的。完成的第一步是truth table。 它应该看起来像这样:

您也可以在线创建真值表,例如使用 tool

从真值表中,您可以创建一个KV-Map。 这些可能如下所示:

还有创建 KV-Maps 的在线工具(我推荐this one)。

如何根据你的真值表来填写这些地图不是这里的主题。

如何从 KV-Map 中获取布尔方程也不是主题,但推荐的工具是为您计算它:

问题的总结:如果你想优化你的布尔方程,用你的方程创建一个真值表:

填写KV-Map:

并用计算出的最短路径替换您的方程式:


补充:用 KV-Map 计算的方程是可能的最短方法。您仍然可以使用布尔代数进行一些转换,但这不会使这些方程看起来更容易。

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 2018-04-20
    • 1970-01-01
    • 2011-08-17
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多