通过强连接组件寻找最佳路径

时间:2013-10-26 19:00:44

标签: cycle directed-graph

我有一个强连接的有向图,每个节点都有一些价格(加或负)。我想找到从节点A到节点B的最佳(最高分)路径。我的解决方案是某种残酷的力量,因此找到该路径需要很长时间。对于这个或任何想法的任何算法我该怎么做?

1 个答案:

答案 0 :(得分:0)

您是否尝试过A* algorithm

这是一种相当流行的寻路算法。 算法本身并不难实现,但有很多在线实现。

Dijkstra算法是A *的一个特例(其中启发函数h(x)= 0)。

还有其他算法可以胜过它,但它们通常需要图形预处理。如果问题不复杂并且您正在寻找快速解决方案,请尝试一下。

修改

对于包含负边的图,有Bellman–Ford算法。然而,检测负循环是以性能为代价的(比A *差)。但它仍然可能比你目前使用的更好。

编辑2:

用户@templatetypedef是正确的,他说贝尔曼 - 福特算法可能不适用于此。

B-F适用于有负重边的图形。但是,算法在找到负循环时停止。我相信这是一种有用的行为。优化包含负权重循环的图形中的最短路径就像沿着彭罗斯楼梯走下去。

如果有可能达到“减去无穷大成本”的路径,会发生什么情况取决于问题。