4
查找網絡的邊緣連接我想找到邊緣連接(即邊緣的最小數量,以除去斷開的曲線圖),使用最大流量算法(愛德蒙卡普/福特 - 富爾克森算法的無向圖的),通過使用最大流量算法
我知道我可以通過找到的曲線圖的每一個的兩個節點之間的最小的最大流量完成這個任務,但是這將導致O(| V |^2)數流的網絡,
int Edge-Connectivity(Graph G){
int min = infinite;
for (Vertex u: G.V){
for (Vertex v: G.V){
if (u != v){
//create directed graph Guv (a graph with directed edges and source u and sink v)
//run Edmonds-Karp algorithm to find the maximum flow |f*|
if (min > |f*|)
min = |f*|;
}
}
}
return min;
}
但我想用| V | (僅運行O(| V |)次的最大流量算法)而不是O(| V |^2)
最大流量檢測算法在這裏不受關注,我只想知道是否必須爲每兩個節點計算最大流量(這似乎不是必要的,因爲圖形是無向的!) – 2013-05-05 12:57:28
By tmyklebu's答案(第一段),你不需要計算每兩個節點。修復一個節點v,迭代所有可能的w!= v並計算最大流量就足夠了。 https://en.wikipedia.org/wiki/K-edge-connected_graph#Computational_aspects – 2013-05-06 11:49:40
@ Yu-HanLyu:是的;這正是我所說的。 – tmyklebu 2013-05-06 21:22:21