如何删除图中特定路径的所有边(例如两个节点之间的最短路径)?

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)