ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

每天进步一点点之(分支限界法)-----分支限界法与单源最短路径问题(四)

2019-08-10 21:36:25  阅读:229  来源: 互联网

标签:优先 扩展 结点 单源 搜索 限界 分支


转自连接------风仲达------https://blog.csdn.net/liufeng_king/article/details/8900872
分支限界法描述:
(1)采用广度优先产生状态空间树的结点,并使用剪枝函数的方法称为分支界限法。
所谓分支是采用广度优先的策略,依次生成扩展结点的所有分支。
所谓的“限界”是在结点扩展的过程中计算结点的上界或下界,边搜索边剪掉搜索树的某些分支,从而提高搜索效率。
(2)原理:
按照广度优先的原则,一个活结点一旦称为扩展结点,算法将依次生成它的全部孩子结点,将那些导致不可行解或导致非最优解的儿子舍弃,其余儿子加入活结点表单中。然后,从活结点表中取出一个结点作为当前的扩展结点。重复上述结点扩展过程,直至找到问题的解或判定无解为止。
(3)分支限界法与回溯法
1)求解目标:回溯法的求解目标是找出解空间中满足约束条件的所有解,而分支界限法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。
2)搜索方式的不同
回溯法以深度优先的方式搜索解空间,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。
(4)常见的分支限界法
1)FIFO分支限界法(队列式分支限界法)
基本思想:按照队列先进先出原则选取下一个活结点为扩展结点
搜索策略:一开始,根结点是唯一的活结点,根结点入队。对当前的扩展结点,先从左到右的产生它的所有儿子,用约束条件检查,把所有满足约束条件的儿子都加入到活结点队列中。再从活结点表中取出队首结点(队中最先进来的结点)为当前扩展结点。。。。,直到找到一个解或活结点队列为空为止。
2)LC分支限界法(优先队列式分支限界法)
基本思想:为了加速搜索的进程,因该采用有效的方式选择活结点进行扩展。按照优先队列中规定的优先级选取优先级最高的接点成为当前的扩展结点。
(5)单源最短路径问题
问题描述
在有向图G中,每一边都有一个非负边权。要求图G的从源顶点s到目标顶点t之间的最短路径
算法设计
算法从图G的源顶点s和空优先队列开始。结点s被扩展后,它的儿子结点依次被插入到堆中。此后,算法从堆中选取具有最小当前路长的结点作为当前扩展结点,并依次检查与当前扩展结点相邻的所有顶点。
**
具有最小当前路长的结点是指在达到某个结点的所有从源结点的出发的所有路径的最小值,此时只有在最短路径上的这个结点被当作活结点得以继续展开,而不是活结点得结点则停止。但是在没有扩展到出现相同结点之时,就需要继续扩展下u去
***********重点分析要牢记

在算法扩展结点的过程中,一旦发现一个结点的下界不小于当前找到的最短路长,则算法剪去以该结点为根的子树。

标签:优先,扩展,结点,单源,搜索,限界,分支
来源: https://blog.csdn.net/oooooooooooooookjk/article/details/99109084

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有