算法设计与分析课件第6章_分支限界法.ppt

算法设计与分析课件第6章_分支限界法.ppt

ID:48771707

大小:611.00 KB

页数:22页

时间:2020-01-23

算法设计与分析课件第6章_分支限界法.ppt_第1页
算法设计与分析课件第6章_分支限界法.ppt_第2页
算法设计与分析课件第6章_分支限界法.ppt_第3页
算法设计与分析课件第6章_分支限界法.ppt_第4页
算法设计与分析课件第6章_分支限界法.ppt_第5页
资源描述:

《算法设计与分析课件第6章_分支限界法.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第六章分支限界法1第六章分支限界法本章主要知识点6.1分支限界法的基本思想6.2装载问题6.30-1背包问题6.4批处理作业调度26.1分支限界法的基本思想1.分支限界法与回溯法的不同(1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。(2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。36.1分支限界法的基本思想46.1分支限界法的基本思想2.

2、分支限界法基本思想分支限界法的基本思想:确定解空间的组织结构,以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。在搜索问题的解空间树时,分支限界法与回溯法对当前扩展结点所使用的扩展方式不同。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,那些导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被子加入活结点表中。此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所求的解或活结点表为空时为止.56

3、.1分支限界法的基本思想3.常见的两种分支限界法(1)队列式(FIFO)分支限界法按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。(2)优先队列式分支限界法按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。66.2装载问题1.问题描述有一批n个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为Wi,且装载问题要求确定是否有一个合理的装载方案可将这个集装箱装上这2艘轮船。如果有,找出一种装载方案。容易证明:如果一个给定装载问题有解,则采用下面的策略可得到最优装载方案。(1)首先将第一艘轮船尽

4、可能装满;(2)将剩余的集装箱装上第二艘轮船。76.2装载问题2.队列式分支限界法在算法的while循环中,首先检测当前扩展结点的左儿子结点是否为可行结点。如果是则将其加入到活结点队列中。然后将其右儿子结点加入到活结点队列中(右儿子结点一定是可行结点)。2个儿子结点都产生后,当前扩展结点被舍弃。活结点队列中的队首元素被取出作为当前扩展结点,由于队列中每一层结点之后都有一个尾部标记-1,故在取队首元素时,活结点队列一定不空。当取出的元素是-1时,再判断当前队列是否为空。如果队列非空,则将尾部标记-1加入活结点队列,算法开始处理下一

5、层的活结点。86.2装载问题2.队列式分支限界法while(true){if(ew+w[i]<=c)enQueue(ew+w[i],i);//检查左儿子结点enQueue(ew,i);//右儿子结点总是可行的ew=((Integer)queue.remove()).intValue();//取下一扩展结点if(ew==-1){if(queue.isEmpty())returnbestw;queue.put(newInteger(-1));//同层结点尾部标志ew=((Integer)queue.remove()).intValu

6、e();//取下一扩展结点i++;//进入下一层}}96.2装载问题3.算法的改进节点的左子树表示将此集装箱装上船,右子树表示不将此集装箱装上船。设bestw是当前最优解;ew是当前扩展结点所相应的重量;r是剩余集装箱的重量。则当ew+rbestw时,可将其右子树剪去,因为此时若要船装最多集装箱,就应该把此箱装上船。另外,为了确保右子树成功剪枝,应该在算法每一次进入左子树的时候更新bestw的值。106.2装载问题3.算法的改进//检查左儿子结点intwt=ew+w[i];if(wt<=c){//可行结点if(wt>bestw

7、)bestw=wt;//加入活结点队列if(ibestw&&i

8、,并设置左、右儿子标志。privatestaticclassQNode{QNodeparent;//父结点booleanleftChild;//左儿子标志intweight;//结点所相应的载重量126.2装载问题找到最优值后,可以根据parent回溯到根节点,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。