[人工智能AI]之搜索-A*算法
1. 概述
这是一种经典的寻路算法;
简而言之,重点在于估算距离。


问题描述:
假设起点a, 终点b, 当前结点为n
F(n) = G(n) + H(n)
G(n)表示起点到n实际距离;
H(n)表示n到终点预估距离;
在所有结点中选择F值最小的可行节点走下去即可。
缺陷:
- 显然,A*算法的效率很大程度取决于H(n)的计算,即对未来距离的预估;
- 未完待续…
2. A*算法细节
2.1 对于H(n)估算函数的选择
曼哈顿距离:横纵坐标差之和 (推荐使用)
欧氏距离:即两点间的实际距离
ps: 这两种估算方式,会导致无法避开障碍物。
2.2 A*算法实现
"""
A*寻路算法, 评估函数采用曼哈顿距离
"""
path = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 3, 0, 0, 0, 0, 0],
[0, 0, 0, 3, 0, 0, 2, 0, 0],
[0, 0, 0, 3, 0, 0, 0, 0, 0],
[0, 4, 0, 3, 0, 0, 0, 0,


7542

被折叠的 条评论
为什么被折叠?



