演算法概論 第八章第八題 題解
題目描述
In the EXACT 4SAT problem, the input is a set of clauses, each of which is a
disjunction of exactly four literals, and such that each variable occurs at most
once in each clause. The goal is to find a satisfying assignment, if one exists.
Prove that EXACT 4SAT is NP-complete.
題解
由於EXACT 4SAT 屬於 NP,只要再證明4SAT的 NP 完全性即可。做法是將 3SAT 歸約到 EXACT 4SAT。
- 對於任意一個 3SAT 例項,如果其中某個子句中包含了同一個文字多次,那麼可以縮減為一次,如果同時包含了某個變數的肯定及否定,那麼可以將這個變數去掉。
- 在每個子句中可以新增一些輔助變數,將每個子句所包含的文字數目擴充到四個。
歸約完成。證畢。
總結
主要應用了歸約的思想。