揹包問題解析

2021-08-03 10:50:56 字數 589 閱讀 1222

01揹包問題

有n件物品和乙個容量為v的揹包。第i件物品的容量是v[i],價值是w[i]。求解將哪些物品裝入揹包可使價值總和最大。

解析:每件物品有且僅有一件,可以放或不放。

f[i][j] 表示前i件物品放入容量為j的揹包的最大價值。

狀態轉移方程:

for i in 1-n:

for j in 1-m:

f[i][j]=f[i-1][j],f[i-1][j-v[i]]+w[i]

初始值:f[i][0]=0f[0][j]=0

完全揹包問題

有n種物品和乙個容量為v的揹包,每種物品都有無限件可用。第i種物品的容量是v[i],價值是w[i]。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。

解析每件物品有無限件

f[i][j] 表示前i件物品放入容量為j的揹包的最大價值。

狀態轉移方程:

for i in 1-n:

for j in 1-m:

f[i][j]=max( f[i-1][j-x*v[i]]+x*w[i] )   j>=x*v[i]

初始值 f[i][0]=0f[0][j]=0

揹包問題解析

今天看到演算法 c語言實現這本書 第五章遞迴與樹 中 揹包問題,想到對這個問題理解不夠透徹.希望利用第一篇技術部落格好好的吃透它.揹包問題是什麼?設有i類不同大小和價值的物品,揹包的可用容積為cap,進行合理的物品選擇使得所裝入的物品價值最大.揹包問題解法?設定 揹包大小為cap,對應第i項物品記為...

揹包問題解析

一.最簡單的揹包問題 01揹包 1.題 有n件物品和乙個容量為v的揹包。第i件物品的體積是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的體積總和不超過揹包容量,且價值總和最大。2.思路 每乙個物品可以放也可以不放,因此比較放的時候的價值和不放的時候的價值,用max函式比較 3.方程 即f...

超大揹包問題題解

有 n nn 個重量和價值分別為 w iw i wi 和 v iv i vi 的物品。從這些物品中挑選出總重量不超過 w ww 的物品放入揹包中,求揹包裡物品價值總和的最大值。n wv 1w1v 2w2.vnw nn space w v 1 space w 1 v 2 space w 2 v n s...