Dijkstra与A *对于加权图

时间:2013-02-14 02:08:53

标签: algorithm

我正在试图找出使用哪种算法来获得从给定起始节点到目标节点的最低成本路径。

A ----5---- B ---3--- C
|           |
|           /
D ----1-----E ------10------ F

我一直在研究Dijkstra和A *,因为他们都为这样的问题提供了最佳解决方案。我理解它的方式是Dijkstra只是A *,启发式为0.我已经实现了Dijkstra的算法但是想知道是否可以使用A *代替。在如上所述的非常简单的图形中(没有任何其他信息),与Dijkstra相比,A *可以用来提供更好的结果,或者Dijkstra是最优的算法吗?

1 个答案:

答案 0 :(得分:1)

如果您不了解适合图表内容的启发式,那么您必须选择Dijkstra。

A *是为道路地图开发的,对于道路距离,约束适用于直接距离始终短于通过另一个节点。此约束不适用于一般加权图。

如果您不知道图表内容的这种额外约束/启发式,那么您必须使用Dijkstra

进一步请注意,路线图非常庞大,值得使用A *。 如果你的图表不是很大,那么可能甚至不值得考虑是否找到任何启​​发式算法。这种错误的启发式甚至会使事情变得更糟。

所以你可以使用Dijkstra,只有当你遇到性能问题时才能开始考虑寻找启发式算法。