我正在寻找一种路径查找算法,用于控制2D网格中一个实体的AI,该实体需要从A点找到到B点的路径。路径不需要是最短的,但计算速度必须非常快。网格是静态的(从不改变),并且一些网格单元被障碍物占据。
我目前使用的是A*算法,但对于我的需求来说它太慢了,因为它总是试图计算最快的路径。主要的性能问题出现在路径不存在的情况下,此时A*会尝试探索过多的单元格。
是否有其他算法可以在我不需要最短路径的情况下,比A*更快地找到路径?
谢谢,
@某人
回答:
假设你的网格是静态的且不会改变。你可以在构建网格后一次性计算图的连通分量。
然后你可以轻松检查源顶点和目标顶点是否在同一个连通分量内。如果是,则执行A*算法;如果不是,则不需要执行,因为不同连通分量之间不可能有路径。
你可以使用BFS或DFS来获取图的连通分量。