Python:最短加权路径和最少边数

时间:2017-02-03 16:51:38

标签: python algorithm graph

我使用网络加权图来模拟运输网络。我试图根据加权边的总和找到最短路径。我已经使用Dijkstra路径来找到这条路径。当加权边缘存在平局时,我的问题就出现了。当发生这种情况时,我总是希望选择绑定的路径集,即具有最少边数的路径。 Dijkstra路径似乎没有这样做。

有没有办法确保我可以从一组路径中选择边缘数最少的路径,这些路径与加权边缘的总和相关联?

1 个答案:

答案 0 :(得分:0)

不使用浮点作为权重,而是使用元组(weight, number_of_edges)成对添加。使用这些新重量的最低重量路径将具有最低权重,并且在平局的情况下,是最短路径。

要定义这些权重,我会将它们作为tuple的子类,并重新定义__add__。然后,您应该能够使用现有代码。