您是否需要将曼哈顿距离用于 A* 路径查找算法?

Do you need to use Manhattan distance for A* path finding algorithms?

我正在使用来自 sebastian lague (yt) 的视频研究 A* 路径查找算法。但是我不知道我是否必须使用曼哈顿距离或者我是否可以使用正常的毕达哥拉斯定理来测量距离。有人知道吗?

我正在使用 c#,unity 如果相关的话

假设允许您进行对角线移动,然后使用毕达哥拉斯定理来测量对角线距离,那么移动 horizontally/vertically 的成本为 1,对角线移动的成本为 1.4。如果您使用曼哈顿距离来衡量对角线移动,您将永远不会对角线移动,因为每个对角线移动的成本将是水平和垂直移动的总和。

如果您不允许进行对角线移动并且您正在编写自己的 A* 算法(正如我假设您在该教程中所做的那样),那么我认为最好不要考虑对角线移动有效而不是人为地给它们分配更高的权重(比如使用曼哈顿距离)。