




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,5分支限界法,2,学习要点-剪枝技术分支限界法的剪枝搜索策略应用范例(1)流动推销员问题(2)单源最短路径问题(3)装载问题;(4)布线问题;(5)0-1背包问题;(6)同顺序加工任务安排问题(7)八数码问题,3,5.1图的广度优先遍历对于图G=(V,E),从任意一点r开始,依次检查所有与r有关联的边(r,a1),(r,a2),(r,ak),当上面k条边检查完毕后,再依次检查所有与a1,a2,ak相关联的(a1,a11),(a1,a12),(a1,a1m),(a2,a21),(a2,a22),(a2,a2m),(ak,ak1),(ak,ak2),(ak,akm)。依次类推,直到所有的边被检查,即所有顶点均被访问为止。,4,广度优先搜索的示例,广度优先搜索过程广度优先生成树,广度优先遍历序列:ABCDEFGHI,5,广度优先搜索是一种分层的搜索过程,每向前走一步可能访问一批顶点。因此,广度优先搜索不是一个递归的过程,其算法也不是递归的。为了实现逐层访问,算法中使用了一个队列,以记忆正在访问的这一层和上一层的顶点,以便于向下一层访问。为避免重复访问,需要一个辅助数组visited,给被访问过的顶点加标记。,6,图的广度优先搜索算法:templatevoidGraph:BFS(intv)int*visited=newintNumVertices;for(inti=0;iq;q.EnQueue(v);/访问v,进队列,7,while(!q.IsEmpty()/队空搜索结束v=q.DeQueue();/不空,出队列intw=GetFirstNeighbor(v);/取顶点v的第一个邻接顶点wwhile(w!=-1)/若邻接顶点w存在if(!visitedw)/若该邻接顶点未访问过coutGetValue(w);/访问visitedw=1;q.EnQueue(w);/进队w=GetNextNeighbor(v,w);/取顶点v的排在w后面的下一邻接顶点/重复检测v的所有邻接顶点/外层循环,判队列空否,如果使用邻接表表示图,则循环的总时间代价为d0+d1+dn-1=O(e),其中的di是顶点i的度。,如果使用邻接矩阵,则对于每一个被访问过的顶点,循环要检测矩阵中的n个元素,总的时间代价为O(n2)。,8,5.2-剪枝技术-剪枝技术是一种技巧。比如,7根火柴,A、B两人依次从中取出1根或2根,但不能不取,最后一个将取尽的便是赢家。,9,5.3分支限界法通常以广度优先或最小耗费(最大效益)优先的方式,搜索问题的解空间树。可以这样理解:分支定界法与广度优先方法的不同在于,往往不用遍历整个图,而是将不可能得到解或不可能得到最优解的树枝剪掉(即下界估计),从而提高搜索效率。关键:下界估计,10,5.3.1分支限界法的基本思想,(1)求解目标:分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。,(2)搜索方式:以广度优先或以最小耗费优先的方式搜索解空间树。,11,分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。,此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。,在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。,12,5.3.2分支限界法示例,(1)单源最短路径问题(2)布线问题(3)八数码问题(4)对称流动推销员问题(5)非对称流动推销员问题,13,例1:单源最短路径问题,1.问题描述,在下图所给的有向图G中,每一边都有一个非负边权。要求图G的从源顶点s到目标顶点t之间的最短路径。,a=2b=3c=4d=7e=2f=9g=2h=2i=6j=7k=3l=5m=1n=50=8p=2q=1r=2u=3,14,用优先队列式分支限界法解有向图G的单源最短路径问题产生的解空间树。其中,每一个结点旁边的数字表示该结点所对应的当前路长。,15,2.算法思想,解单源最短路径问题的优先队列式分支限界法用一小顶堆来存储活结点表。其优先级是结点所对应的当前路长。,算法从图G的源顶点s和空优先队列开始。结点s被扩展后,它的儿子结点被依次插入堆中。此后,算法从堆中取出具有最小当前路长的结点作为当前扩展结点,并依次检查与当前扩展结点相邻的所有顶点。如果从当前扩展结点i到顶点j有边可达,且从源出发,途经顶点i再到顶点j的所相应的路径的长度小于当前最优路径长度,则将该顶点作为活结点插入到活结点优先队列中。这个结点的扩展过程一直继续到活结点优先队列为空时为止。,16,a=2b=3c=4d=7e=2f=9g=2h=2i=6j=7k=3l=5m=1n=50=8p=2q=1r=2u=3,17,3.剪枝策略,在算法扩展结点的过程中,一旦发现一个结点的下界不小于当前找到的最短路长,则算法剪去以该结点为根的子树。在算法中,利用结点间的控制关系进行剪枝。从源顶点s出发,2条不同路径到达图G的同一顶点。由于两条路径的路长不同,因此可以将路长长的路径所对应的树中的结点为根的子树剪去。,18,例2布线问题,1.算法思想,解此问题的队列式分支限界法从起始位置a开始将它作为第一个扩展结点。与该扩展结点相邻并且可达的方格成为可行结点被加入到活结点队列中,并且将这些方格标记为1,即从起始方格a到这些方格的距离为1。,接着,算法从活结点队列中取出队首结点作为下一个扩展结点,并将与当前扩展结点相邻且未标记过的方格标记为2,并存入活结点队列。这个过程一直继续到算法搜索到目标方格b或活结点队列为空时为止。即加入剪枝的广度优先搜索。,19,2.示例,20,boolfindpath(positionstart,Positionfinish,int,for(inti=0;i=m+1;i+)grid0i=gridn+1i=1;/顶部和底部for(inti=0;i=n+1;i+)gridi0=gridim+1=1;/左翼和右翼,设置边界的围墙,21,positionoffset4;offset0.row=0;offset0.col=1;/右offset1.row=1;offset1.col=0;/下offset2.row=0;offset2.col=-1;/左offset3.row=-1;offset3.col=0;/上,定义移动方向的相对位移,intnumofnbrs=4;here.row=start.row;here.col=start.col;gridstart.rowstart.col=2;/标记可达方格位置linkedqueueQ;,22,do/标记可达相邻方格for(inti=0;iNumOfNbrs;i+)nbr.row=here.row+offseti.row;nbr.col=here.col+offseti.col;if(gridnbr.rownbr.col=0)/该方格未标记gridnbr.rownbr.col=gridhere.rowhere.col+1;if(nbr.row=finish.row),找到目标位置后,可以通过回溯方法找到这条最短路径。,23,/是否达到目标位置if(nbr.row=finish.row),找到目标位置后,可以通过回溯方法找到这条最短路径。,24,在3*3的方格棋盘上,分别放置了标有数字1、2、3、4、5、6、7、8的八张牌,初始状态S0,目标状态Sg。可以使用的操作有:空格左移,空格上移,空相右移,空格下移即只允许把位于空格左、上、右、下方的牌移入空格。寻找从初始状态到目标状态的解路径。,2834765,S0,12384765,Sg,例3八数码难题,25,Sg,由图可以看出,解的路径是:S0381626(Sg),26,设估价函数为:f(n)=d(n)W(n)其中,d(n)表示节点n在搜索树中的深度;w(n)表示节点n中“不在位”的数码个数。取g(n)=d(n),h(n)=W(n)。它说明是用从S0到n的路径上的单位代价表示实际代价,用n中“不在位”的数码个数作为启发信息。一般来说,某节点中的“不在位”的数码个数越多,说明它离目标节点越远。对初始节点S0,由于d(S0)=0,W(S0)=3,因此有f(S0)=03=3这个例子仅是为了说明估价函数的含义及估价函数值的计算。在问题搜索过程中,除了需要计算初始节点的估价函数之外,更多的是要计算新生成节点的估价函数值。,27,1全局择优搜索,二.A算法,2.3状态空间的启发式搜索,每个节点旁边的数字是该节点的估价函数值。例如,对节点S2,其估价函数值的计算为f(S2)=d(S2)W(S2)=13=4从该图还可以看出,该问题的解为:S0S2S7S9Sg,S94,28,例4对称流动推销员问题14116214252312599161962396,Dmn=,问题:从某一城市出发,遍历各城市一次且仅一次,最后返回原地,求最短路径。(1)取5个最小边,求和。d13+d15+d24+d25+d45=14(2)用34替换15,求和。d13+d34+d24+d25+d45=21(3)用34替换25,求和。d13+d15+d24+d34+d45=20(4)用34替换45,求和。d13+d15+d24+d25+d34=17,29,(13,15,24,25,45),14,(13,34,24,25,45),21,(13,15,24,34,45),20,选择45,(13,15,24,25,34),17,选择15,选择25,不选25,不选45,不选15,14116214252312599161962396,Dmn=,30,14305610114346561510132133411,Dmn=,问题:从某一城市出发,遍历各城市一次且仅一次,最后返回原地,求最短路径。,例5非对称流动推销员问题,31,方法:对D的每行减去该行的最小元,或每列减去该列的最小元,的一新矩阵,使每行每列至少有一个0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ai企业管理制度
- 标准仓库入仓管理制度
- 校内公务接待管理制度
- 校区物品安全管理制度
- 校园医院卫生管理制度
- 校园天桥通道管理制度
- 校园应急疏散管理制度
- 校园水电维修管理制度
- 校园电子气体管理制度
- 校园衣物存取管理制度
- 《成人高血压合并2型糖尿病和血脂异常基层防治中国专家共识(2024年版)》解读
- 《小学交通安全教育》课件
- 2024北京西城区五年级(下)期末英语试题及答案
- 2025-2030中国电池镀镍钢板行业市场发展趋势与前景展望战略研究报告
- 2025届广东省东莞市东华中学初三联合考试数学试题试卷含解析
- 非人灵长类动物实验的现状、伦理问题及审查要点
- 数字人合同协议
- 小青瓦仿古屋面施工方案
- 2024年杭州市拱墅区上塘街道招聘工作人员考试真题
- Unit 5 Animal friends Reading 课件 译林版英语七年级下册
- 预防粮库粮堆坍塌埋人事故
评论
0/150
提交评论