算法之集合覆蓋問題

假設(shè)你辦了個廣播節(jié)目,要讓全美50個州的聽眾都收聽得到。為此,你需要決定在哪些廣播臺播出。在每個廣播臺播出都需要支付費(fèi)用,因此你力圖在盡可能少的廣播臺播出。

聽起來很容易,但其實(shí)非常難。具體方法如下。
(1) 列出每個可能的廣播臺集合,這被稱為冪集 (power set)。可能的子集有2 n 個。
(2) 在這些集合中,選出覆蓋全美50個州的最小集合。

無法求出最優(yōu)解

近似算法,貪婪算法可化解危機(jī)!使用下面的貪婪算法可得到非常接近的解。

NP完全問題

為解決集合覆蓋問題,你必須計(jì)算每個可能的集合。
你需要計(jì)算所有的解,并從中選出最小/最短的那個

如何識別NP完全問題

元素較少時算法的運(yùn)行速度非常快,但隨著元素?cái)?shù)量的增加,速度會變得非常慢。涉及“所有組合”的問題通常是NP完全問題。

不能將問題分成小問題,必須考慮各種可能的情況。這可能是NP完全問題。如果問題涉及序列(如旅行商問題中的城市序列)且難以解決,它可能就是NP完全問題。

如果問題涉及集合(如廣播臺集合)且難以解決,它可能就是NP完全問題。

如果問題可轉(zhuǎn)換為集合覆蓋問題或旅行商問題,那它肯定是NP完全問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第八章 貪婪算法 貪婪算法是指, 在對問題求解時, 總是做出在當(dāng)前看來是最好的選擇。 也就是說, 不從整體最優(yōu)上加...
    EruDev閱讀 409評論 0 0
  • 1、安裝:下載安裝,可以在任意地方創(chuàng)建數(shù)據(jù)存儲位置,在工程目錄下面創(chuàng)建data數(shù)據(jù)文件夾,進(jìn)入到mongoose安...
    流動碼文閱讀 731評論 0 0
  • 初秋的早,涼爽催人愜意。 一盆小小的水景,便足以讓你發(fā)上一晨的呆。 因了空間的狹窄,容不下太大的器皿,睡蓮的棲身之...
    水靜深流閱讀 405評論 2 2

友情鏈接更多精彩內(nèi)容