搜索算法
观看公开课人工智能小记:
一 显隐约束
隐约束指对能否得到问题的可行解或最优解做出的约束。如果不满足隐约束,
就说明得不到问题的可行解或最优解,那就没必要再沿着该结点的分支进行搜索了,
相当于把这个分支剪掉了
显约束可以控制解空间大小,隐约束是在搜索解空间过程中判定可行解或最优解的。
二 算法总结
- 回溯法
https://blog.youkuaiyun.com/wwlcsdn000/article/details/78603886
回溯法是一种选优搜索法,按照选优条件深度优先搜索,以达到目标。当搜索到某一步
时,发现原先选择并不是最优或达不到目标,就退回一步重新选择,这种走不通就退回再走
的技术称为回溯法.
回溯法是一种“ 能进则进,进不了则换,换不了则退”的搜索方法。
- 回溯法解题秘籍
(1)定义解空间 确定解空间包括解的组织形式和显约束(范围限定)
(2)确定解空间的组织结构 通常用解空间树形象的表达(只是辅助理解并不是真的树)
(3)搜索解空间 按照深度优先搜索,根据限制条件,搜索问题的解
- 分支限界法的算法思想
*从根开始,常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。
首先将根结点加入活结点表(用于存放活结点的数据结构)
*接着从活结点表中取出根结点,使其成为当前扩展结点,一次性生成其所有孩子结点,判断孩子结点是舍 弃还是保留,舍弃那些导致不可行解或导致非最优解的孩子结点,其余的被保留在活结点表中。
*再从活结点表中取出一个活结点作为当前扩展结点,重复上述扩展过程,直到找到所需的解或活结点表为
空时为止。由此可见,每一个活结点最多只有一次机会成为扩展结点。
*活结点表的实现通常有两种形式:一是普通的队列,即先进先出队列;一种是优先级队
列,按照某种优先级决定哪个结点为当前扩展结点 - 分支限界法算法步骤
(1)定义解空间 确定解空间包括解的组织形式和显约束(范围限定)
(2)确定解空间的组织结构 通常用解空间树形象的表达(只是辅助理解并不是真的树)
(3)搜索解空间 按照广度优先搜索,根据限制条件,搜索问题的解 - 分支限界法解题秘籍
(1)定义解空间 确定解空间包括解的组织形式和显约束(范围限定)
(2)确定解空间的组织结构 通常用解空间树形象的表达(只是辅助理解并不是真的树)
(3)搜索解空间 按照深度优先搜索,根据限制条件,搜索问题的解
- 扩展列表:
- 可容许启发式:
- 一致启发式: