證明碰撞集問題(Hitting Set)是NP-complete
Problem
In the HITTING SET problem, we are given a family of sets {S1, S2, ... , Sn}
and a budget b, and we wish to find a set H of size ≤ b
which intersects every Si, if such an H exists. In other words, we want H ∩ Si ≠ ∅
for all i.
Show that HITTING SET is NP-complete.
Solution
-
首先,HITTING SET是一個NP問題。
對於H中的所有元素,和Si逐個比較是否有交集並且大小小於等於b,這個操作顯然是多項式時間復雜度的問題。
-
其次,Vertex Cover是一個NP難問題。
由書本P241、242,可知最小頂點覆蓋問題(Vertex Cover)是NP難問題。
-
最后,將Vertex Cover歸約到HITTING SET,即可證明碰撞集問題是一個NP完全問題。
假設要求圖G(V, E) 的Vertex Cover,可以建立一個HITTING SET實例,其中S1, S2, ... , Sn是圖G的各條邊,比如:S1={v1, v2},這樣可以構造出|E|個集合,求圖G的Vertex Cover,可以轉化成求這|E|個集合的HITTING SET。Vertex Cover的頂點就是H的元素,Vertex Cover的個數即為b。