Intuicyjna interpretacja wykresu resztkowego w problemie maksymalnego przepływu jest bardzo dobrze przedstawiona w tym wykładzie. Wyjaśnienie jest następujące.
Załóżmy, że próbujemy rozwiązać problem maksymalnego przepływu dla następującej sieci (gdzie każda etykieta oznacza zarówno przepływ przepchnięty przez krawędź i pojemność tej krawędzi):Gfe/cefeece
Jednym z możliwych chciwych podejść jest:
- Odebrać dowolne rozszerzanie ścieżki , która wychodzi z wierzchołka źródło zlewu wierzchołek tak, że ); to znaczy wszystkie krawędzie w mają dostępną pojemność.s t ∀ ePst P∀e(e∈P→fe<ceP
- Popchnij maksymalny możliwy przepływ przez tę ścieżkę. Wartość określa się przez wąskie gardło w ; to znaczy krawędź o minimalnej dostępnej pojemności. Formalnie .ΔΔPΔ=mine∈P(ce−fe)
- Przejdź do kroku 1, aż nie będzie żadnych ścieżek rozszerzających.
Oznacza to, że znajdź ścieżkę o dostępnej pojemności, wyślij przepływ wzdłuż tej ścieżki i powtórz.
W jedno możliwe wykonanie powyższej heurystyki znajduje trzy ścieżki rozszerzające , i , w tej kolejności. Te ścieżki wypychają odpowiednio 2, 2 i 1 jednostki przepływu, co daje całkowity przepływ 5:GP1P2P3
Wybór ścieżek w tej kolejności prowadzi do optymalnego rozwiązania; co się jednak stanie, jeśli najpierw wybierzemy (tj. przed i )?P3P1P2
Otrzymujemy tak zwany przepływ blokujący : nie ma już żadnych ścieżek rozszerzających. W takim przypadku całkowity przepływ wynosi 3, co nie jest optymalne. Ten problem można rozwiązać, zezwalając na operacje cofania (tj. Zezwalając na wysyłanie przepływu w odwrotną stronę, cofanie pracy poprzednich iteracji): wystarczy przesunąć 2 jednostki przepływu wstecz od wierzchołka do wierzchołka następujący sposób:wv
Kodowanie tych dozwolonych operacji cofania jest głównym celem wykresu resztkowego .
Wykres resztkowy sieci ma taki sam zestaw wierzchołków jak i zawiera dla każdej krawędzi :RGGe=(u,v)∈G
Przednia krawędź o pojemności , jeśli .e′=(u,v)ce−fece−fe>0
krawędź o pojemności , jeśli .e′′=(v,u)fefe>0
Weźmy na przykład wykres resztkowy który jest uzyskiwany po pierwszej iteracji zachłannej heurystyki, gdy heurystyka najpierw wybiera (to znaczy, kiedy otrzymuje przepływ blokujący):RP3
Zauważ, że operacja cofania , która popycha 2 jednostki przepływu z do jest kodowana jako ścieżka do przodu (zwiększająca) od do w :wvstR
Ogólnie:
Po wybraniu ścieżki rozszerzającej na wykresie resztkowym :P′R
- Każda krawędź w która odpowiada przedniej krawędzi w zwiększa przepływ, stosując krawędź o dostępnej pojemności.P′G
- Każda krawędź w która odpowiada krawędzi cofającej się w cofa przepływ, który w przeszłości był popychany do przodu.P′G
Jest to główna idea metody Forda-Fulkersona .
Metoda Forda-Fulkersona postępuje dokładnie tak samo, jak chciwe podejście opisane powyżej, ale zatrzymuje się tylko wtedy, gdy nie ma już ścieżek rozszerzających na wykresie resztkowym (nie w oryginalnej sieci). Metoda jest poprawna (tzn. Zawsze oblicza maksymalny przepływ), ponieważ wykres resztkowy ustanawia następujący warunek optymalności :
Przy danej sieci przepływ jest maksymalny w jeśli nie ma ścieżki na wykresie resztkowym.GfGs−t