如何在 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))
我使用函数 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))