Table of Contents
A*搜索算法是机器人,游戏开发,导航系统等各种应用中常用的路径查找和图轨法,它结合了统一成本搜索和贪婪最先搜索的特征,使得它能高效地在加权图中找到最短的路径,本指南提供了以实际实例执行A*的一步步方法.
理解A* 算法
A*算法通过考虑达到一个节点的成本和从该节点达到目标的估计成本,找到从起始节点到目标节点的最短路径,它使用优先排队来探索估计总成本最低的节点,即实际成本与热力估计的和.
执行A* 逐步
遵循这些步骤,以类似 Python 的编程语言执行 A* :
- 初始化打开列表, 初始化为空 。
- 循环到打开列表为空 :
- 从开放列表中删除费用总额最低的节点 。
- 如果这个节点是目标,则重建路径并终止.
- 否则,产生其邻居,并评估每个邻居:
- 计算到达每个邻居的成本,并使用一个休眠函数估计离目标剩下的距离.
- 如果邻居不在开放或关闭的列表中,则将其加到开放的列表中,并计入其总成本.
- 将当前节点移动到关闭列表中 。
实例
将每个单元格代表一个节点的网格视为一个网格,移动成本是统一的。所使用的恒温是曼哈顿距离。执行A* 涉及为网格、成本和父节点建立数据结构。在执行过程中,算法探索了网格,在恒温的基础上将更接近目标的各个节点排列为优先,最终高效地找到最短的路径。
内 容 提 要
执行A*需要了解其核心组成部分:开放列表、封闭列表、成本计算和恒温函数。 通过遵循一步步的进程并将其应用于实际实例,开发者可以有效地将A*纳入其应用,以找到最佳路径解决方案。