簡體   English   中英

如何最小化此邏輯(或門CNF)?

[英]how to minimize this logic (or-gate CNF)?

我正在寫電路可滿足性問題中“或”門的真值表(這與減少3可滿足性問題有關)。

我有:

a  b  c    c = (a OR b)
1  1  1    1
1  1  0    0
1  0  1    1
1  0  0    0
0  1  1    1
0  1  0    0
0  0  1    0
0  0  0    1

因此,如果我在列c =(a OR b)中使用0,則對a,b,c求反,那么我得到了四個子句:

!a AND !b AND c
a AND !b AND !c
a AND !b and c
a AND b AND !c

我試圖最小化這些條款。 我知道正確的答案是:

c OR !a
c OR !b
c OR !a or !b

如何最小化這四個條款? 在線有程序嗎? 我使用了Wolfram,但是它沒有輸出正確的答案,因此,如果有人有幫助的話,那就太好了

很容易看出,除了最后兩行外,最后一列與c列幾乎相同。 對於最后兩行,它交換了c列中的值。 所以我們可以這樣寫:

if (a ∨ b) then c else ¬c

if c then t else f可以表示為CNF (c ∨ t) ∧ (¬c ∨ f)因此上面的公式將如下所示:

(a ∨ b ∨ ¬c) ∧ (¬(a ∨ b) ∨ c)
= (a ∨ b ∨ ¬c) ∧ ((¬a ∧ ¬b) ∨ c)
= (a ∨ b ∨ ¬c) ∧ (¬a ∨ c) ∧ (¬b ∨ c)

最后一個正是您想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM