第六章分支界限法PPT讲稿.ppt
《第六章分支界限法PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第六章分支界限法PPT讲稿.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章分支界限法2023/1/25计算机算法设计与分析1第1页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析2分支限界法是最佳优先搜索法n分支限界法就是最佳优先(包括广度优先在内)的搜索法。n分支限界法将要搜索的结点按评价函数的优劣排序,让好的结点优先搜索,将坏的结点剪去。所以准确说,此方法应称为界限剪支法。n分支限界法中有两个要点:n(1)评价函数的构造;评价函数的构造;n(2)搜索路径的构造。搜索路径的构造。第2页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析3评价函数的构造n评价函数要能够提供一个评定候选扩展结点的方法,以便确定哪个
2、结点最有可能在通往目标的最佳路径上。n一个评价函数f(d)通常可以由两个部分构成:从开始结点到结点d的已有耗损值g(d),和再从结点d到达目标的期望耗损值h(d)。即:f(d)=g(d)+h(d)n通常g(d)的构造较易,h(d)的构造较难。第3页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析4搜索路径的构造n在回溯法中,每次仅考察一条路径,因而只需要构造这一条路径即可:前进时记下相应结点,回溯时删去最末尾结点的记录。这比较容易实现。n在分支限界法中,是同时考察若干条路径,那么又该如何构造搜索的路径呢?n对每一个扩展的结点,建立三个信息:n(1)该结点的名称;n(2
3、)它的评价函数值;n(3)指向其前驱的指针;n这样一旦找到目标,即可逆向构造其路径。n用一个表保存准备扩展的结点,称为Open表。n用一个表保存已搜索过的结点,称为Closed表。第4页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析5分支限界法的一般算法n计算初始结点s的f(s);s,f(s),nil放入Open;nwhile(Open)n 从Open中取出p,f(p),x(f(p)为最小);n 将p,f(p),x放入Closed;n 若p是目标,则成功返回;否则n 产生p的后继d并计算f(d);对每个后继d有二种情况:dClosed|d Open;dOpen&dC
4、losed。n 若(d,f(d),pClosed|d,f(d),pOpen)&f(d)f(d),则删去旧结点并将d,f(d),p 重新插入到Open中;否则n 将d,f(d),p 插入到Open中。第5页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析6分支限界法求单源最短路径n单源最短路径问题的评价函数的构造:ng(d)定义为从源s到结点d所走的路径长度:g(d)=g(p)+Cpd这里p为d的前驱结点,Cpd为p到d的距离。nh(d)定义为0。于是f(d)=g(d)。n源s的评价函数f(s)=0。n评价函数的下界为0;上界初始时为,以后不断用取得的更短路径的长度来替
5、代。第6页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析7分支限界法求最短路径举例12543102050100301060赋权图G初始时,将源1,0,0放入Open,Closed为空。Open表1,0,0Closed表取出1,0,0放入Closed;生成其后继2,10,1、4,30,1和5,100,1,并依序放入Open。1,0,05,100,14,30,12,10,1取出2,10,1放入Closed;生成其后继3,60,2,并依序插入Open。2,10,13,60,24,30,1取出4,30,1放入Closed;生成其后继3,50,4和5,90,4,修订Open中
6、已有的两个结点并依序排列。4,30,15,90,43,50,4取出3,50,4放入Closed;生成其后继2,100,3和5,60,3,前者因劣于Closed中的2,10,1而被抛弃,后者修订了Open中的5,90,4。3,50,45,60,3取出5,60,3,因其已经是目标结点,算法成功并终止。依据逆向指针可得最短路径为1435。第7页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析8界限(Bounding)n评价函数f(d)关系着算法的效率乃至成败。n因为在大多数问题中f(d)只是个估计值,所以单靠f(d)是不够的。通常还要设计它的上下界函数U(d)和L(d)。L
7、(d)f(d)U(d)。n所谓分支限界法就是通过评价函数及其上下界函数的计算,将状态空间中不可能产生最佳解的子树剪去,减少搜索的范围,提高效率。因而更准确的称呼应是“界限剪支法”第8页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析9用分支限界法求TSPnTSP是求排列的问题,不是仅找一条路径而已。因而需要对分支限界法的一般算法作些修改:n(1)待扩展的结点如果在本路径上已经出现,则不再扩展,但若是在其他路径上出现过,则仍需要扩展。n(2)新结点,无论其优劣,既不影响其它路径上的结点,也不受其它路径上的结点的影响。n(3)依据上界函数决定结点是否可以剪去。第9页,共2
8、6页,编辑于2022年,星期三2023/1/25计算机算法设计与分析10分支限界法求排列n计算初始结点s的f(s);s,f(s),nil放入Open;nwhile(Open)n 从Open中取出p,f(p),L;/L是路径已有结点n 若f(p)U,则抛弃该路径;n 若p是目标,则考虑修改上界函数值;否则n 将p,f(p),L放入Closed;n 在该路径上扩展结点p;对每个后继dn 计算f(d);n 若f(d)U,则L=L p;n 将d,f(d),L依序放入Open。n 第10页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析11分支限界法求TSP举例n设有向图G=(
9、V,E)的边的代价矩阵为C=cij。若不存在有向边E,则定义cij=且规定cii=。不失一般性,设周游路线均以顶点1为起点。左下为一个有向图G的代价矩阵C。25 40 31 27 5 17 30 2519 15 6 1 9 50 24 622 8 7 10 n评价函数f(d)为1到d的代价减去已经过的边数。n初始时f(1)=0;nf(d)=f(p)+cpd 1,这里p是d的前驱。第11页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析12分支限界法求TSP的搜索 25 40 31 27 5 17 30 2519 15 6 1 9 50 24 622 8 7 10 10
10、2243394305262340453548523333243542793535453246437234946242843584286找到了第一条周游路线153421,其长度为95。这不是最短周游路线,需要修改上界后继续搜索。第12页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析13归约矩阵以及约数n前面的搜索的效率不高,几乎要搜索全部的状态空间。其原因是评价函数以及上下界的估计太低。为了设计求解TSP问题的更好的评价函数,先定义其代价矩阵的归约矩阵和约数。n给定代价矩阵C,从C的任何行i(或列i)的各元素中减去此行(或此列)的最小元素的值r(i)(或r(i),称为
11、对i行(或i列)的归约。将C的各行和各列都归约后的矩阵称为C的归约矩阵。和数r=in r(i)+in r(i)称为C的约数。第13页,共26页,编辑于2022年,星期三2023/1/25计算机算法设计与分析14例子中的归约矩阵和约数n计算前面例子中的归约矩阵及其约数如下:25 40 31 27 5 17 30 2519 15 6 1 9 50 24 622 8 7 10 先做行归约:r(1)=25 0 15 6 2r(2)=5 0 12 25 20r(3)=118 14 5 0r(4)=6 3 44 21 0r(5)=715 1 0 3 再做列归约:r(1)=r(2)=r(3)=r(5)=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 分支 界限 PPT 讲稿
限制150内