演算法分析與設計C 第五章 貪心演算法

2021-09-28 17:24:57 字數 637 閱讀 6600

貪心演算法總是作出在當前看來最好的選擇

貪心演算法並不從整體最優考慮,它所作出的選擇只是在某種意義上的區域性最優選擇。當然,希望貪心演算法得到的最終結果也是整體最優的。

建立數學模型來描述問題

把求解的問題分成若干個子問題

對每個子問題求解,得到子問題的區域性最優解

把子問題的解區域性最優解合成原來問題的乙個解

1、可行的:即它必須滿足問題的約束。

2、區域性最優:他是當前步驟中所有可行選擇中最佳的區域性選擇。

3、不可取消:即選擇一旦做出,在演算法的後面步驟就不可改變了。

從問題的某一初始解出發;

while (能朝給定總目標前進一步)

由所有解元素組合成問題的乙個可行解;

有一批貨櫃要裝上一艘載重量為c的輪船,其中貨櫃i的重量為wi。最優裝載問題要求確定在裝載體積不受限制的情況下,將盡可能多的貨櫃裝上輪船(件數最多)。

採用重量最輕者先裝的貪心選擇策略

templatevoid loading(int x,  type w, type c, int n)

}

演算法分析與設計C 第五章 貪心演算法

貪心演算法總是作出在當前看來最好的選擇。貪心演算法並不從整體最優考慮,它所作出的選擇只是在某種意義上的區域性最優選擇。當然,希望貪心演算法得到的最終結果也是整體最優的。建立數學模型來描述問題 把求解的問題分成若干個子問題 對每個子問題求解,得到子問題的區域性最優解 把子問題的解區域性最優解合成原來問...

演算法設計與分析 貪心演算法

time limit 1000 ms memory limit 65536 kib problem description 一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並證明演算法能產生乙個最優解。對於給定的n和k個加油站位...

演算法設計與分析 貪心演算法

分解 將原問題求解過程劃分為連續的若干個決策階段 決策 在每乙個階段依據貪心策略進行貪心決策,得到區域性的最優解,並縮小待求解問題的規模 合併 將各個階段的區域性解合併為原問題的乙個全域性最優解 greedy c c是問題的輸入集合即候選集合 初始解集合為空集 while not solution ...