搜索—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*算法实现