发布网友 发布时间:2024-10-22 21:20
共1个回答
热心网友 时间:2024-11-24 13:52
我们假设某人需要从 A 点移动到 B 点,但两点间被障碍物隔开。图 1 展示了这个情况,绿色代表 A 点,红色代表 B 点,中间蓝色是障碍物。为了简化搜索区域,我们将其划分成正方形格子。通过计算从 A 到 B 需要经过哪些方格,可以找到路径。到达目的地时,人物从一个方格中心移动到另一个方格中心。
方格中心称为节点。在讨论 A* 算法时,人们经常提到节点而非方格,因为可以将搜索区域划分为任意形状,如六边形、矩形或任意多边形。节点可以位于多边形中心或边上。使用节点系统是因为它更简单。
搜索过程如下:
图 2 展示了这个过程。深绿色方格为起点,外框为亮蓝色,加入关闭列表。与之相邻的黑色方格为待检查的,外框为亮绿色,每个方格都有灰色指针指向父节点 A。
继续搜索过程包括:
计算 F、G 和 H 值:
选择 G、H 和 F 值最小的方格。不断重复直至终点加入开放列表,路径已找到。
确定实际路径:从终点开始,沿父节点移动至起点。
A* 算法总结:
三、代码演示和仿真结果