人工智能基础 搜索问题(二) 启发搜索
前言
应用AI处理大型问题通常不适合通过盲目搜索算法来求解
原因如下
存在的问题
**组合爆炸: **
为了减少搜索的路径和状态
启发法
比如你想去一个目的地,地方相对较远,会有很多选择
就会做出如下考虑
最后根据我们的经验做出选择
启发
目的
启发式策略 井字棋游戏
我们应该如何摆放棋子
这个时候盲目搜索显然不合适,所以使用启发式
得出每种情况下赢得几率
然后沿着最有利的方向搜索
启发式搜索
评估函数
h(n)就被称为启发函数
知情搜索 (第一部分) 找到任何解
爬山法
基本爬山法
如爬山者只有一个高度计
缺点 依赖于启发式估计值,只顾及剩余距离,忽略了实际距离
最陡爬坡法
他将评估所有的节点
而之情的基本爬山法在遇到E的时候就已经选择节点E了,而最陡爬坡法还会继续评估F
伪代码
爬山法的问题
可能在局部最大值中卡主,也就是只找到了局部最优解
爬山法的补救措施
最佳优先搜索算法
它可以通过回溯回到Open,效率取决于启发式测度
知情搜索 (第二部分) 找到最优解
之前的算法只考虑到了h(n),也就是向后的距离,而我们为了找到最优解,则需要考虑g(n)也就是向后的距离
分支定界法
只计算已经走过部分的距离
伪代码如下
低估值的分支定界法
动态规划的分支定界法
A*算法
知情搜索 (第三部分) 高级搜索算法
约束满足搜索
与/或树
双向搜索