給定全集
,以及一個包含
個集合且這
個集合的併集為全集的集合
。集合覆蓋問題要找到
的一個最小的子集,使得他們的併集等於全集。
例如
,
,雖然
中所有元素的併集是
,但是我們可以找到
的一個子集
,我們稱其為一個集合覆蓋。
形式化的定義,給定全集
和他的一組子集組成的集合
,覆蓋指一個集合
,
,且
的元素的併集為
。
集合覆蓋問題的決定性問題為,給定
和一個整數
,求是否存在一個大小不超過
的覆蓋。集合覆蓋的最佳化問題為給定
,求使用最少的集合的一個覆蓋。
決定性問題的集合覆蓋是NP完全問題,最佳化問題的集合覆蓋是NP困難問題。
此外,問題可以在每個集合上添加權值而變為帶權集合覆蓋問題。