2021-05-13

“LCS算法和背包算法,特别要求举例时采用不同于讲义的数据进行推导。”

LCS算法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
X = <A,B,C,B,D,A,B>
Y = <B,D,C,A,B,A>

步骤一、
(1)i=1
1)X.A<>Y.B : C[1,1]=max(C[1,0], C[0,1])= max(0, 0)=0, 删除 y
2)X.A<>Y.D : C[1,2]=max(C[1,1], C[0,2])= max(0, 0)=0, 删除 y
3)X.A<>Y.C : C[1,3]=max(C[1,2], C[0,3])= max(0, 0)=0, 删除 y
4)X.AY.A : C[1,4]=C[0,3]+1=1, 删除两个
5)X.A<>Y.B : C[1,5]=max(C[1,4], C[0,5])= max(1, 0)=1, 删除 y
6)X.A
Y.A : C[1,6]=C[0,5]+1=1, 删除两个

(2)i=2
1)X.BY.B : C[2,1]=C[1,0]+1=1, 删除 两个
2)X.B<>Y.D : C[2,2]=max(C[2,1], C[1,2])= max(1, 0)=1, 删除 y
3)X.B<>Y.C : C[2,3]=max(C[2,2], C[1,3])= max(1, 0)=1, 删除 y
4)X.B<>Y.A : C[2,4]=max(C[2,3],C[1,4])= max(1 , 1)=1, 删除y
5)X.B
Y.B : C[2,5]=C[1,4]+1=2, 删除两个
6)X.B<>Y.A : C[2,6]=max(C[2,5],C[1,6])= max(2 , 1)=2, 删除y

(3)i=3
1)X.C<>Y.B : C[3,1]=max(C[3,0], C[2,1])= max(0, 1)=1, 删除 x
2)X.C<>Y.D : C[3,2]=max(C[3,1], C[2,2])= max(1, 1)=1, 删除 y
3)X.C==Y.C : C[3,3]=C[2,2]+1=2,删除两个
4)X.C<>Y.A : C[3,4]=max(C[3,3],C[2,4])= max(2 , 1)=2, 删除y
5)X.C<>Y.B : C[3,5]=max(C[3,4],C[2,5])= max(2 , 2)=2, 删除y
6)X.C<>Y.A : C[3,6]=max(C[3,5],C[2,6])= max(2 , 2)=2, 删除y

(4)i=4
1)X.BY.B : C[4,1]=C[3,0]+1=1,删除两个
2)X.B<>Y.D : C[4,2]=max(C[4,1], C[3,2])= max(1, 1)=1, 删除 y
3)X.B<>Y.C : C[4,3]=max(C[4,2],C[3,3])= max(1 , 2)=2, 删除x
4)X.B<>Y.A : C[4,4]=max(C[4,3],C[3,4])= max(2 , 2)=2, 删除y
5)X.B
Y.B : C[4,5]= C[3,4]+1=3,删除两个
6)X.B<>Y.A : C[4,6]=max(C[4,5],C[3,6])= max(3 , 2)=3, 删除y

(5)i=5
1)X.D<>Y.B : C[5,1]=max(C[5,0], C[4,1])= max(0, 1)=1, 删除 x
2)X.D==Y.D : C[5,2]=C[4,1]+1=2,删除两个
3)X.D<>Y.C : C[5,3]=max(C[5,2],C[4,3])= max(2 , 2)=2, 删除y
4)X.D<>Y.A : C[5,4]=max(C[5,3],C[4,4])= max(2 , 2)=2, 删除y
5)X.D<>Y.B : C[5,5]=max(C[5,4],C[4,5])= max(2 , 3)=3, 删除x
6)X.D<>Y.A : C[5,6]=max(C[5,5],C[4,6])= max(3 , 3)=3, 删除y

(6)i=6
1)X.A<>Y.B : C[6,1]=max(C[6,0], C[5,1])= max(0, 1)=1, 删除 x
2)X.A<>Y.D : C[6,2]=max(C[6,1], C[5,2])= max(1, 2)=2, 删除 x
3)X.A<>Y.C : C[6,3]=max(C[6,2],C[5,3])= max(2 , 2)=2, 删除y
4)X.AY.A : C[6,4]=c[5,3]+1=3, 删除两个
5)X.A<>Y.B : C[6,5]=max(C[6,4],C[5,5])= max(3 , 3)=3, 删除y
6)X.A
Y.A : C[6,6]=C[5,5]+1=4,删除两个

(7)i=7
1)X.BY.B : C[7,1]=c[6,0]+1=1,删除两个
2)X.B<>Y.D : C[7,2]=max(C[7,1], C[6,2])= max(1, 2)=2, 删除 x
3)X.B<>Y.C : C[7,3]=max(C[7,2],C[6,3])= max(2 , 2)=2, 删除y
4)X.B<>Y.A : C[7,4]=max(C[7,3],C[6,4])= max(2 , 3)=3, 删除x
5)X.B
Y.B : C[7,5]=C[6,4]+1=4,删除两个
6)X.B<>Y.A : C[7,6]=max(C[7,5],C[6,6])= max(4, 4)=4, 删除y

步骤二、
(1)X=7,Y=6
查表(7,6)“4:删除y”
X = <A,B,C,B,D,A,B>
Y = <B,D,C,A,B,A>
=>
X = <A,B,C,B,D,A,B>
Y = <B,D,C,A,B,A>
(2)X=7,Y=5
查表(7,5) “4:删除两个”
X = <A,B,C,B,D,A,B>
Y = <B,D,C,A,B,>
=>
X = <A,B,C,B,D,A,B>
Y = <B,D,C,A,B>
输出B
(3)X=6,Y=4
查表(6,4) “3:删除两个”
X = <A,B,C,B,D,A>
Y = <B,D,C,A>
=>
X = <A,B,C,B,D,A>
Y = <B,D,C,A>
输出A

(4)X=5,Y=3
查表(5,3) “2:删除y”
X = <A,B,C,B,D>
Y = <B,D,C>
=>
X = <A,B,C,B,D>
Y = <B,D,C>

(5)X=5,Y=2
查表(5,2) “2:删除两个”
X = <A,B,C,B,D>
Y = <B,D>
=>
X = <A,B,C,B,D>
Y = <B,D>
输出D

(6)X=4,Y=1
查表(4,1) “1:删除两个”
X = <A,B,C,B>
Y =
=>
X = <A,B,C,B>
Y =
输出B

(7)X=3,Y=0
算法结束,最终输出<B,D,A,B>

背包算法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
V1=2,V2=4,V3=6,V4=10
W1=3,W2=4,W3=5,W4=7
b=10
在这里插入图片描述

根据上表推算:i4(10)=4,所以一定有一个4号物品
i4(10-w4)=i4(10-7)=i4(3)=1,所以有一个1号物品
总重为3,只有1号物品符合,再往下也没有符合了,所以就是一个4号物品,一个1号物品。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值