Pesquisa · Mapa mental

Algoritmo de Edmonds-Karp

O Algoritmo de Edmonds-Karp é uma abordagem eficiente para resolver o problema de fluxo máximo em redes. Ele se baseia no método geral de Ford-Fulkerson, mas se destaca por sempre escolher o caminho de menor comprimento para aumentar o fluxo em cada etapa. Essa estratégia garante que o algoritmo sempre termine. Geralmente, a busca pelo caminho mais curto é feita usando uma busca em largura (BFS), que tem uma complexidade de tempo de O(VE²). Embora seja mais lento que outros métodos como o algoritmo de Dinic (O(V²E)), o Edmonds-Karp pode ser mais rápido em grafos esparsos. O algoritmo foi publicado inicialmente por Dinic em 1970 e, de forma independente, por Edmonds e Karp em 1972.

Fonte: Wikipédia (pt)Texto didático por IAAtualizado em 31/07/2026

Pontos-chave

  • Edmonds-Karp resolve o problema de fluxo máximo em redes.
  • Utiliza o caminho de aumento mais curto em cada iteração.
  • A busca em largura (BFS) encontra o caminho mais curto.
  • Tem complexidade de tempo O(VE²), ideal para grafos esparsos.
  • Publicado por Dinic (1970) e Edmonds & Karp (1972).
01

O Algoritmo

Este algoritmo é uma variação do Algoritmo de Ford-Fulkerson. A principal diferença reside na forma como o caminho de aumento de fluxo é selecionado: o Edmonds-Karp sempre busca o caminho mais curto que ainda possui capacidade disponível.

02

Exemplo Prático

Considere uma rede com sete nós e capacidades definidas. A notação 'f/c' em cada arco representa o fluxo atual (f) e a capacidade total (c). A capacidade residual de um arco (u, v) é calculada como a capacidade total menos o fluxo já utilizado: c_f(u, v) = c(u, v) - f(u, v). Se o fluxo em um arco for negativo, ele contribui para a capacidade residual. Por exemplo, no caminho A->D->E->G, o fluxo mínimo é min(3-0, 2-0, 1-0) = 1. Em outro caminho, A->D->F->G, o fluxo mínimo é min(3-1, 6-0, 9-0) = 2.

Vídeos recomendados

Fontes consultadas

Continue pesquisando