(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