如何在 NetworkX 中使用 add_path 创建路径?

How to create a path using add_path in NetworkX?

我使用函数 g.add_edge(node1, node2) 为我的地块列表中的每个地块(parcel1、parcel2、parcel3)创建了一条边,我想使用这些添加的边创建一条路径并存储每个包裹的这条路径。我尝试使用 add_path 但是当我打印路径时,我得到 None.

这是代码:

#To add an expensive edge for each parcel:
for p, plrow in parcellist.iterrows():
    g.add_edge(plrow[0], plrow[8], Node1_reference= plrow[0], Node2_reference= plrow[8], OriginT= plrow[2], OriginX= plrow[3] , Cost = 10000, Capacity= 10000)
    print(plrow[0], plrow[8])
    print("path", nx.add_path(g, [plrow[0], plrow[8]]))

这是输出:

nx.add_path 的文档:

add_path(G_to_add_to, nodes_for_path, **attr)[source]
Add a path to the Graph G_to_add_to.

路径添加到图中,函数returns None.

我认为更适合您的用例的函数是 shortest_path:

# dummy graph and parcels
G = nx.from_numpy_array(np.random.rand(10,10)>.5)
dummy_parcels = [np.random.choice(G.nodes, size=2)]


for source, target in dummy_parcels:
    print('path', nx.shortest_path(G, source, target))