![4b8a4b31c396caa044d950d2158e0cce.png](https://img-blog.csdnimg.cn/img_convert/4b8a4b31c396caa044d950d2158e0cce.png)
2020年5月7日。距离算法考试仅剩两天。这次期末考试,软件学院的要求是指考相关概念,所以本篇文章只针对概念进行讲解。
一、知识归纳
1.算法思想
(1) 类似于回溯法,在问题的解空间树上搜索问题的解
(2) 搜索策略
①广度优先(BFS)
- 队列式(FIFO)分支限界法
- 栈式(LIFO)分支限界法
②最小代价(LC, 最大效益)优先
- LC分支限界法
(3) 按照BFS的原则,一个活结点R成为E-结点 (扩展结点)后,算法将
- 依次将R的全部孩子结点逐一加入活结点表
- R自身成为死结点
- 从新的活结点表中选一个活结点作为扩展结点
以广度优先或以最小耗费方式搜索问题的解。
2.和回溯法的异同
相同点:
- 都是一种在问题的解空间树T中搜索问题解的算法
不同点:
- ① 求解目标不同;
- ② 搜索方式不同;
- ③ 对扩展结点的扩展方式不同;
- ④ 存储空间的要求不同。
3.分支限界法的步骤
① 对解进行编码
- 针对所给问题,定义问题的解空间
② 按树或图组织解
- 确定易于搜索的解空间结构
③ 搜索解空间
- ✧ 保证系统式搜索
- 广度优先
- 最小耗费(最大收益)优先
- ✧ 辅助以跳跃式搜索,进行剪枝以避免无效搜索
- 约束函数
- 限界函数
注:深度优先是使用回溯法思想的。
4.分支限界法的搜索策略
在E-结点处,先生成其所有的儿子结点(分支),然后再从当前的活结点表中选择下一个E-结点。
为了有效地选择下一扩展结点,加速搜索的进程,在每一个活结点处,计算一个函数值(限 界),并根据函数值,从当前活结点表中选择一个最有利的结点作为E-结点,使搜索朝着解 空间上有最优解的分支推进,以便尽快地找出一个最优解。
5.队列式(FIFO)分支限界法
从活结点表中选出下一个E-结点时的策略
队列中的最先入队的结点优先被选择
6.LC(最小代价)分支限界法
选取结点的原则是“结点优先级高优先”
☞采用优先队列作为活结点表
✧ 优先队列和队列一样吗?
二、考点归纳
1.优先队列式分支限界法选取扩展结点的原则是 结点的优先级 。
2.分支界限法的搜索方式:广度优先,最小耗费优先,最大效益优先。
深度优先是回溯法范畴的。
3.状态空间树中每个结点对应着一个候选解,每个叶子结点对应着一个可行解 (x)
4.解决0/1背包问题可以使用动态规划、回溯法和分支限界法,其中不需要排序的是 动态规划法 ,需要排序的是 回溯法 和 分支限界法 。
5.以广度优先或以最小耗费方式搜索问题解的算法称为 分支限界法。
有待完善,请关注更新!
![7893b969bce0ed2893265aff5306acda.png](https://img-blog.csdnimg.cn/img_convert/7893b969bce0ed2893265aff5306acda.png)