算法分析作业-第5章.ppt
《算法分析作业-第5章.ppt》由会员分享,可在线阅读,更多相关《算法分析作业-第5章.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法分析作业第5章贪心法最优化问题约束条件目标函数最优量度标准(贪心规则、贪心选择性质)试探、证明贪心法不一定能求得最优值,大多数情况得到较优值;2、3、6、7、8、9、11、12P121-2求以下情况背包问题的最优解,n=7,m=15,(p1,p7)=(10,5,15,7,6,18,3)和(w1,w7)=(2,3,5,7,1,4,1)。将以上数据情况的背包问题记为I。设FG(I)是物品按pi的非增次序输入时由GREEDY-KNAPSACK所生成的解,FO(I)是一个最优解。问FO(I)/FG(I)是多少?当物品按wi的非降次序输入时,重复的讨论。求背包问题的最优解n=7,m=15根据贪心(x
2、5,x1,x6,x3,x7,x2,x4)=(1,1,1,1,1,2/3,0)即(x1,x2,x3,x4,x5,x6,x7)=(1,2/3,1,0,1,1,1)FO(I)=166/3。i1234567p1051576183w2357141p/w 55/3 3169/2 3x12/3 1111按照Pi的非增次序:n=7,m=15根据贪心(x6,x3,x1,x4,x5,x2,x7)=(1,1,1,4/7,0,0,0)即FG(I)的解为(0,1,0,1,1,0,4/7),FG(I)=47FO(I)/FG(I)=166/141i1234567p1051576183w2357141x117/41物品按wi
3、的非降次序:n=7,m=15根据贪心(x5,x7,x1,x2,x6,x3,x4)=(1,1,1,1,1,4/5,0)即FG(I)的解为(1,1,4/5,0,1,1,1),FG(I)=54FO(I)/FG(I)=166/162=83/81i1234567p1051576183w2357141x114/5111P122-3(0/1背包问题)如果将5.3节讨论的背包问题修改成极大化约束条件xi=0或1 1in这种背包问题称为0/1背包问题。它要求物品或者整件装入背包或者整件不装入。求解此问题的一种贪心策略是:按pi/wi的非增次序考虑这些物品,只要正被考虑的物品能装的进就将其装入背包。证明这种策略不
4、一定能得到最优解。P122-3证明:按照pi/wi的非增次序考虑物品放入背包,如果从大到小连续放入且能装满背包时,显然为最优解。否则未必是最优解.P122-3可举例如下:设n=3,M=6,(p1,p2,p3)=(3,4,8),(w1,w2,w3)=(1,2,5)按照pi/wi 的非增序得到(p1/w1,p2/w2,p3/w3)=(3,2,1.6),则其解为(1,1,0),而事实上最优解是(1,0,1)。问题得证。P122-6假定要将长为l1,l2,ln的n个程序存入一盘磁带,程序i被检索的频率是fi。如果程序按i1,i2,in的次序存放,则期望检索时间(ERT)是:证明按li的非降次序存放程序
5、不一定得到最小的ERT。证明按fi的非增次序存放程序不一定得到最小的ERT。证明按fi/li的非增次序来存放程序时ERT取最小值。P122-6证明按li的非降次序存放程序不一定得到最小的ERT。I:(l1,l2)=(10,12)(f1,f2)=(0.4,0.6)ERT(I)=10*0.4+(10+12)*0.6=17.2ERT(I)=12*0.6+(10+12)*0.4=16P122-6证明按fi的非增次序存放程序不一定得到最小的ERT。I:(l1,l2)=(2,1)(f1,f2)=(0.6,0.4)ERT(I)=2*0.6+(2+1)*0.4=2.4ERT(I)=1*0.4+(1+2)*0.
6、6=2.2P122-6证明按fi/li的非增次序来存放程序时ERT取最小值。假设i1,i2,in按照fi/li的非增次序存放,即fi1/li1fi2/li2fin/lin,则得到ERT=fi1li1+fi2(li1+li2)+fik(li1+li2+lik)+fin(li1+li2+lin)/(fi1+.+fin)假设该问题的一个最优解是按照j1,j2,jn的顺序存放,并且其期望检索时间是ERT,我们只需证明ERTERT,即可证明按照fi/li的非增次序存放得到的是最优解。从前向后考察最优解序列:j1,j2,jn,若与i1,i2,in相同,命题得证。否则,不妨设程序jk是第一个与其相邻的程序j
7、k+1存在关系fjk/ljk0,既有ERTERT,显然ERT也是最优解。最优解中所有这样类似于反序对的程序互换位置,每次得到的解不比原来的最优解差,所以最终变换后得到的解也是最优解,而最终的解恰是程序按fi/li的非增次序来存放得到的顺序。命题得证。P122-7假定要将长为l1,l2,ln的n个程序分别写入两盘磁带T1和T2上,并且希望按照使最大检索时间取最小值的方式存放。即,如果存放在T1和T2上的程序集合分别是A和B,就希望所选择的A和B使得max,取最小值。一种得到A和B的贪心方法如下:开始将A和B都初始化为空,然后一次考虑一个程序,如果=min,则将当前正在考虑的那个程序分配给A,否则
8、分配给B。证明无论按l1 l2 ln 或是按l1 l2 ln 的次序来考虑程序,这种方法都不能不能产生最优解。证明:按照l1 l2 ln不一定产生最优解证:取l1,l2,l3=1,3,4按l1 l2 l3次序得到A=1,4,B=3,最大值是5若令A=1,3,B=4,最大值是4.这种方式更优。故命题得证。证明:按照l1 l2 ln不一定产生最优解证:取l1,l2,l3,l4,l5=10,9,8,6,5按l1 l2 l3 l4 l5次序得到 A=10,6,5,B=9,8,最大值是21.若令A=10,9,B=8,6,5,最大值是19.这种方式更优。故命题得证。P123-8当n=7,(p1,p7)=(
9、3,5,20,18,1,6,30)和(d1,d7)=(1,3,4,3,2,1,2)时,算法5.4所生成的解是什么?证明即使作业有不同的处理时间定理5.3亦真。这里,假定作业i的效益pi0,要用的处理时间ti0,限期diti.P123-8解:根据pi的非增排序得到(p7,p3,p4,p6,p2,p1,p5)=(30,20,18,6,5,3,1),对应的期限为(2,4,3,1,3,1,2),按照算法5.4生成的解为:kJD(J(r),r=1.k17227,32,437,4,32,3,446,7,4,31,2,3,4P123-8证明即使作业有不同的处理时间定理5.3亦真。这里,规定作业i的效益pi0
10、,要用的处理时间ti0,限期diti.(P106)定理5.3:设J是K个作业的集合,=i1i2ik是J中作业的一种排序,它使得di1di2dik.J是一个可行解,当且仅当J中的作业可以按照的次序又不违反任何一个期限的情况下来处理.P123-8证明思想:位置a,b的作业交换顺序作业ra和rb仍然可以完成任务作业ra和rb之间的作业也能够完成任务P123-8证明:显然即使证明:显然即使ti0(diti),如果),如果J中的作业可以中的作业可以按照按照 的次序而又不违反任何一个期限来处理,的次序而又不违反任何一个期限来处理,即对即对 次序中的任一个作业次序中的任一个作业k,应满足,应满足dk ,则,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 分析 作业
限制150内