算法概論8.9

算法概論8.9

題目要求:在碰撞集(Hitting Set)問題中,給定一組集合{S1,S2,…,Sn}和預算b,我們希望求一個所有的Si相交且規模不超過b的集合H,當然,前提是這樣的集合確實存在。換句話說,我們希望對所有的i滿足H∩Si≠ϕ。
證明該問題是NP-完全的。


證明
先證明碰撞集問題是一個NP問題
在求解該問題的時候,它需要驗證集合H的大小是不是超過b,以及驗證對所有的i滿足H∩Si≠ϕ,所以它的時間複雜度是 O(n|H||S|), 也既碰撞集問題是一個NP問題。
然後再把頂點覆蓋問題歸約到碰撞集問題上
對於頂點覆蓋問題,它屬於一個NP問題,接下來就是需要我們把頂點覆蓋的問題歸約到碰撞集上,那麼碰撞集就是一個NP完全問題。
在某個圖G(V,E)中,頂點覆蓋問題就是看能否找到不超過k個點的情況覆蓋G的所有邊的問題。這樣我們可以構造一個G到碰撞集問題的映射。設在碰撞集中某個Si,可以用G中的某條邊e=(u,v)來表示,再假設其預算b對應於頂點覆蓋問題中的K。在頂點覆蓋問題中,圖G的任意一條邊至少有一個點在覆蓋集中,也即H∩Si≠ϕ,這也就說明這兩個問題是一一對應的,覆蓋集中最多的k個點和規模不超過b的集合H對應。至此也就完成了從頂點覆蓋問題到碰撞集問題的規約,也即碰撞集是一個NP完全問題。

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