【问题标题】:Logical expression simplification逻辑表达式简化
【发布时间】:2013-09-25 09:01:11
【问题描述】:

(S or (G and not S)) or not G。这如何简化?

((S or G) and ( S or not S )) or not G == > ( S or not S ) 是一个重言式,因此可以取消,给我们

(S or G) or not G ==> G or not G 又是一个重言式,所以我们只剩下 S 了吗?我们是不是做错了什么?

【问题讨论】:

  • 这是一种编程情况,还是您只是在简化这个表达式时遇到了问题。如果你的语言 L 包含逻辑符号 or,¬,那么这很容易出现任何数量的简化,可能是正常的形式。
  • @thg435 太棒了,谢谢!

标签: math logic


【解决方案1】:

boolean逻辑两个变量SG可以取如下可能的值,输出归结为值1

S G
---
0 0
0 1
1 0
1 1

输出:

 (S || (G && !S)) || !G
  0     0     1       1    =  1
  0     1     1       0    =  1
  1     0     0       1    =  1
  1     1     0       0    =  1

编辑:上面用于导出给定表达式的方法是真值表和Karnaugh map。请检查两者之间的对应关系以及如何使用布尔简化来解决从 K-Map 生成的输出函数的链接。

【讨论】:

  • 第二种方法看起来很有希望。您能否详细说明它与您还提供的真值表方法有何不同(如果您愿意,它是如何相似的)。也许你可以说出这两种解决方法?解释为什么“输出”位有效也很好!例如,在每个步骤中使用了布尔代数的哪些公理。
  • @Tom 方法 1 和 2 分别称为真值表方法和 Karnaugh map,K-map 给出了将常见的想要的文字分组在一起的图形表示。如答案中所述,我们推导出文字Output(S, G) 的函数,并使用代数Boolean Axioms 我们只是该函数。两种方法之间都有对应关系,这在上面的 wiki 网页中有清楚的解释。
  • 然后将其添加到您的答案中。你不是在向我解释,你是在向 OP 解释!
  • 就个人而言,我会详细说明 Kranaugh 地图,因为这是一个完善的机制,用于检测 OP 严格要求的“简化”(尽管我不确定 OP 是否真的是这个意思)。
【解决方案2】:

真值表适用于具有少量非逻辑谓词的命题逻辑 (PL)(即没有量词、关系和身份的逻辑)语言。问题在于 n 个非逻辑项(所有带有 PL 的命题变量),您需要 2^n 次评估。

假设经典逻辑,另一种方法是分配成范式,然后您通常可以“读出”每个估值都是真实的。

(S or (G and ¬S)) or ¬G

((S or G) and (S or ¬S)) or ¬G(按分布)

(((S or G) or ¬G) and ((S or ¬S) or ¬G))(再次分配)

T(通过条款的决议-认为“阅读”)

为了解释这个“阅读”意味着什么: 这种合取范式中的所有子句都计算为真的,因为每个析取都包含至少一对phi¬phi 形式。

【讨论】:

    【解决方案3】:

    这不只是 S 或 G 吗?

    假设它们是重叠的,你想要 S,或者 G(没有与 S 的交集)或不是 G。这导致整个 S(包括与 G 的交集)和 G 没有与 S 的交集,这是 S&G 的总和。

    如果我错了,请纠正我。

    【讨论】:

    • 交叉路口?这与这个逻辑表达式有什么关系? AFAIK 交叉点仅与集合有关?
    • 逻辑和集合有什么区别?
    猜你喜欢
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    相关资源
    最近更新 更多