2016-11-21 53 views
0

假設存在一個網絡有多條邊,對於任意一對頂點(u,v),圖中包含了從u到v和從v到u的幾個有向邊,每個有邊自己的能力和重量。如何將多圖解簡化爲簡單有向圖

如何將這個多圖減少爲一個簡單的有向圖,在u和v之間只有一條邊?

注意:不確定這種方法是否正確,我將u和v之間的各個邊的能力和權重相加,並將它們合併到一個從u到v的超邊,以及從v到u的一個邊。但是,我如何進一步將這兩者合併爲u和v之間的一條邊,以及它指向哪個方向?

+0

這將取決於您正在進行此轉換的目的。 –

+0

減少將用於最小成本流量問題 –

回答

0

下面的代碼應工作: G = nx.Graph(G)重複中#delete邊緣 G.remove_edges_from(G.selfloop_edges())#DELETE自循環 移除= [節點node,度G.度數()。items()如果度數爲< 1] G.remove_nodes_from(刪除) #這些最後兩條代碼行刪除了度數爲0的節點,而不是 #如果只需要將多圖轉換爲簡單圖