搜索求解(一)——启发式算法

搜索求解(一)

    • 基于本问题解释几个定义:
    • 算法一:贪婪优先算法( Greedy best-first search )
    • 算法二:A* 算法

基于 慕课->浙江大学 -> 人工智能:模型与算法 -> 第二章 搜索求解

**搜索指的是:**从海量信息源中,利用约束条件及额外信息来求出问题所对应的答案
搜索求解(一)——启发式算法_第1张图片
一、启发式算法(个人感觉,学过数据结构来看这个会更简单)
以搜寻最短路径问题为例
搜索求解(一)——启发式算法_第2张图片
问题:求 A->O 的一条最短路径
辅助信息为:
搜索求解(一)——启发式算法_第3张图片

基于本问题解释几个定义:

1.状态:求 A->0 的一条最短路径 此为初始状态
2.动作:从 A 走到 B
3.状态转移:走到 B 此时的状态
4.路径: A->O 所能走的路
5.目标测试:当前求解状态,是否拿到最优

启发式算法又称有信息搜索,需要有与所求问题相关的辅助信息

评价函数 f(n) 用于选择后续节点
启发函数h(n) 从当前节点与目标节点所形成路径的最小值

算法一:贪婪优先算法( Greedy best-first search )

其评价函数 = 启发函数 [ f(n) = h(n) ]

过程如图:

搜索求解(一)——启发式算法_第4张图片
搜索求解(一)——启发式算法_第5张图片

搜索求解(一)——启发式算法_第6张图片
不足之处:
1) 不完备,可能随着一条路走到头,不回来做其他尝试, 不一定是最优的
2)时间复杂度与空间复杂度为
  O ( b m ) \ O(b^{m})  O(bm)

算法二:A* 算法

搜索求解(一)——启发式算法_第7张图片
要求:h(n)——可容的(不会因过高的估计从节点n到目标节点之间的实际开销代价,即 <= 实际开销)、单调的

过程如图:
在这里插入图片描述

搜索求解(一)——启发式算法_第8张图片

搜索求解(一)——启发式算法_第9张图片
搜索求解(一)——启发式算法_第10张图片
搜索求解(一)——启发式算法_第11张图片
搜索求解(一)——启发式算法_第12张图片
理论部分完成,相应代码待续。

你可能感兴趣的:(智能算法,搜索求解,人工智能,算法)