最大フロー アルゴリズム (Edmond Karp / Ford-Fulkerson アルゴリズム) を使用して、無向グラフのエッジ接続 (つまり、グラフを切断するために削除するエッジの最小数) を見つけたいです。
グラフの 2 つのノードごとに最小最大フローを見つけることでこのタスクを達成できることはわかっていますが、これにより 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| ^ 2) の代わりに O(|V|) 回だけ最大フロー アルゴリズムを実行)