1. 程式人生 > >證明碰撞集問題(Hitting Set)是NP-complete

證明碰撞集問題(Hitting Set)是NP-complete

ng- str 是否 ive rds cts strong cover problem

證明碰撞集問題(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

  1. 首先,HITTING SET是一個NP問題。

    對於H中的所有元素,和Si逐個比較是否有交集並且大小小於等於b,這個操作顯然是多項式時間復雜度的問題。

  2. 其次,Vertex Cover是一個NP難問題。

    由書本P241、242,可知最小頂點覆蓋問題(Vertex Cover)是NP難問題。

  3. 最後,將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。

證明碰撞集問題(Hitting Set)是NP-complete