Encontrando conectividade de borda de uma rede usando o algoritmo Maximum Flow
Eu quero encontrar a conectividade de borda (ou seja, o número mínimo de arestas a serem removidas para desconectar um gráfico) de um gráfico não direcionado usando algoritmos de fluxo máximo (algoritmos de Edmond Karp / Ford-Fulkerson),
Eu sei que posso realizar essa tarefa encontrando o fluxo máximo mínimo entre cada dois nós de um gráfico, mas isso resultaria em O (| V | ^ 2) número de redes de fluxo,
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;
}
Mas eu gostaria de fazer isso com | V | redes de fluxo (executando o algoritmo de fluxo máximo somente por O (| V |) vezes) em vez de O (| V | ^ 2) deles