题目内容 (请给出正确答案)
提问人:网友w*****2 发布时间:2024年4月23日 21:47
[主观题]

0-1背包问题可以描述为:有n个物品,对i=1,2,…,n,第i个物品价值为vi ,重量为wi(vi,和wi为非负数),

0-1背包问题可以描述为:有n个物品,对i=1,2,…,n,第i个物品价值为vi ,重量为wi(vi,和wi为非负数),背包容量为W(W为非负数),选择其中一些物品装入背包,使装入背包物品的总价值最大,,且总重量不超过背包容量,即,其中,xi∈{0,1},xi=0表示第i个物品不放入背包,xi=1表示第i个物品 放入背包。【问题1】(8分)用回溯法求解此0-1背包问题,请填充下面伪代码中(1)~(4)处空缺。回溯法是一种系统的搜索方法。在确定解空间后,回溯法从根结点开始,按照深度优先策略遍历解空间树,搜索满足约束条件的解。对每一个当前结点,若扩展该结点己经不满足约束条件,则不再继续扩展。为了进一步提高算法的搜索效率,往往需要设计一个限界函数,判断并剪枝那些即使扩展了也不能得到最优解的结点。现在假设已经设计了BOUND(v,w,k,W)函数,其中v, w, k和W分别表示当前已经获得的价值、当前背包的重量、己经确定是否选择的物品数和背包的总容量。对应于搜索树中的某个结点,该函数值表示确定了部分物品是否选择之后,对剩下的物品在满足约束条件的前提下进行选择可能获得的最大价值,若该价值小于等于当前已经得到的最优解,则该结点无需再扩展。下面给出0-1背包问题的回溯算法伪代码。函数参数说明如下:W:背包容量;n:物品个数;w:重量数组;v:价值数组;fw:获得最大价值时背包的重量;fp:背包获得的最大价值;X:问题的最优解。变量说明如下:cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

【问题1】(8分)用回溯法求解此0-1背包问题,请填充下面伪代码中(1)~(4)处空缺。回溯法是一种系统的搜索方法。在确定解空间后,回溯法从根结点开始,按照深度优先策略遍历解空间树,搜索满足约束条件的解。对每一个当前结点,若扩展该结点己经不满足约束条件,则不再继续扩展。为了进一步提高算法的搜索效率,往往需要设计一个限界函数,判断并剪枝那些即使扩展了也不能得到最优解的结点。现在假设已经设计了BOUND(v,w,k,W)函数,其中v, w, k和W分别表示当前已经获得的价值、当前背包的重量、己经确定是否选择的物品数和背包的总容量。对应于搜索树中的某个结点,该函数值表示确定了部分物品是否选择之后,对剩下的物品在满足约束条件的前提下进行选择可能获得的最大价值,若该价值小于等于当前已经得到的最优解,则该结点无需再扩展。下面给出0-1背包问题的回溯算法伪代码。函数参数说明如下:W:背包容量;n:物品个数;w:重量数组;v:价值数组;fw:获得最大价值时背包的重量;fp:背包获得的最大价值;X:问题的最优解。变量说明如下:cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

用回溯法求解此0-1背包问题,请填充下面伪代码中(1)~(4)处空缺。回溯法是一种系统的搜索方法。在确定解空间后,回溯法从根结点开始,按照深度优先策略遍历解空间树,搜索满足约束条件的解。对每一个当前结点,若扩展该结点己经不满足约束条件,则不再继续扩展。为了进一步提高算法的搜索效率,往往需要设计一个限界函数,判断并剪枝那些即使扩展了也不能得到最优解的结点。现在假设已经设计了BOUND(v,w,k,W)函数,其中v, w, k和W分别表示当前已经获得的价值、当前背包的重量、己经确定是否选择的物品数和背包的总容量。对应于搜索树中的某个结点,该函数值表示确定了部分物品是否选择之后,对剩下的物品在满足约束条件的前提下进行选择可能获得的最大价值,若该价值小于等于当前已经得到的最优解,则该结点无需再扩展。下面给出0-1背包问题的回溯算法伪代码。函数参数说明如下:W:背包容量;n:物品个数;w:重量数组;v:价值数组;fw:获得最大价值时背包的重量;fp:背包获得的最大价值;X:问题的最优解。变量说明如下:cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

回溯法是一种系统的搜索方法。在确定解空间后,回溯法从根结点开始,按照深度优先策略遍历解空间树,搜索满足约束条件的解。对每一个当前结点,若扩展该结点己经不满足约束条件,则不再继续扩展。为了进一步提高算法的搜索效率,往往需要设计一个限界函数,判断并剪枝那些即使扩展了也不能得到最优解的结点。现在假设已经设计了BOUND(v,w,k,W)函数,其中v, w, k和W分别表示当前已经获得的价值、当前背包的重量、己经确定是否选择的物品数和背包的总容量。对应于搜索树中的某个结点,该函数值表示确定了部分物品是否选择之后,对剩下的物品在满足约束条件的前提下进行选择可能获得的最大价值,若该价值小于等于当前已经得到的最优解,则该结点无需再扩展。下面给出0-1背包问题的回溯算法伪代码。函数参数说明如下:W:背包容量;n:物品个数;w:重量数组;v:价值数组;fw:获得最大价值时背包的重量;fp:背包获得的最大价值;X:问题的最优解。变量说明如下:cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

