算法導論(第三版)-複習16貪心算法

Scheduling

Task[t] 紀錄開始時間爲t的任務鏈表
f[t] 紀錄t-n時間內最大value值,初始均爲0

for i=n-1 to 0 do{
    t=Task[i].head;
    while (t){
        f[i]=max{f[i],f[t.endtime]+t.value};
        t=t->next;
    }
    f[i]=max{f[i],f[i+1]};
}

Fractional knapsack

根據性價比v/w排序

證明分數揹包問題具有貪心選擇性質


貪心選擇性質

最優裝載問題

問題描述:有一批集裝箱要裝上一艘載重量爲c的輪船。其中集裝箱i的重量爲Wi。最優裝載問題要求確定在裝載體積不受限制的情況下,將儘可能多的集裝箱裝上輪船。

最優子結構性質:設(x1,x2,……xn)是最優裝載問題的滿足貪心選擇性質的最優解,則易知,x1=1,(x2,x3,……xn)是輪船載重量爲c-w1,待裝船集裝箱爲{2,3,……n}時相應最優裝載問題的最優解。因此,最優裝載問題具有最優子結構性質。

求解過程:最優裝載問題可用貪心算法求解。採用重量最輕者先裝的貪心選擇策略,可產生最優裝載問題的最優解。
發佈了37 篇原創文章 · 獲贊 12 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章