我使用网络加权图来模拟运输网络。我试图根据加权边的总和找到最短路径。我已经使用Dijkstra路径来找到这条路径。当加权边缘存在平局时,我的问题就出现了。当发生这种情况时,我总是希望选择绑定的路径集,即具有最少边数的路径。 Dijkstra路径似乎没有这样做。
有没有办法确保我可以从一组路径中选择边缘数最少的路径,这些路径与加权边缘的总和相关联?
答案 0 :(得分:0)
不使用浮点作为权重,而是使用元组(weight, number_of_edges)
成对添加。使用这些新重量的最低重量路径将具有最低权重,并且在平局的情况下,是最短路径。
要定义这些权重,我会将它们作为tuple
的子类,并重新定义__add__
。然后,您应该能够使用现有代码。