在精確的4sat(exact 4sat)問題中,輸入為一組子句,每個字句都是恰好4個文字的析取,且每個變數最多在每個子句中出現一次。目標是求它的滿足賦值——如果該賦值存在。證明精確的4sat是np-完全問題。
在證明精確的4sat問題是np-完全問題前,先得證明其屬於np問題。因為exact 4sat和sat相同,在多項式時間內可以顯然地給出乙個解得以驗證,所以我們說這個問題是np的。
接下來我們通過把3sat問題歸約到exact 4sat問題來證明exact 4sat問題為np-完全問題。首先,對於任意乙個3sat問題,若子句中包含同一文字多次,我們把這些重複的縮減為一次。然後,若子句中同時包含某乙個文字以及其否定,那麼我們把兩者同時消去。最後,在簡化後的子句中我們新增一些無關的輔助變數(啞變數),使得每個子句包含的文字數目為4個。這樣,3sat問題就能歸約成exact 4sat問題。而我們能知道3sat問題就是乙個np-完全問題。因此exact 4sat問題也是乙個np-完全問題。
演算法概論課後習題8 8
設3sat的例項i a1v a2v a3 a4 v a5 v a6 anv an 1v an 2 根據4sat問題的條件,每個變數最多在每個子句中出現一次。如果某個變數在子句中出現多次,則縮減為1次。如果某個子句中同時包含互反的兩個變數,則將這兩個變數同時去除。接下來在各子句中新增1個變數,轉化為4...
演算法概論習題解答8 22
8.22 問題描述 在任務排程,常常會用到圖。其中節點應用於任務,任務i到j的有向邊表示i是j的先期條件。這樣的圖描述了排程問題中的任務先後關係 約束 顯然,乙個排程是可行的當且僅當該圖無環 如果排程不可行,我們需要使其無環所需的最小約束數量。給定乙個有向圖g v,e 子集e e稱為乙個反饋弧集,反...
《演算法概論》8 8
題目 在精確的4sat exact 4sat 問題中,輸入為一組自居,每個字句都是恰好4個文字的析取,且每個變數最多在每個字句中出現一次。目標是求它的滿足賦值 如果該賦值存在。證明精確的4sat是np完全問題。證明 用歸約來證明 如果問題a可以歸約到問題b,記作a b,如果a是np完全問題,則通過歸...