- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                
              分支限界法求解装载问题 
一、方法一般原理 
     分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。 
    在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点, 
就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结 
点被舍弃,其余儿子结点被加入活结点表中。 
此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一 
直持续到找到所需的解或活结点表为空时为止。 
两种分支限界法 
 (1)队列式(FIFO)分支限界法 
按照队列先进先出(FIFO )原则选取下一个节点为扩展节点。 
 (2 )优先队列式分支限界法 
按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。 
二、描述问题 
    有一批共 n 个集装箱要装上 2 艘载重量分别为 c 和 c 的轮船,其中集装箱 i 的重量为 
                                             1   2 
        n 
w  ,且    w   c c   ,要求确定是否有一个合理的装载方案可将这 n 个集装箱装上这 2 
 i      i     1   2 
       i 1 
艘轮船。如果有,请给出该方案。 
三、由原理得到的算法、算法的复杂度、改进 
1、可得算法 
算法 enquence 将活结点加入队列。若 i=n,则表示当前为叶节点,此时只要检查对应 
的可行解是否为最优解。in 时,当期结点为内部节点,加入队列中。 
在算法的 while 循环中,首先检测当前扩展结点的左儿子结点是否为可行结点。如果是则将 
其加入到活结点队列中。然后将其右儿子结点加入到活结点队列中(右儿子结点一定是可行 
结点) 。2 个儿子结点都产生后,当前扩展结点被舍弃。 
活结点队列中的队首元素被取出作为当前扩展结点,由于队列中每一层结点之后都有一个尾 
部标记-1,故在取队首元素时,活结点队列一定不空。当取出的元素是-1 时,再判断当前队 
列是否为空。如果队列非空,则将尾部标记-1 加入活结点队列,算法开始处理下一层的活 
结点。 
2、时间复杂度 
                                         n 
Maxloading 算法计算时间和空间复杂性均为 O (2)。 
3、可能的改进 
节点的左子树表示将此集装箱装上船,右子树表示不将此集装箱装上船。设 bestw 是当前最 
优解;wt  是当前扩展结点所相应的重量;r  是剩余集装箱的重量。则当 wt+rbestw  时,可 
将其右子树剪去,因为此时若要船装最多集装箱,就应该把此箱装上船。 另外,为了确保 
右子树成功剪枝,应该在算法每一次进入左子树的时候更新 bestw 的值。 
        while(true) 
         { 
              //检查左儿子结点 
              Type wt =Ew + w[i];//左儿子结点的重量 
              if(wt = c) 
              { 
                  //可行结点 
                  if(wtbestw) 
                       bestw = wt; 
                  //加入活结点队列 
                  if(in) 
                       Q.push(wt); 
              } 
              //检查右儿子结点 
              if(Ew+rbestwin) 
                  Q.push(Ew);//可能含最优解 
                  Ew = Q.front(); 
                  Q.pop(); //取下一扩展结点 
              if(Ew == -1) 
              { 
                  // 同层结点尾部 
                  if(Q.empty()) 
                       return bestw; 
                  Q.push(-1);//同层结点尾部标志 
                  Ew = Q.front(); 
                  Q.pop();
                您可能关注的文档
最近下载
- 摩擦学基础知识-磨损.ppt VIP
- 景观规划设计(第3版)课件:滨水景观文化设计.pptx VIP
- 甘肃省兰州市城关区树人学校2022-2023学年八年级上学期期中物理试卷(含答案).docx VIP
- 2018-2019学年甘肃省兰州市树人中学八年级(上)期中物理试卷.docx VIP
- 2020-2021学年甘肃省兰州市城关区树人中学八年级(上)期中物理试卷(含解析).doc VIP
- 十五五规划(2026-2030年)是国家未来五年发展的战略性蓝图。以下关于十五.docx VIP
- 电工基础试卷a卷及答案.doc VIP
- 甘肃省兰州市第三十五中学2022-2023学年八年级上学期期中物理试卷(含答案).docx VIP
- 北京市通州区2024-2025学年七年级上学期期末生物学试题(含答案).pdf VIP
- 北京市通州区2024-2025学年七年级上学期期末考试英语试卷.docx VIP
 原创力文档
原创力文档 
                        

文档评论(0)