Taką ścieżkę znajduje się uruchamiając algorytm przeszukiwania grafu wszerz w sieci residualnej.

algorytm Edmonds-Karp wejście c[u,v] //pojemności krawędzi s,t //źródło i ujście wyjście f[u,v] //maksymalny przepływ // stworzenie sieci residualnej zdefiniuj r[u,v] jako c[u,v] – f[u,v] ścieżka := true dopóki ścieżka wykonaj // znalezienie ścieżki z s do t w sieci residualnej p := BFS(r[],s,t) jeżeli ścieżka nie istnieje ścieżka := false w przeciwnym wypadku // powiększenie przepływu na ścieżce p a := min {r[u,v] : (u,v) należące do p} dla każdej krawędzi (u,v) należącej do p f[u,v] = f[u,v]+a f[v,u] = f[v,u]-a

Poprawność i złożoność Poprawność algorytmu wynika wprost z twierdzenia Forda-Fulkersona: po zakończeniu działania w grafie nie może być ścieżki powiększającej, przepływ jest więc maksymalny. Przystępny dowód oszacowania złożoności czasowej można znaleźć wCormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.;