(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?我们做错了什么?
(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?我们做错了什么?
从boolean逻辑两个变量S
和G
可以采取如下可能的值,其输出归结为值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
EDIT:上述方法用于导出给定表达式是真值表和Karnaugh map。请检查两者之间的对应关系,以及如何使用布尔简化来解决由K-Map生成的输出函数。
第二种方法看起来很有前途。你能否详细说明它是如何区分的(并且如果你喜欢,它是如何相似的)与你给出的真值表方法。也许你可以说出解决这两种方法?为什么“输出”位工作的解释也不错!例如,每个步骤都使用布尔代数的公理。 – Tom
@Tom方法1&2分别被称为真值表方法和[卡诺图(Karnaugh map)](http://en.wikipedia.org/wiki/Karnaugh_map),K-map给出了一个图形表示,将常见的文字分组在一起。我们如回答中所述并使用代数[布尔公理](http://en.wikipedia.org/wiki/Boolean_algebra_(logic)#Axioms)推导文字'输出(S,G)'的函数,我们简单地将函数。两种方法之间都有对应关系,这在上面的wiki网页中有明确的解释。 –
然后将它添加到您的答案。你没有向我解释,你向OP解释! – Tom
对于命题逻辑(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))
(由distibutivity再次)
T
(通过的决议clauses-认为 “读书客”)
解释这“读取”相当于: 这个连接范式中的所有子句都是真正的评估,因为每个析取包含在至少有一对形式phi
和¬phi
。
http://www.wolframalpha.com/input/?i=(S+or+(G+and+not+S))+or+not+G – georg
这是一个编程的情况,或者你只是有一个简化这个表达式的问题。如果您的语言L包含逻辑符号或¬,那么这对于任何简化(可能是一种正常形式)来说都很流行。 – Tom
@ thg435哦真棒,谢谢! – WUBWUBS