算法概論 課後習題 8.3 證明

EX 8.3
STINGY SAT is the following problem: given a set of clauses (each a disjunction of literals) and an integer k, find a satisfying assignment in which at most k variables are true, if such an assignment exists. Prove that STINGY SAT is NP-complete

題目大意:定義一個STINGY SAT問題:給定一組子句(由文字通過邏輯或連接起來)和一個整數k,是否存在一個真值指派使得最多隻有k個變量爲真。證明這個問題是NP完全問題。

證明

  1. 首先說明一下SAT,SAT又叫可滿足性問題,描述的是給定一個合取範式(CNF),要麼給出它的一個真值指派,要麼報告它不存在真值指派。
  2. 另外,給定一組解{x1, x2, …, xn},我們是可以在多項式時間內驗證其正確性的,因此STINGY SAT屬於NP問題。
  3. 接下來我們把SAT規約到STINGY SAT:
    i) SAT是STINGY SAT的一個特例,假設SAT的函數爲f,給定n個變量x1, x2, …, xn,最多有n個變量爲真,那麼(f, n)可以看成是STINGY SAT的實例。
    ii) 假設STINGY SAT的實例是(f, n),那麼(f, n)的一個真值指派,也一定是SAT函數f的一個真值指派,即f是SAT的實例

以上可把SAT規約到STINGY SAT,由於SAT是NP完全問題,所以STINGY SAT也是NP完全問題。

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