| 本條目存在以下問題,請協助 改善本條目或在 討論頁針對議題發表看法。
| 此條目需要 精通或熟悉相關主題的編者參與及協助編輯。 (2014年6月17日) 請邀請適合的人士改善本條目。更多的細節與詳情請參見討論頁。 |
|
集合覆蓋問題( Set covering problem,SCP)是組合數學、計算機科學和計算複雜性理論中的一個經典問題。
集合覆蓋的決定性問題是卡普的二十一個NP-完全問題之一。
定義
給定全集,以及一個包含個集合且這個集合的併集為全集的集合。集合覆蓋問題要找到的一個最小的子集,使得他們的併集等於全集。
例如,,雖然中所有元素的併集是,但是我們可以找到的一個子集,我們稱其為一個集合覆蓋。
形式化的定義,給定全集和他的一組子集組成的集合,覆蓋指一個集合,,且的元素的併集為。
集合覆蓋問題的決定性問題為,給定和一個整數,求是否存在一個大小不超過的覆蓋。集合覆蓋的最佳化問題為給定,求使用最少的集合的一個覆蓋。
決定性問題的集合覆蓋是NP完全問題,最佳化問題的集合覆蓋是NP困難問題。
此外,問題可以在每個集合上添加權值而變為帶權集合覆蓋問題。