感謝華北電力大學王墨玉老師的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 的初始值...