《算法概論》第八章的一些課後題目 關於NP-Complete Problem

8.3 STINGY SAT html

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 assignmentide

exists. Prove that STINGY SAT is NP-complete.spa

當咱們有多項式時間算法解決SAT問題時,咱們能夠直接解決STINGY SAThtm

咱們取k爲變量的個數,若是咱們找到了多項式時間的算法解決它,也就是解決了SAT問題。驗證答案是顯然快速的。blog

咱們成功將SAT歸約到了STINGY SAT 證實了 STINGY SAT 是NP-Complete problemget

 

 

8.14  K-clique problem it

Prove that the following problem is NP-complete:given an undirected graph G=(V,E) and an integer k,io

return a clique of size k as well as an independent set of size k,provided both exist.變量

 

首先,團和獨立集是兩個相對的概念,尋找k個元素的團和尋找k個元素的獨立集是等價命題,這裏不展開說明了。

 

書中已經給出了由3-SAT歸約到k-獨立集的證實,這裏簡單敘述一下

對於任意一個有k個clause的3SAT表達式,咱們對於每一個clause構造一個三點三邊呈現三角形的子圖,(共有k個三角形)

對於每一個變量,兩種相反的形式之間連一條邊,若是可以找到k個元素的獨立集,必然k個點分佈在k個三角形,即選擇了k個變量,使得表達式知足。驗證知足性顯然是快速的。

因而,當咱們有多項式時間算法解決k獨立集問題時,咱們就必定有多項式時間算法解決3SAT問題,因此k獨立集問題是NP-complete problem.

一樣的,k獨立集的等價命題 k-clique問題也是NP-complete的。

 

 

補充一道有趣的題目 ZOJ1492 

該題給定咱們一個無向圖,求最大團的點數是多少。圖的規模小於等於50

這道題我找到了搜索的解法,可是我還沒想到辦法嚴格的分析這個dfs的複雜度,可是因爲dfs不是記憶化的,因此我猜測它應該是指數複雜度的。

事實上要實現dfs的記憶化,就不得不用指數級的空間來儲存數據,這也是沒法接受的。

不過這道題的搜索剪枝技巧性仍是很強的,畢竟指數級的算法能解決50的規模,已經很不錯了。

相關文章
相關標籤/搜索