算法概論(註釋版)習題8.8

習題8.8


題目要求:
In the Exact 4SAT problem, the input is a set of clauses, each of which is a dijunction of exactly foour 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.

答:SAT->4SAT
設SAT:a1 ∨ a2 ∨ a3 ∨ a4 ∨ a5 ∨ … ∨ an
則該SAT可變爲4SAT:(a1 ∨ a2 ∨ a3 ∨ x1) ^ (~x1 ∨ a4 ∨ a5 ∨ x2) ^ … ^ (~x( (n-6)/2 ) ∨ a(n-4) ∨ a (n-3) ∨ x( (n-4)/2 ) ) ^ (~x( (n-4)/2 ) ∨ a(n-2) ∨ a(n-1) ∨ an)。

  1. 當存在一個真值指派使得該4SAT爲真時,也存在一個真值指派使得SAT爲真。假設所有ai均爲假,1 <= i <= n,則x1,x2,…,x( (n-4)/2 )和~x( (n-4)/2 )必爲真。但是所以x( (n-4)/2 )和~x( (n-4)/2 )不可能同時爲真,所以至少有一個ai爲真,此時SAT爲真。所以,當存在一個真值指派使得該4SAT爲真時,SAT也爲真。
  2. 當不存在一個真值指派使得該SAT爲真時,也不存在一個真值指派使得該4SAT爲真。要證明這個命題,我們可以證明它的逆否命題:存在一個真值指派使得該4SAT爲真時,也存在一個真值指派使得該SAT爲真。這個命題就是我們證明的第一個命題,所以它的逆否命題也爲真,即:當不存在一個真值指派使得該SAT爲真時,也不存在一個真值指派使得該4SAT爲真。
  3. 這種轉換的時間複雜度爲O(n),是線性的。

綜上所述, Exact 4SAT* 問題也是NP-complete。

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