Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 我应该使用哪种路径查找算法?_Algorithm_Lua - Fatal编程技术网

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

Algorithm 我应该使用哪种路径查找算法?,algorithm,lua,Algorithm,Lua,我正在做一个游戏,其中包括几个ai试图通过尽可能短的路径(僵尸)到达最近的目标。这是一个3D游戏环境,我以前使用过Dijkstra的算法和节点,但对我来说效率很低。有更好的方法吗?如有任何建议,我们将不胜感激。我认为这无关紧要,但我将与Lua一起写作。如果你有一些关于到目标距离的信息(启发性的),你可以使用。A*基本上是一种知情的dijkstra算法,当使用可容许的启发式函数时,A*是一种完全最优的算法 另一种选择是使用或双向BFS(如果您有单个目标),这也将找到最短路径,比Dijkstra算法

我正在做一个游戏,其中包括几个ai试图通过尽可能短的路径(僵尸)到达最近的目标。这是一个3D游戏环境,我以前使用过Dijkstra的算法和节点,但对我来说效率很低。有更好的方法吗?如有任何建议,我们将不胜感激。我认为这无关紧要,但我将与Lua一起写作。

如果你有一些关于到目标距离的信息(启发性的),你可以使用。A*基本上是一种知情的dijkstra算法,当使用可容许的启发式函数时,A*是一种完全最优的算法

另一种选择是使用或双向BFS(如果您有单个目标),这也将找到最短路径,比Dijkstra算法更有效,并且不需要启发式函数。然而,只有在图形未加权的情况下,这些才起作用。
提供有关双向搜索的一些信息。问题不同,但适用相同的原则


(1) 完成:如果存在路径,则始终查找路径。

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

如果你使用像这样的寻路库,你可以很容易地尝试所有最著名的算法,并选择最适合你的用例的算法。

关闭和关闭投票者:你应该评论和解释问题的错误,否则OP永远不会学会如何提出好的问题。此外,我认为在问题发布后不到2分钟进行近距离投票是一种不好的做法,除了一些罕见的例外,尤其是在没有提供投票原因的情况下。@amit:(没有进行近距离投票/向下投票)看不到近距离投票的原因吗?@NiklasB。我不确定他能不能,他毕竟不能投票。如果它关上的话,他可以。此外,它们太笼统了,一条评论可能会更有帮助。@amit:至少“不清楚你在问什么”我认为任何用户在发布问题之前都应该阅读这些要点,而这些要点是这个问题无法达到的(尽管我同意我们应该更友好,尤其是对新用户:)@amit我不会很快投票来结束这一点,但投票结果不理想的原因可能是缺乏足够的研究工作——简单地在谷歌上搜索路径搜索算法很快就会找到a*算法。