我是算法新手,目前正在學習使用you-tube視頻教程/講座和一本書,我首先觀看視頻,然後閱讀本書,最後從本書中嘗試一個問題,以確保我已經學會了正確的話題。我目前使用貪婪算法,這是非常令人困惑的。貪婪算法
書中有各種問題,但我無法理解和回答一個特定的問題。
首先它給出的問題是(我剛剛複製文本)。
有一組大小爲{x1; x2; ..... xn}和容量爲B的容器B.所有這些都是正整數。嘗試找到這些對象的子集 ,以使它們的總大小小於或等於B,但儘可能接近B.
所有對象都是一維的。例如,如果對象的大小爲4,7,10,12,15和 B = 20,那麼我們應該選擇總大小爲19(或等同於7和12)的4和15。 對於以下每個貪婪算法,通過創建 反例來證明它們不是最優的。儘量讓你的例子儘可能地糟糕,其中「壞」 是衡量的最佳和貪婪的解決方案之間的比例。因此,如果最好的 解決方案的值爲10,而貪婪解決方案的值爲5,則比率爲2.
如何爲以下內容執行此操作?
1)始終選擇尺寸最大的物體,以使其他所有已選對象的總尺寸不超過B.對其餘物體重複此操作。
我試圖爲這個問題的解決方案創建一個修改的「prims算法」,但它非常混亂,可能不正確。 – user1252908 2012-03-06 18:17:56
Prim算法在圖中構建生成樹。也許你想解釋這個算法如何適用於手頭的問題。 – 2012-03-06 18:25:38