Нахождение граничного подключения сети с использованием алгоритма Maximum Flow
Я хочу найти связность ребер (то есть минимальное количество ребер, которые нужно удалить, чтобы отключить граф) неориентированного графа, используя алгоритмы максимального потока (алгоритмы Эдмонда Карпа / Форда-Фулкерсона),
Я знаю, что могу выполнить эту задачу, найдя минимальный максимальный поток между каждыми двумя узлами графа, но это приведет к 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) из них