求目标路径的树搜索与图搜索算法

本文介绍了A*搜索算法在树搜索和图搜索中的应用,强调了两者对待节点重复访问的不同策略。在树搜索中,节点可以被重复访问,而在图搜索中则不允许。此外,文章讨论了启发函数的一致性和可采纳性,指出只有当启发函数不会高估目标代价时,A*搜索结合树搜索才是最优的。
摘要由CSDN通过智能技术生成


对一个图(有向图),要找到从起点到终点的一条路径,既可以用图搜索算法,也可以用树搜索算法。

图搜索算法 不允许 重复访问结点。

树搜索算法允许重复访问结点。

A* 搜索为例,启发函数为 f ( n ) = g ( n ) + h ( n ) f(n)=g(n)+h(n) f(n)=g(n)+h(n) g ( n ) g(n) g(n) 是从起点到当前结点走过的路径的代价, h ( n ) h(n) h(n) 是当前节点到目标的估计代价。每次 A* 搜索都会搜拓展节点中 f f f 最小的点。

例子
在这里插入图片描述
在这里插入图片描述

1. A* 树搜索

在这里插入图片描述
Fringe 中包含了当前拓展出的所有可以走但尚未访问的路径。

需要注意的是第四行选择的 S-B 这一条路径,它可以拓展出 S-B-D 这一条路径放入 Fringe ,树搜索允许重复访问结点。

2. A* 图搜索

在这里插入图片描述

要注意的是第四行选择的 S-B 这一条路径,D 已经在之前访问过了并加入到了 Closed List 中,所以 S-B 只能拓展出 S-B-E 这一条路径。

3. 一致性与可采纳性

针对启发函数 f f f 而言,
如果 f ( n ) f(n) f(n) 可采纳,那么要满足:
对于每个结点 n n n f ( n ) f(n) f(n) < h ∗ ( n ) h^*(n) h(n)。其中 h ∗ ( n ) h^*(n) h(n) 是到达目标节点的真实代价。
这意味着可采纳的启发函数绝对不会高估到达目标节点的代价,因此它是最优的。

如果启发函数是可采纳的,那么A*使用树搜索是最优的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值