一所謂風箏圖是這樣的,其頂點數為偶數(比如2n),且其中的n個頂點構成了乙個團,剩餘的n個頂點則由一條稱為「尾巴」的路徑連線,尾巴的某個端點與團中乙個頂點相連。給定乙個圖和目標g,風箏圖問題要求該圖的乙個包含2g個頂點的風箏子圖。請證明該問題是np-完全的。
分析:可以將團問題歸約到kite問題。
解答:給定乙個圖g,和目標g,求乙個有g個頂點的完全圖。如果
我們要求g(v,e)的最大團,那麼我們可以在圖g中新增|v|個新頂點
然後將每乙個新頂點連向原圖中互異的頂點,此時共得到了|v|條新邊,這樣得到乙個新圖。
把這個新圖稱為g'
容易看出來,在g'中存在著大小為2g的kite當且僅當g存在大小為g的團
先證:g'中有2g的風箏 → g存在g的團
把g'中只有風箏尾巴(g個點)去除,得到的圖也含有乙個g大小的完全圖,去除的g個點必然是在新增加的|v|個點裡面的,去除後不影響原圖g,所以原圖g也有g大小的團。
再證:g存在g的團→
g'中有2g的風箏
顯而易見,根據上述構造的方法,就可以的到2g的風箏。
二在精確的4sat問題中,輸入為一組子句,每個子句都是恰好4個文字的析取,且每個變數最多在每個子句中出現一次。目標是求它的滿足賦值——如果該賦值存在。證明精確的4sat是np-完全問題。
分析:已知3sat問題是np完全問題。現在通過將3sat歸約到exact 4sat來證明後者的np完全性。規約時要保證每個變數在子句中只出現一次,另外要讓每個子句恰好有4個文字。
解答:易得4sat問題是np問題。
對於任意乙個3sat例項,若其中某個子句中乙個文字出現多次,可以將該文字刪減為一次。如果同時包含了某個變數的肯定和否定,那麼可以將這個變數去掉。另外,在每個子句中新增一些輔助變數 ,這樣可以將每個子句包含的文字數目擴充到四個。
三在碰撞集問題中,給定一組集合和預算b,我們希望求乙個所有的si相交且規模不大於b的集合h,當然,前提是這樣的集合確實存在。
分析:將最小頂點覆蓋規約到hiyying set
解答:將最小頂點覆蓋歸約到碰撞集問題。現假設求圖g的最小頂點覆蓋,我們可以建立乙個碰撞集例項。其中s1,s2,sn即是圖g的各條邊,比如
,….。這樣,就可以把求g的最小頂點覆蓋歸約成,求這|e|個集合的碰撞集h。其中h的大小b就是最小頂點覆蓋。已知最小頂點覆蓋是乙個np完全問題,所以該問題是乙個np完全問題。
證明吝嗇SAT問題為NP完全問題。
吝嗇sat問題是這樣描述的 給定一組子句 每個子句都是其中文字的析取 和整數k,求乙個最多有k個變數為true的滿足賦值 如果該賦值存在。而我們的目的就是證明吝嗇sat問題為np完全問題。這是書 演算法概論 的習題8.3。我證明的方法是用歸約的方法 由已知的np完全問題歸約到該問題,並證明歸約的過程...
8 3 證明吝嗇SAT問題是NP 完全問題
吝嗇sat問題是這樣的 給定一組子句 每個子句都是其中文字的析取 和整數k,求乙個最多有k個變數為true的滿足賦值 如果該賦值存在。證明吝嗇問題是np 完全問題。這道題,我的思路是 首先證明吝嗇sat問題是是np問題,然後用歸約的方法 由已知的np完全問題 sat問題 歸約到該問題,並證明歸約的過...
P問題 NP問題 NP完全問題和NP難問題
在講p類問題之前先介紹兩個個概念 多項式,時間複雜度。知道這兩概念的可以自動跳過這部分 1 多項式 axn bxn 1 c 恩.就是長這個樣子的,叫x最高次為n的多項式.咳咳,別嫌我囉嗦。有些人說不定還真忘了啥是多項式了。例如第一次看到的鄙人 2 時間複雜度 我們知道在計算機演算法求解問題當中,經常...