全球旧事资料 分类
次,也不能只装入部分的物品i。因此,该问题称为01背包问题。
此问题的形式化描述是,给定c0,wi0,vi0,1i
,要求找出一个

元01向量(x1,x2,,x
),xi01,1i
,使得达到最大。


wixic,而且
vixi
i1
i1

数学模型:maxvixii1

约束条件:wixic,xi011i
i1
201背包问题的求解算法
21蛮力算法(bruteforcemethod)
211基本思想:对于有
种可选物品的01背包问题,其解空间由长度为
的01向量组成可用子集数表示。在搜索解空间树时,深度优先遍历,搜索每一个结点,无论是否可能产生最优解,都遍历至叶子结点,记录每次得到的装入总价值,然后记录遍历过的最大价值。212代码实现i
cludeiostreami
cludealgorithmusi
g
amespacestddefi
eN100最多可能物体数structgoods物品结构体
i
tsig
物品序号i
tw物品重量i
tp物品价值aNboolmgoodsagoodsb
精彩文档
f实用标准文案
retur
apawbpbw
i
tmaxi
tai
tb
retur
abbai
t
CbestP0cp0cw0i
tXNcxN蛮力法求解01背包问题i
tForcei
ti
ifi
1ifbestPcpcwaiwCfori
tk0k
kXkcxk存储最优路径bestPcpretur
bestP
cwcwaiwcpcpaipcxi1装入背包Forcei1cwcwaiwcpcpaipcxi0不装入背包Forcei1retur
bestPi
tK
apSack1i
t
goodsai
tCi
txForce0retur
bestPi
tmai
精彩文档
f实用标准文案
goodsbNpri
tf
好听全球资料 返回顶部