



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
0/1背包问题的分枝限界法用优先队列式分枝限界法解决0/1背包问题(作为极大化问题),需要确定以下四个问题:解空间树中结点的结构、如何生成一个给定结点的儿子、如何组织活结点表、如何识别答案结点。 我们采用完整的二叉树作为解空间树,放在活结点表中的每个结点具有6个信息段:Parent、Level、Tag、CC、CV、CUB。其中Parent是结点X的父亲结点连接指针;Level标志出结点X在解空间树中的级数,通过置表示生成X的左儿子,置表示生成X的右儿子;信息段Tag用来输出最优解各个分量的值;信息段CC记录背包在结点X处的可用空间(即剩余空间),在确定X左儿子的可行性时用;CV记录在结点X处背包中已装物品的价值(或效益值),等于;信息段CUB用来存放结点X的Pvu值。这里,Pvu表示在结点X所表示的状态下,可行解所能达到的可能值的上界。也即是说,当的值确定后,可行解所能达到的效益值的上界。类似地,当的值确定后,可行解所能达到的最大效益值的下界记做Pvl。如果到目前为止所知道的可行解的最大效益值CV不小于Pvl,则当Pvuprev then11. prev=cv; ANS=E;12. endif13. :else: /E是内部结点,有两个儿子14 if capWi then /左儿子可行15 NewNode(E,i+1,1,cap-Wi,cv+Pi,CUB(E);16. endif17. LUBound(P,W,cap,cv,N,i+1,Pvl,Pvu);18. if Pvuprev then /右儿子会活19. NewNode(E,i+1,0,cap,cv,Pvu); prev=max(prev,Pvl-e);20. endif21. endcase22. if 不再有活结点 then exit endif23. Largest(E);/取下一个扩展结点24. until CUB(E) prev endloop25. Finish(cv,ANS,N);26. end LCKNAP算法中有两点值得注意:(1).第624行的循环依次检查所生成的每个结点。此循环在以下两种情况下终止:或者活结点队列为空,或者为了扩展而选择的结点E(扩展结点)满足CUB(E) prev.在后一种情况下,由扩展结点的选法可知,对所有的扩展结点X均有CUB(X) CUB(E) prev,因而它们都不能导致其值比prev更大的解。(2).在左儿子X可行的情况下,由LUBound算出它的上界,并由此而得CUB(X)=CUB(E).因为CUB(E)prev或者prev=Pvl-e Pvu,所以将X加入活结点表。由于左儿子的下界、上界与E的相同,因而不必再计算。但是右儿子则不同,所以需要调用函数LUBound来获取CUB(Y)= Pvu.如果Pvuprev,则杀死结点Y(即,不放在结点表中)。否则,将结点Y加入活结点表,并修改prev的值(第19行)。以下附上前面提到的几个子程序。 程序8-2-2 计算结点状态下的可能取得最大效益值的上、下界 LUBound(P,W,rw,cp,N,k,Pvl,Pvu)/rw是背包的剩余容量,cp是已取得的效益值,还有物品k,N要考虑 Pvl=cp; c=rw; for i from k to N doif cWi then Pvu=Pvl+c*Pi/Wi;/ 从第k件到第N件至少有一件物品不能装进背包的情形出现 for j from i+1 to N do if cWj then c=c-Wj; Pvl=Pvl+Pj; endif endfor return /此时Pvl Pvuendifc=c-Wi; Pvl=Pvl+Pi; endfor Pvu= Pvl; / 从第k件物品到第N件物品都能装进背包的情形出现, end LUBound 程序8-2-3 程序生成新结点算法NewNode(par,lev,t,cap,cv,ub)/生成一个新结点J,并把它加到/活结点表 GetNode(J); Parent(J)=par;Level(J)=lev;Tag(J)=t; CC(J)=cap; CV(J)=cv; CUB(J)=ub; Add(J);end NewNode 程序8-2-4 打印答案程序Finish(CV,ANS,N)/输出解 real CV; global Tag,Parent; print(OBJECTS IN KNAPSACK ARE)for j from N by 1 to 1 do if Tag(ANS)=1 then print(j); end
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司节假日安全培训课件
- 建筑施工防火安全技术措施
- 综合部主任竞聘报告
- 企业安全管理工作计划三篇
- 《记承天诗夜游》课件
- 静脉溶栓术后护理措施
- 事诸父如事父课件
- 研究生学习进展与心得汇报
- 公司级安全培训签到表课件
- 公司级安全培训意义课件
- 收割芦苇施工方案
- 辽宁省沈阳市2025-2026学年七年级上学期第一次月考数学试卷(含答案)
- 普通黄金现货购买合同8篇
- 小学生日常行为规范知识竞赛试题(附答案)
- 2025年食品安全员考试题库及答案
- 民宿入住免责协议书范本
- 岭南版小学美术四年级上学期教学进度计划
- 管廊运维招聘题库及答案
- 江西省2025年高考物理真题及答案解析
- 2025年广东卷物理高考试卷(原卷+答案)
- 三力测试考试题库及答案视频讲解
评论
0/150
提交评论