如何删除图中特定路径的所有边(例如两个节点之间的最短路径)?
How can i remove all edges of a specific path(for example the shortest path between two nodes) in a graph?
我想删除网络图中的特定路径,但我不知道该怎么做...
例如,我将两个节点之间的最短路径作为节点列表(从源节点到目标节点)
例如,这是节点 A(源节点)和 D(目标节点)之间包含路径节点的最短路径:
['A','B','C','D']
有人知道如何从图中删除这条路径吗??
我尝试了很多方法来做到这一点,但他们没有工作......
我已经使用 networkx 库
定义了我的图表
您可以先创建要移除的边列表,此处称为 sp
:
sp = []
for i in range(0,len(shortestpath)-1):
sp.append((shortestpath[i],shortestpath[i+1]))
然后使用 G.remove_edge
:
删除它们
for u, v in sp:
G.remove_edge(u, v)
这是带有一个小例子的完整代码:
G = nx.Graph([(0, 1), (0, 3), (1, 2), (2, 3), (3, 4)])
shortestpath = (3, 0, 1)
sp = []
for i in range(0,len(shortestpath)-1):
sp.append((shortestpath[i],shortestpath[i+1]))
for u, v in sp:
G.remove_edge(u, v)
我想删除网络图中的特定路径,但我不知道该怎么做... 例如,我将两个节点之间的最短路径作为节点列表(从源节点到目标节点) 例如,这是节点 A(源节点)和 D(目标节点)之间包含路径节点的最短路径:
['A','B','C','D']
有人知道如何从图中删除这条路径吗?? 我尝试了很多方法来做到这一点,但他们没有工作...... 我已经使用 networkx 库
定义了我的图表您可以先创建要移除的边列表,此处称为 sp
:
sp = []
for i in range(0,len(shortestpath)-1):
sp.append((shortestpath[i],shortestpath[i+1]))
然后使用 G.remove_edge
:
for u, v in sp:
G.remove_edge(u, v)
这是带有一个小例子的完整代码:
G = nx.Graph([(0, 1), (0, 3), (1, 2), (2, 3), (3, 4)])
shortestpath = (3, 0, 1)
sp = []
for i in range(0,len(shortestpath)-1):
sp.append((shortestpath[i],shortestpath[i+1]))
for u, v in sp:
G.remove_edge(u, v)