用贪婪算法解决背包问题,贪婪准则为:每次都选择价值最大的物品装包。假设n=3;W1=100,V1=60;W2=20,V2=40;W3=20,V3=40;C=110。下列说法不正确的是()
A.利用价值最大的贪婪准则时,选物品1,这种方案的总价值为60
B.最优解选物品为2和3,总价值为80
C.使用贪婪准则,不能保证得到最优解
D.利用价值最大的贪婪准则时,选物品2和3,总价值为80
第1题:
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 ← 0
2 (1)
3 fp ← -1
4 while true
5 while k≤n and cw+w[k]≤W do
6 (2)
7 cp ← cp+v[k]
8 Y[k]← 1
9 k ← k+1
10 if k>n then
11 if fp<cp then
12 fp ← cp
13 fw ← ew
14 k ← n
15 X ← Y
16 else Y(k)← 0
17 while BOUND(cp,cw,k,W) ≤fp do
18 while k≠0 and Y(k)≠1 do
19 (3)
20 if k=0 then return
21 Y[k]←0
22 cw ← cw ← w[k]
23 cp ← cp ← v[k]
24 (4)
本题考查的是用回溯法求解0-1背包问题。回溯法有两类算法框架:非递归形式和递归形式,本题采用非递归形式表示。理解回溯法的基本思想和这两类算法框架是正确解答本题的根本要求·回溯法从第一项物品开始考虑是否应该装入背包中,因此当前考虑的物品编号k从1开始,即k←1。然后逐项往后检查,若能全部放入背包则将该项放入背包,此时背包的重量应该是当前的重量加上当前考虑物品的重量,即cw←cw+w[k],当然背包中物品的价值也为当前的价值加上当前考虑物品的价值。若己经考虑完了所有的物品,则得到一个解,判断该解是否为当前最优,若为最优,则将该解的信息放入变量fp、fw和X中。若还没有考虑完所有的物品,意味着有些物品不能放入背包,此时先判断若不将当前的物品放入背包中,则其余物品放入背包是否可能得到比当前最优解更优的解,若得不到则回溯;否则继续考虑其余的物品。
【问题1】(共8分,各2分)
(1)k ← 1 或其等价形式
(2)cw ← cw + w[k] 或其等价形式
(3)k ← k – 1 或其等价形式
(4)k ← k + l 或其等价形式
第2题:
考虑一个背包问题,共有n=5个物品,背包容量为W=10,物品的重量和价值分别为:w={2,2,6,5,4},v={6,3,5,4,6},求背包问题的最大装包价值。若此为0-1背包问题,分析该问题具有最优子结构,定义递归式为
其中c(i,j)表示i个物品、容量为j的0-1背包问题的最大装包价值,最终要求解c(n,W)。 采用自底向上的动态规划方法求解,得到最大装包价值为(62),算法的时间复杂度为(63)。 若此为部分背包问题,首先采用归并排序算法,根据物品的单位重量价值从大到小排序,然后依次将物品放入背包直至所有物品放入背包中或者背包再无容量,则得到的最大装包价值为(64),算法的时间复杂度为(65)。
A.11
B.14
C.15
D.16.67
第3题:
第4题:
物资编码中首位“1、2、3”分别代表的含义是什么()
第5题:
考虑背包问题:n=6,物品重量W=(1,5,2,3,6,1),价值P=(15,59,21,30,60,5),背包载重量C=10。能放进背包的物品价值最大为()。
第6题:
定子是电动机静止不动的部分。定子绕线有三相,其首端分别用U1、V1、W1表示,末端用U2、V2、W2表示。
第7题:
有这样一类特殊0-1背包问题:可选物品重量越轻的物品价值越高。 n=6,c=20,P=(4,8,15,1,6,3),W=(5,3,2,10,4,8)。 其中n为物品个数,c为背包载重量,P表示物品的价值,W表示物品的重量。请问对于此0-1背包问题,应如何选择放进去的物品,才能使到放进背包的物品总价值最大,能获得的最大总价值多少?
第8题:
最早采用制导技术的武器是()
第9题:
三相双速异步电动机高速运转时,定子绕组出线端的连接方式应为()。
第10题:
U1—W2—V1—U2—W1—V2
U1—V1—W1—U2—V2—W2
U1—U2—V1—V2—W1—W2
U1—W1—V1—U2—W2—V2
第11题:
第12题:
第13题:
设无向图G=(P,L),P={v1,v2,v3,v4,v5,v6},L={(v1,v2),(v2,v2),(v2,v4),(v4,v5),(v3,v4),(v1,v3),(v3,v1)}。G中奇数度顶点的个数是(60)。
A.2
B.3
C.4
D.5
第14题:
第15题:
第16题:
有0-1背包问题如下: n=6,c=20,P=(4,8,15,1,6,3),W=(5,3,2,10,4,8)。 其中n为物品个数,c为背包载重量,P表示物品的价值,W表示物品的重量。请问对于此0-1背包问题,应如何选择放进去的物品,才能使到放进背包的物品总价值最大。 P=(15,8,6,4,3,1),W=(2,3,4,5,8,10),单位重量物品价值(7.5,2.67,1.5,0.8,0.375,0.1)
第17题:
已知单自由度系统的振动固有频率wn=2rad/s,若在其上分别作用幅值相同而频率为w1=1rad/s;w2=2rad/s,w3=3rad/s的简谐干扰力,则此系统强迫振动的振幅为:()
第18题:
对于如下描述的背包问题,请计算最终装入背包的最大价值和以及各个物品装入背包的数量。 背包容量:C=50千克。3件物品。物品1重20千克,价值100元;物品2重20千克,价值120元;物品3重30千克,价值90元。
第19题:
转轮叶片进、出口水流绝对速度,分别用字母()表示。
第20题:
自然伽马能谱测井仪送上来的多道数据,在地面被分为五个能窗,简称为W1、W2、W3、W4、W5,低能区的三个窗口为W1、W2、W3,高能区的两个窗口为、W4、W5。
第21题:
按国标规定电动机绕组的首端用U1、V1、W1表示,末端用U2、V2、W2表示。
第22题:
0
1
2
3
第23题:
第24题: