演算法 貪心法

2021-09-22 12:25:36 字數 712 閱讀 8058

感謝華北電力大學王墨玉老師的ppt

基礎知識

應用條件

最優子結構性質:原問題包含了其子問題的最優解

對於乙個問題可能會有不同的量度標準,選擇其中可以獲得最優解的量度標準是貪心法設計的核心問題

例題活動安排問題(可求得最優解)

int

greedyselector

(int s,

int f,

int a)

else

a[i]=0

;}return count;

}

揹包問題(非 0/1 揹包)(可求得最優解)

最優裝載問題(可求得最優解)

注意,裝載體積不限,但是有總重量的限制

其實和揹包問題一樣,「揹包容量相當於船的載重量為 c,物品的重量相當於貨櫃的重量,物品的價值都相當於貨櫃的體積(不在考慮範圍內,看作都相等)」,這不就是個揹包問題了嗎?

也很簡單,不用考慮體積,按重量從小到大乙個個放進去就好了

當然,這樣做最終的轉入的貨櫃總重量可能小於 c,注意題目問的是「將盡可能多的貨櫃裝上輪船」。

時間複雜性:演算法的主要計算量在於將貨櫃依其重量從小到大排序,故演算法所需的計算時間為 o(nlogn)

多處理機排程問題(非最優解)

帶限期的作業排序

二路歸併模式(最優解)(後續補充)

演算法 貪心法

動態規劃在某一步決定優化函式的最大或者最小值時候,需要考慮子問題的優化函式值,從中選出最優的結果。貪心法 也是多不判斷,不考慮子問題的計算結果,根據當時情況採取 只顧眼前的 貪心策略決定取捨,工作量少於動態規劃很多,更具效率 可導致區域性最優化而不是全域性優化 n項活動,使用同乙個禮堂問題 si 和...

python貪心法 演算法 貪心

貪心演算法也被稱為貪婪演算法,它是指在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態,只與...

演算法學習 貪心法

只選擇乙個子問題 1.快2.不能保證獲得最優解,可以作為近似解,一般,在特殊情況下可保證最優解。3.適合於組合優化問題 貪心選擇策略 分解方案 s s0,c c0 部分解s,候選集c while complete s 解擴充套件 c c c中引數重新計算以及候選集調整 注意 實現時dist 的初始值...