您的位置:首页 > 大数据 > 人工智能

人工智能(三)上——通过搜索进行问题求解(有信息搜索策略)

2017-10-13 11:26 1361 查看

一、无信息与有信息搜索

无信息搜索又名盲目搜索:

•在搜索时,只有问题定义信息可用。

•盲目搜索策略仅利用了问题定义中的信息。

有信息搜索:

• 在搜索时,当有策略可以确定一个非目标状态比另一种更好的搜索,称为有信息的搜索。

二、最佳优先搜索

•思想: 使用一个评估函数 f(n)给每个结点估计他们的希望值。 优先扩展最有希望的未扩展结点。

•实现: fringe表中根据希望评估值从大到小排序

•最佳优先搜索策略有:

贪婪最佳优先搜索
A* 搜索

(一)贪婪最佳优先搜索

•评估函数: f(n) = h(n) (heuristic,启发函数) = 估计从结点n到目标的代价

 例如:hSLD(n) = 从结点 n 到 Bucharest的 直线距离

•贪婪最佳优先搜索优先扩展看上去更接近目标的结点(启发式函数评估出来的)

• 完备性? No – 可能陷于死循环当中

• 比如, Iasi  Neamt  Iasi  Neamt 

• 时间? O(bm), 但一个好的启发式函数能带来巨大改善

• 空间? O(bm)

• 最优性? No

(二)A* 搜索

• 思想: 避免扩展代价已经很高的结点。

• 评估函数 f(n) = g(n) + h(n)• g(n) = 到达结点n已经发生的实际代价

 h(n) = 从结点n到目标的代价估计值
f(n) =评估函数,估计从初始结点出发,经过结点n,到目标的路径代价的估计

1.可采纳的启发式函数

• 如果启发式函数h(n)对于任意的结点n都满足 h(n) ≤ h*(n),这里 h*(n)是指从结点n到达目标的真正代价,则称h(n)是可采纳的。

• 定理: 如果h(n)是可采纳的,则 A* 树搜索算法是具有最优性。

4000

• 完备性? Yes

• 时间? 指数级

• 空间? 将所有产生的结点存储在内存中

• 最优性? Yes

(三)A*的改进方法

存储受限制的启发式搜索: 

思想:迭代加深的A*算法,用一个f-cost代替有限制的深度优先中的d作为截断值,进行剪枝。

递归最佳优先搜索(RBFS)

• 尝试模拟标准的最佳优先搜索而只需线性空间。

1. 记录当前节点的祖先可得到的最佳可替换路径的f值。

2. 如果当前的f值超过了这个限制,则递归将转回到替换路径。

3. 向上回溯改变f值到它的孩子的最佳f 值

4. 重复扩展这个上个节点,因为仍有可能存在较优解。

(简单)存储限制的A*

• 当内存满了的时候删除最坏的节点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