我怎样才能比较Dijkstra和A *?

时间:2016-04-27 21:20:19

标签: algorithm dijkstra a-star

我正在开发GPS系统。目的是开发更适合解决问题的算法。我正在使用Dijkstra和A *,现在在我的报告中,我需要围绕它做一些理论并展示哪一个是最好的。

我有一个充满顶点和边缘(街道)的地图,我想知道如何比较两种算法,我可以说明为什么一个比另一个更好以及为什么。

我问这个是因为当我运行Dijkstra时它将获得所有顶点的路径所以它可能是相同的,即使我增加了点之间的路径我想知道哪种方式我觉得这样做是好的测试一个*。有没有办法可以得到一个可比较的术语?

1 个答案:

答案 0 :(得分:1)

明星基本上是Dijkstra的变体。而且一位明星使用广度优先搜索来加速搜索,这将是一种贪婪的方法。

最终成本=移动成本+启发式成本

上述等式用于A星算法。它类似于Dijkstra的算法。所以,你可以将它与速度进行比较。仍然介意当N增加时,使用A Star将不是最好的。因为它在两种情况下选择最佳路径:

  1. 估计的费用总是低于实际费用。
  2. 有足够的内存可供查找并代表它。
  3. 在另一个Stack Overflow问题中解释, Dijkstra& amp;明星