下面给出0-1背包问题的回溯算法伪代码。函数参数说明如下:W:背包容量;n:物品个数;w:重量数组;v:价值数组;fw:获得最大价值时背包的重量;fp:背包获得的最大价值;X:问题的最优解。变量说明如下:cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

函数参数说明如下:W:背包容量;n:物品个数;w:重量数组;v:价值数组;fw:获得最大价值时背包的重量;fp:背包获得的最大价值;X:问题的最优解。变量说明如下:cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

W:背包容量;n:物品个数;w:重量数组;v:价值数组;fw:获得最大价值时背包的重量;fp:背包获得的最大价值;X:问题的最优解。变量说明如下:cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

变量说明如下:cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

cw:当前的背包重量;cp:当前获得的价值;k:当前考虑的物品编号;Y:当前已获得的部分解。BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

BKNAP(W,n,w,v,fw,fp,X)1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

1 cw ← cp ← 02 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

2 (1)3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

3 fp ← -14 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

4 while true5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

5 while k≤n and cw+w[k]≤W do6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

6 (2)7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

7 cp ← cp+v[k]8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

8 Y[k]← 19 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

9 k ← k+110 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

10 if k>n then11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

11 if fp<cp then12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

12 fp ← cp13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

13 fw ← ew14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

14 k ← n15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

15 X ← Y16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

16 else Y(k)← 017 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

17 while BOUND(cp,cw,k,W) ≤fp do18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

18 while k≠0 and Y(k)≠1 do19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

19 (3)20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

20 if k=0 then return21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

21 Y[k]←022 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

22 cw ← cw ← w[k]23 cp ← cp ← v[k]24 (4)

23 cp ← cp ← v[k]24 (4)

24 (4)

参考答案
十点题库官方参考答案 (由十点题库聘请的专业题库老师提供的解答)
更多“0-1背包问题可以描述为:有n个物品,对i=1,2,…,n,”相关的问题
下列单位中,()是基本量纲的单位。
A.米B.牛C.PaD.瓦
点击查看答案
主运动即主要由工件旋转产生的运动.
A.对 B.错
点击查看答案
若投资额为5000万元,求投资A、B两公司的风险报酬额各为多少。
以下是投资A公司和B公司的可能报酬率及概率分布资料
点击查看答案
目前针对市场经济参与主体的法律有«合同法»«证券法»«票据法»«破产法»«金融法»«保险法»«房地产法»等,但是还没有出台关于针对企业信用的专门法律。
点击查看答案
有一天。一群小青蛙们决定来场跑步比赛,比赛最终目标是到达一个很高的高塔。下面有很多青蛙在议论:高塔实在太高了,他们绝对办不到。青蛙们听到这些议论,一个接着一个放弃了,最后只剩一只耳聋的小青蛙没有放弃,越爬越高,最终到达了终点。请对此发表评论。
点击查看答案
会计核算的具体内容包括()。 A.款项和有价证券的收付B.财物的收付、增减和使用C.债权
会计核算的具体内容包括()。A.款项和有价证券的收付B.财物的收付、增减和使用C.债权债务的发生和结算D.资本的增减

A.款项和有价证券的收付B.财物的收付、增减和使用C.债权债务的发生和结算D.资本的增减

B.财物的收付、增减和使用C.债权债务的发生和结算D.资本的增减

C.债权债务的发生和结算D.资本的增减

D.资本的增减
点击查看答案
太阳辐射对植物的作用表现为热效应、光合效应和光形态效应的具体表现有哪些?
点击查看答案
1908年,官商合办的“()”创立,次年,它的第一艘商轮“()”号开通。这是巴渝人在川江航运史上具有划时代意义的事件。
点击查看答案
()标签是用来对设备作整体性的管制,以保护人员免于受伤,设备免于受损。
A、禁止合闸
B、正在修理
C、危险禁止操作
点击查看答案
虚劳,症见咳嗽无力,痰液清稀,短气自汗,声音低怯,面白神疲,肢体无力,舌淡,苔白,脉弱。证属
A.脾气虚
B.心气虚
C.肺气虚
D.肾气虚
E.气血虚
点击查看答案
摄取柯氏位时,患者俯卧,听鼻线垂直于床面,中心线应()
A.向头侧倾斜35°
B.向足侧倾斜35°
C.向头侧倾斜23°
D.向足侧倾斜23°
E.垂直床面入射
点击查看答案
下列正确的是()。
A.维持敏锐的洞察力才能拥有广阔的市场。 
B.等她对你有了依赖的感觉,戒备和警惕就会慢慢消除。 
C.这个功能很实用,我试验了一下,很快找到了自己喜爱的节目。 
D.他语言水平不高,屡次在公共场合出洋相,因此影响了事业的发展。
点击查看答案
下列比率中,可以用来分析评价长期偿债能力的指标是( )。 A 存货周转率 B 流动比率 C 保守速
下列比率中,可以用来分析评价长期偿债能力的指标是( )。 A 存货周转率 B 流动比率 C 保守速动比率 D 固定支出偿付倍数
点击查看答案
生物医学测量法的目的是()。
A.测量与护理有关的基本生理过程 B.选择护理干预方法 C.评价护理干预效果 D.改进标本采集方法 E.测量病人的生理功能
点击查看答案
互联网上有很多专业论坛社区,通过这些论坛提供的线索和思路我们可以找到很多有价值的干货内容,请问小木虫这个论坛社区主要关注()
A.古籍善本
B.考证
C.骑游
D.学术科研
点击查看答案
客服
TOP