人工智能课程笔记(2)通过搜索进行问题求解 - B

3.5 有信息(启发式)的搜索策略

上一篇博文里简单介绍了不同的无信息搜索策略,这一节来接着介绍有信息搜索策略。
首先我们需要有一个概念,什么是有信息的搜索策略?
ANS:使用问题本身的定义之外的特定知识进行搜索的策略。

3.5.1 贪婪最佳优先搜索(greedy best-first search)
该算法试图扩展离目标最近的结点,可以更快求解。它只采用启发式信息来进行类似深度优先搜索的算法搜索,每一次扩展代价最小的结点。
该算法的搜索代价是最小的,但不是最优的,它在每一步都试图找到离目标最近的点,但也容易限制于这个规则而找不到解,从而导致死循环。因此贪婪最佳优先搜索是不完备的。

3.5.2 A*搜索:缩小总评估代价
【!!!重要!!!】
最佳优先搜索最广为人知的形式成为A*搜索,它对结点的评估结合了g(n)和h(n),其中:
g(n):从开始结点到结点n花费的路径代价
h(n):经过结点n的最小代价解的估计代价
于是从该结点到目标结点所花费的代价可以表示为:f(n) = g(n) + h(n)

保证最优性的条件:可采纳性和一致性
保障该算法的最优性需要两个条件:

  1. 可采纳启发式
    可采纳启发式指它不会过高估计到达目标的代价,即f(n)永远不会超过经过n的解的实际代价。
  2. 一致性
    h(n) <= c(n,a,n’) <= h(n’)
    其中n’为n的任意后继结点,c(n,a,n’)为实际从结点n通过行为a到达结点n’需要的实际代价。
    A算法的最优性:A搜索算法具有如下性质,如果h(n)是可采纳的,那么A*的树搜索版本是最优的;如果h(n)是一致的,那么图搜索的A *算法是最优的。

3.6 启发式函数

八数码问题是最早的启发式搜索问题之一,如下图所示:
在这里插入图片描述

对于八数码问题,有两种常用的启发式函数:
h1:不在位的棋子数,例如上图h1 = 8;
h2:所有棋子到其目标位置的距离和(也称为曼哈顿距离),例如上图h2 = 3 + 1 + 2 + 2 + 2 + 3 + 3 + 2 = 18。

从松弛问题出发设计可采纳的启发式
在描述一个问题时,可能会用许多“条件”,而若我们将其中的一个或两个条件去掉,则可以得到一些“子问题”,这些子问题便被称为“松弛问题”。
还是以上面八数码的问题为例,如果对它的行动描述如下:
棋子可以从方格A移动到方格B,如果A与B水平或数值相邻,而且B是空的。
将上述描述拆分成三个松弛问题:

  • 棋子可以从方格A移动到方格B,如果A和B相邻;
  • 棋子可以从方格A移动到方格B,如果B是空的;
  • 棋子可以从方格A移动到方格B。

3.7 本章小结

  1. 在Agent可以开始搜索解之前,必须对目标和良定义的问题加以形式化。
  2. 一个问题由五个部分组成:初始状态行动集合转移模型描述这些行动的结果目标测试函数路径代价函数
  3. 搜索算法将状态和行动视为原子:不考虑它们可能包含的内部结构。
  4. 一般的TREE-SEARCH算法会考虑所有的可能来寻找解;而GRAPH-SEARCH算法考虑避免冗余路径。
  5. 搜索算法可以从完备性、最优性、时间复杂度和空间复杂度等方面来评价。复杂度依赖于状态空间中的分支因子b和最浅的解的深度d。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值