java - Dijkstra、广度优先还是塔防 A*?

标签 java path-finding

<分区>

所以我问了一个关于为我的塔防游戏优化我的 A* 的问题,得到了几个答案说我应该首先使用 Dijkstra 或 Breadth 来计算 50 多个敌人的最短距离。

我的问题是

我是使用广度优先还是 Dijkstra? dijkstra 比 A* 快吗? 它和 A* 一样准确吗? 有什么方法可以优化 A* 而不是二进制堆,这样我就可以使用 A* 计算路径而无需学习 dijkstra?

目前平均需要大约 0.003 秒来使用我的 A* 使用二进制堆计算 30* 30 网格上的长路径,但我认为这可能不够快。

最佳答案

DJikstra 具有惰性启发式函数的 A* 的一个单独案例。然后所有问题归结为您是否可以提出合适的启发式函数。如果可以,A* 会表现得更好,这一点毫无疑问。

关于java - Dijkstra、广度优先还是塔防 A*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15176212/

相关文章:

java - hive 旧货服务器挂起

java - 为什么 javax.mail 中的类将系统属性存储在静态字段中?

python - 使用加权顶点计算图中的最短路径

带有步行代理的 'shortest path' 算法

android - 使用坐标系在android屏幕上绘图

javascript - 查找边界坐标内的坐标

java - 关于 web.xml 中的错误页面

java - Hibernate 连接两个表

java - 在 Android 中使用 httpPost 发送数据后,如何检索从 servlet 返回的数据

python - 我的 Dijkstra 算法出了什么问题