貪心演算法
一、簡介
貪心演算法,又稱「貪婪演算法」。
在對問題求解時,總是做出在當前看來是最好的選擇。(區域性最優解)
也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的區域性最優解。
貪心演算法不是對所有問題都能得到整體最優解,但對範圍相當廣泛的許多問題他能產生整體最優解或者是整體最優解的近似解。
二、演算法思想
大事化小:乙個較大的問題,通過找到與子問題的重疊,把複雜的問題劃分為多個小問題;
小事化了:從小問題找到決策的核心,確定一種區域性最優解的策略。
通過計算出區域性的最優解,來推出全域性的最優解或近似解。
揹包問題
動態規劃
0-1揹包問題
木棒加工問題(貪心 動態規劃)
現有n根木棒,已知它們的長度和重量,要用一部木工機一根一根地加工這些木棒。該機器在加工過程中需要一定的準備時間,是用於清洗機器,調整工具和模板的。木工機需要的準備時間如下 第一根木棒需要 分鐘的準備時間。在加工完一根長為length,重為weight的木棒之後,接著加工一根長為length leng...
演算法 動態規劃0 1揹包問題
有乙個容量為 n 的揹包,要用這個揹包裝下物品的價值最大,這些物品有兩個屬性 體積 w 和價值 v。定義乙個二維陣列 dp 儲存最大價值,其中 dp i j 表示前 i 件物品體積不超過 j 的情況下能達到的最大價值。設第 i 件物品體積為 w,價值為 v,根據第 i 件物品是否新增到揹包中,可以分...
動態規劃 揹包問題
給定n個物品,重量是,價值是,包的容量 承重 是w 問,放入哪些物品能使得包內價值最大 1 需要將問題轉化為子問題,通過遞迴實現,且子問題必然與父問題存在關聯 2 定義v i,j 表示為,當item取自前i個items且揹包capacity j 時,揹包問題的最優解,也即最高的價值。3 從前i個it...