0 1揹包問題,動態規劃

2021-07-03 03:14:00 字數 853 閱讀 3621

(1)全域性最優解中一定包含某個區域性最優解,但不一定包含前乙個區域性最優解,因此需要記錄之前的所有最優解 ;

(2)動態規劃的關鍵是狀態轉移方程,即如何由以求出的區域性最優解來推導全域性最優解 ;

(3)邊界條件:即最簡單的,可以直接得出的區域性最優解。

2. 0-1揹包問題描述

有乙個竊賊在偷竊一家商店時發現有n件物品,第i件物品價值為vi元,重量為wi,假設vi和wi都為整數。他希望帶走的東西越值錢越好,但他的揹包中之多只能裝下w磅的東西,w為一整數。他應該帶走哪幾樣東西?

0-1揹包問題中:每件物品或被帶走,或被留下,(需要做出0-1選擇)。小偷不能只帶走某個物品的一部分或帶走兩次以上同乙個物品。

部分揹包問題:小偷可以只帶走某個物品的一部分,不必做出0-1選擇。

3. 0-1揹包問題解決方法

0-1揹包問題是個典型舉辦子結構的問題,但是只能採用動態規劃來解決,而不能採用貪心演算法。因為在0-1揹包問題中,在選擇是否要把乙個物品加到揹包中,必須把該物品加進去的子問題的解與不取該物品的子問題的解進行比較。這種方式形成的問題導致了許多重疊子問題,滿足動態規劃的特徵。動態規劃解決0-1揹包問題步驟如下:

0-1揹包問題子結構:選擇乙個給定物品i,則需要比較選擇i的形成的子問題的最優解與不選擇i的子問題的最優解。分成兩個子問題,進行選擇比較,選擇最優的。

0-1揹包問題遞迴過程:設有n個物品,揹包的重量為w,c[i][w]為最優解。即:

課後習題給出了偽**:

動態規劃揹包問題 01揹包

問題描述 n種物品,每種乙個。第i種物品的體積為vi,重量為wi。選一些物品裝到容量為c的揹包,使得揹包內物品不超過c的前提下,重量最大。問題分析 宣告乙個f n c 的陣列。f i j 表示把前i件物品都裝到容量為j的揹包所獲得的最大重量。當 j v i 時,揹包容量不足以放下第 i 件物品,f ...

動態規劃 揹包問題 01揹包

有n種物品和乙個容量為v的揹包,每種物品僅用一次。第i件物品的費用是w i 價值是v i 求解將哪些物品裝入揹包可使價值總和最大。例如 n 5,v 10 重量 價值 第乙個物品 10 5 第二個物品 1 4 第三個物品 2 3 第四個物品 3 2 第五個物品 4 1 首先我們考慮貪心策略,選取最大價...

0 1揹包問題(動態規劃)

一 問題描述 有n件物品和乙個容量為v的揹包。第i件物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。所謂01揹包,表示每乙個物品只有乙個,要麼裝入,要麼不裝入。二 解決方案 考慮使用動態規劃求解,定義乙個遞迴式 opt i v 表示前i個物品,在揹包容量大小為v的情況下,最...