我应该使用哪种路径寻找算法?

我正在开发一款游戏,其中包括几个 AI 尝试通过跟随最短路径 (zombie) 来到达最近的目标。这是一个 3D 游戏环境,我以前用过 Dijkstra 算法和节点来实现,但是我觉得这非常低效。有更好的方法吗?非常感谢任何建议。我认为这并不重要,但我将使用 Lua 编写。

点赞
用户572670
用户572670

如果你有目标位置的(启发式)距离信息,你可以使用 A* 算法。A* 实际上是一个有启发函数的 Dijkstra 算法,当使用可接受的启发式函数时,它既是完整的(即总能找到一条路径),又是最优的(即找到最短路径)。

另一个选择是使用 BFS 或双向 BFS(如果只有一个目标位置),它们也能找到最短路径,比 Dijkstra 算法更高效,且无需启发式函数。然而,它们只适用于无权图。

此线程 提供了一些关于双向搜索的信息。虽然问题不同,但是同样的原则适用。


(1) 完整的:总是能找到一条路径,如果有的话。

(2) 最优的:找到最短路径。

2014-02-17 18:11:02
用户204011
用户204011

如果你使用像 Jumper 这样的寻路库,你就可以轻松地尝试所有最知名的算法,并选择最适合你的用例的算法。

2014-02-17 21:12:13