A*搜索算法是机器人,游戏开发,导航系统等各种应用中常用的路径查找和图轨法,它结合了统一成本搜索和贪婪最先搜索的特征,使得它能高效地在加权图中找到最短的路径,本指南提供了以实际实例执行A*的一步步方法.

理解A* 算法

A*算法通过考虑达到一个节点的成本和从该节点达到目标的估计成本,找到从起始节点到目标节点的最短路径,它使用优先排队来探索估计总成本最低的节点,即实际成本与热力估计的和.

执行A* 逐步

遵循这些步骤,以类似 Python 的编程语言执行 A* :

  • 初始化打开列表, 初始化为空 。
  • 循环到打开列表为空 :
  • 从开放列表中删除费用总额最低的节点 。
  • 如果这个节点是目标,则重建路径并终止.
  • 否则,产生其邻居,并评估每个邻居:
  • 计算到达每个邻居的成本,并使用一个休眠函数估计离目标剩下的距离.
  • 如果邻居不在开放或关闭的列表中,则将其加到开放的列表中,并计入其总成本.
  • 将当前节点移动到关闭列表中 。

实例

将每个单元格代表一个节点的网格视为一个网格,移动成本是统一的。所使用的恒温是曼哈顿距离。执行A* 涉及为网格、成本和父节点建立数据结构。在执行过程中,算法探索了网格,在恒温的基础上将更接近目标的各个节点排列为优先,最终高效地找到最短的路径。

内 容 提 要

执行A*需要了解其核心组成部分:开放列表、封闭列表、成本计算和恒温函数。 通过遵循一步步的进程并将其应用于实际实例,开发者可以有效地将A*纳入其应用,以找到最佳路径解决方案。