2013-09-25 132 views
0

(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?我们做错了什么?

+0

http://www.wolframalpha.com/input/?i=(S+or+(G+and+not+S))+or+not+G – georg

+0

这是一个编程的情况,或者你只是有一个简化这个表达式的问题。如果您的语言L包含逻辑符号或¬,那么这对于任何简化(可能是一种正常形式)来说都很流行。 – Tom

+0

@ thg435哦真棒,谢谢! – WUBWUBS

回答

2

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 

Solving boolean logic

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

+0

第二种方法看起来很有前途。你能否详细说明它是如何区分的(并且如果你喜欢,它是如何相似的)与你给出的真值表方法。也许你可以说出解决这两种方法?为什么“输出”位工作的解释也不错!例如,每个步骤都使用布尔代数的公理。 – Tom

+0

@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网页中有明确的解释。 –

+0

然后将它添加到您的答案。你没有向我解释,你向OP解释! – Tom

0

这不仅仅是S或G吗?

假设它们重叠,你想要S或G(不与S交点)或不是G.其中导致整个S(包括与G的交点)和G没有与S的交点S即为S & G总。

纠正我,如果我错了。

+0

相交?这与这个逻辑表达式有什么关系? AFAIK十字路口只涉及集? – WUBWUBS

+0

逻辑和集合有什么区别? – Tom

1

对于命题逻辑(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