【发布时间】:2020-04-08 03:17:15
【问题描述】:
我试图在定义为的加权图中获得最短路径
import networkx as nx
import matplotlib.pyplot as plt
g = nx.Graph()
g.add_edge(131,673,weight=673)
g.add_edge(131,201,weight=201)
g.add_edge(673,96,weight=96)
g.add_edge(201,96,weight=96)
nx.draw(g,with_labels=True,with_weight=True)
plt.show()
为此我使用
nx.shortest_path(g,source=131,target=96)
预期的答案是 131,201,96,因为对于那条路径,我的权重总和最少。我得到的是 131,673,96。我尝试更改权重,但 shortest_path 显然总是返回 longest 路径。怎么回事?
【问题讨论】:
-
131, 673, 96 它正是最短路径。除非你改变你的体重
-
@Camue 但是 131,673,96 的总和大于 131,201,96 那么它怎么可能是最短路径呢?关于权重的工作原理,我有什么需要了解的吗?两个节点之间的权重越大,它们之间的距离就越远是对的?
标签: python graph networkx shortest-path