算法概論課後習題8.8

設3SAT的實例I=(a1V a2V a3)(a4 V a5 V a6)...(.anV an+1V an+2)

根據4SAT問題的條件,每個變量最多在每個子句中出現一次。如果某個變量在子句中出現多次,則縮減爲1次。

如果某個子句中同時包含互反的兩個變量,則將這兩個變量同時去除。

接下來在各子句中添加1個變量,轉化爲4SAT。如(a1V a2V a3)轉化爲4SAT的實例(a1V a2V a3Vb)∧(a1V a2V a3V?b)

如果某組數值滿足(a1V a2V a3),則它也同時滿足(a1V a2V a3Vb)∧(a1V a2V a3V?b)。所以如果3SAT實例是可滿足的,4SAT實例也是可滿足的。

另外,如果(a1V a2V a3Vb)∧(a1V a2V a3V?b)是可滿足的,由於b和?b是一真一假,所以可推出(a1V a2V a3)爲真,3SAT的實例是可滿足的。

結合上述兩條可推出3SAT可歸約爲4SAT。

綜上所述,4SAT問題是NP-完全問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章