演算法概論 8 8

2021-07-24 23:44:10 字數 551 閱讀 6185

在精確的4sat(exact 4sat)問題中,輸入為一組子句,每個子句都是恰好4個文字的析取,且每個變數最多在每個子句中出現一次。目標是求它的滿足賦值————如果該賦值存在。證明精確的4sat是np-完全問題。

考慮通過將3sat問題歸約到4sat(exact 4sat)問題來驗證4sat(exact 4sat)問題的np完全性。

對於任意乙個3sat例項,考慮其每個子句。若該子句中多次包含同一文字,則這些文字可以縮減成一次,即

... ∨ p ∨ ... ∨ p ∨ ... ∨ p ∨ ...=... ∨ p ∨ ... ;
若該子句中某個包含某個文字本身及其否定,則這些文字可以相互抵消去掉,即

... ∨ p ∨ ... ∨ ┐p ∨ ... ∨ ┐p ∨ ...=... ;
經過上述簡化後,在子句中新增若干啞變數,是每個子句包含的文字數目為4個。此時,3sat例項成功轉化為乙個4sat例項。顯然,上述過程能使任意乙個3sat例項轉化為乙個4sat例項,於是3sat問題成功歸約為乙個4sat(exact 4sat)問題。

《演算法概論》8 8

題目 在精確的4sat exact 4sat 問題中,輸入為一組自居,每個字句都是恰好4個文字的析取,且每個變數最多在每個字句中出現一次。目標是求它的滿足賦值 如果該賦值存在。證明精確的4sat是np完全問題。證明 用歸約來證明 如果問題a可以歸約到問題b,記作a b,如果a是np完全問題,則通過歸...

演算法概論課後習題8 8

設3sat的例項i a1v a2v a3 a4 v a5 v a6 anv an 1v an 2 根據4sat問題的條件,每個變數最多在每個子句中出現一次。如果某個變數在子句中出現多次,則縮減為1次。如果某個子句中同時包含互反的兩個變數,則將這兩個變數同時去除。接下來在各子句中新增1個變數,轉化為4...

演算法概論習題 8 8解答

在精確的4sat exact 4sat 問題中,輸入為一組子句,每個字句都是恰好4個文字的析取,且每個變數最多在每個子句中出現一次。目標是求它的滿足賦值 如果該賦值存在。證明精確的4sat是np 完全問題。在證明精確的4sat問題是np 完全問題前,先得證明其屬於np問題。因為exact 4sat和...