算法分析作业-第5章.ppt

上传人:zhu****ei 文档编号:3501627 上传时间:2019-12-16 格式:PPT 页数:44 大小:581KB
返回 下载 相关 举报
算法分析作业-第5章.ppt_第1页
第1页 / 共44页
算法分析作业-第5章.ppt_第2页
第2页 / 共44页
算法分析作业-第5章.ppt_第3页
第3页 / 共44页
点击查看更多>>
资源描述
算法分析作业第5章,贪心法,最优化问题约束条件目标函数最优量度标准(贪心规则、贪心选择性质)试探、证明贪心法不一定能求得最优值,大多数情况得到较优值;,2、3、6、7、8、9、11、12,P121-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根据贪心(x5,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。,按照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/141,物品按wi的非降次序: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/81,P122-3,(0/1背包问题)如果将5.3节讨论的背包问题修改成极大化约束条件xi=0或11in这种背包问题称为0/1背包问题。它要求物品或者整件装入背包或者整件不装入。求解此问题的一种贪心策略是:按pi/wi的非增次序考虑这些物品,只要正被考虑的物品能装的进就将其装入背包。证明这种策略不一定能得到最优解。,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的非降次序存放程序不一定得到最小的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=16,P122-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=2.2,P122-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是第一个与其相邻的程序jk+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,否则分配给B。证明无论按l1l2ln或是按l1l2ln的次序来考虑程序,这种方法都不能产生最优解。,证明:按照l1l2ln不一定产生最优解证:取l1,l2,l3=1,3,4按l1l2l3次序得到A=1,4,B=3,最大值是5若令A=1,3,B=4,最大值是4.这种方式更优。故命题得证。,证明:按照l1l2ln不一定产生最优解证:取l1,l2,l3,l4,l5=10,9,8,6,5按l1l2l3l4l5次序得到A=10,6,5,B=9,8,最大值是21.若令A=10,9,B=8,6,5,最大值是19.这种方式更优。故命题得证。,P123-8,当n=7,(p1,p7)=(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生成的解为:,P123-8,证明即使作业有不同的处理时间定理5.3亦真。这里,规定作业i的效益pi0,要用的处理时间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,则J就是一个可行解。下面证明如果J是可行解,=i1i2ik使得J中的作业可以按照di1di2din序列排列而又不违反任何一个期限。,J是可行解,则必存在=r1r2rn,使得对任意的rk,都有drk,我们设是按照di1di2din排列的作业序列。假设,那么令a是使raia的最小下标,设rb=ia,显然ba,在中将ra与rb相交换,因为drbdra,显然ra和rb可以按期完成作业。=r1rarbrn(可行解)=i1iain(d递增)t=drbdratdrj,我们还要证明ra和rb之间的作业也能按期完成。因为drbdra,而显然二者之间的所有作业rt,都有drbdrt,又由于是可行解,所以,所以作业ra和rb交换后,仍满足drt,即所有作业可依新产生的排列=s1s2sn的次序处理而不违反任何一个期限连续使用这种方法,就可转换成且不违反任何一个期限,定理得证。,P123-9,对于5.3节的作业排序问题证明:当且仅当子集合J中的作业可以按下述规则处理时它表示一个可行解;如果J中的作业I还没分配处理时间,则将它分配在时间片a-1,a处理,其中a是使得1rdi的最大整数r,且时间片a-1,a是空的。仿照例5.4的格式,在习题8所提供的数据集上执行算法5.5。,P123-9,易证如果J中的作业能按上述规则处理,显然J是可行解;如果J是可行解,根据定理5.3可知,J中的作业根据时间期限的非降次序排列,得到i1i2ikin,并且按照这个顺序,可以处理J中所有作业,而对这一序列中的任意作业ik,如果它的时间期限是dk,且时间片dk-1,dk是空的,则分配之;若时间片dk-1,dk非空,则向前找最大的非空r-1,r时间片,1rdk。因为J是可行解,所以一定可以找到如此时间片。故命题得证。,n=7(p1,p7)=(3,5,20,18,1,6,30)(d1,d7)=(1,3,4,3,2,1,2)(p7,p3,p4,p6,p2,p1,p5)=(30,20,18,6,5,3,1),对应的期限为(2,4,3,1,3,1,2)b=minn,maxd(i)=min7,4=4,空,7,7,3,(p7,p3,p4,p6,p2,p1,p5)=(30,20,18,6,5,3,1),对应的期限为(2,4,3,1,3,1,2),7,3,4,7,3,4,6,(p7,p3,p4,p6,p2,p1,p5)=(30,20,18,6,5,3,1),对应的期限为(2,4,3,1,3,1,2),P123-11,证明如果一棵树的所有内部节点的度都为k,则外部节点数n满足nmod(k-1)=1.证明对于满足nmod(k-1)=1的正整数n,存在一棵具有n个外部节点的k元树T(在一棵k元树中,每个节点的度至多为k)。进而证明T中所有内部节点的度为k.,P123-11证明如果一棵树的所有内部节点的度都为k,则外部节点数n满足nmod(k-1)=1.,证明:设这棵树内部节点的个数是i,外部结点的个数是n,边的条数是e,则有e=i+n-1e=i*ki*k=i+n-1(k-1)i=n-1nmod(k-1)=1,P123-11证明对于满足nmod(k-1)=1的正整数n,存在一棵具有n个外部节点的k元树T(在一棵k元树中,每个节点的度至多为k)。进而证明T中所有内部节点的度为k.,利用数学归纳法(m表示外部结点数目)。当m=k时,存在外部结点数目为k的k元树T,并且T中内部结点的度为k;,例如:m=33mod(3-1)=1,假设当mn,且满足mmod(k-1)=1时,存在一棵具有m个外部结点的k元树T,且所有内部结点的度为k;我们将外部结点数为m的符合上述性质的树T中某个外部结点用内部结点a替代,且结点a生出k个外部结点.,易知新生成的树T中外部结点的数目为n=m-1+k=m+(k-1),因为mmod(k-1)=1,所以n为满足nmod(k-1)=1,且比m大的最小整数,而树T每个内结点的度为k,所以n=m+(k-1)时,存在符合上述性质的树。故命题得证。,P123-12,证明如果nmod(k-1)=1,则在定理5.4后面所描述的贪心规则对于所有的(q1,q2,qn)生成一棵最优的k元归并树。当(q1,q2,q11)=(3,7,8,9,15,16,18,20,23,25,28)时,画出使用这一规则所得到的最优3元归并树。,P123-12证明如果nmod(k-1)=1,则在定理3.6后面所描述的贪心规则对于所有的(q1,q2,qn)生成一棵最优的k元归并树。,通过数学归纳法证明:对于n=1,返回一棵没有内部结点的树且这棵树显然是最优的。假定该算法对于(q1,q2,qm),其中m=(k-1)s+1(s0),都生成一棵最优树,则只需证明对于(q1,q2,qn),其中n=(k-1)(s+1)+1,也能生成最优树即可。,不失一般性,假定q1q2qn,且q1,q2,qk是算法所找到的k棵树的WEIGHT信息段的值。于是q1,q2,qk可生成子树T,设T是一棵对于(q1,q2,qn)的最优k元归并树。设P是距离根最远的一个内部结点。如果P的k个儿子不是q1,q2,qk,则可以用q1,q2,qk和P现在的儿子进行交换,这样不增加T的加权外部路径长度。,因此T也是一棵最优归并树中的子树。于是在T中如果用其权为q1+q2+qk的一个外部结点来代换T,则所生成的树T是关于(T,qk+1,qn)的一棵最优归并树。由归纳假设,在使用其权为q1+q2+qk的那个外部结点代换了T以后,过程TREE转化成去求取一棵关于(T,qk+1,qn)的最优归并树。因此TREE生成一棵关于(q1,q2,qn)的最优归并树。,(q1,q2,q11)=(3,7,8,9,15,16,18,20,23,25,28),(q1,q2,q11)=(3,7,8,9,15,16,18,20,23,25,28),7,8,3,23,25,28,9,15,16,18,20,18,40,56,76,172,(q1,q2,q11)=(3,7,8,9,15,16,18,20,23,25,28),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!