L'intuition derrière le graphique résiduel dans le problème de débit maximal est très bien présentée dans cette conférence. L'explication est la suivante.
Supposons que nous essayons de résoudre le problème de débit maximal pour le réseau (où chaque étiquette f e / c e désigne à la fois le flux poussé à travers un bord et la capacité de ce bord):gFe/ ce e c eFeece
Une approche gourmande possible est la suivante:
- Choisissez un chemin d' augmentation arbitraire qui va du sommet source s au sommet puits tel que ); c'est-à-dire que tous les bords de ont une capacité disponible.Ps∀ et P∀ e( e ∈ P→ fe< ceP
- Δ P Δ = min e ∈ P ( c e - f e )ΔΔPΔ = mine ∈ P( ce- fe)
- Passez à l'étape 1 jusqu'à ce qu'aucun chemin d'augmentation n'existe.
Autrement dit, recherchez un chemin avec la capacité disponible, envoyez le flux le long de ce chemin et répétez.
Dans , une exécution possible de l'heuristique ci-dessus trouve trois chemins d'augmentation , et , dans cet ordre. Ces chemins poussent respectivement 2, 2 et 1 unités de débit, pour un débit total de 5:P 1 P 2 P 3gP1P2P3
Le choix des chemins dans cet ordre conduit à une solution optimale; cependant, que se passe-t-il si nous sélectionnons premier (c'est-à-dire avant et )?P 1 P 2P3P1P2
Nous obtenons ce qu'on appelle un flux de blocage : il n'existe plus de chemins d'augmentation. Dans ce cas, le débit total est de 3, ce qui n'est pas optimal. Ce problème peut être résolu en autorisant les opérations d' annulation (c'est-à-dire en autorisant l'envoi de flux à l'envers, en annulant le travail des itérations précédentes): il suffit de pousser 2 unités de flux vers l'arrière du sommet au sommet comme ceci:vwv
L'encodage de ces opérations d'annulation autorisées est l'objectif principal du graphique résiduel .
Un graphe résiduel d'un réseau a le même ensemble de sommets que et inclut, pour chaque arête :G G e = ( u , v ) ∈ GRgge = ( u , v ) ∈ G
Un bord avant de capacité , si .c e - f e c e - fe′= ( u , v )ce- fece- fe> 0
Un bord arrière de capacité , si .f e f e > 0e′ ′=(v,u)fefe>0
Par exemple, considérons le graphe résiduel qui est obtenu après la première itération de l'heuristique gourmande lorsque l'heuristique sélectionne premier (c'est-à-dire lorsqu'elle obtient le flux de blocage):P 3RP3
Notez que l' opération d' annulation qui pousse 2 unités de flux de à est codée comme un chemin direct (augmentant) de à dans :v s t RwvstR
En général:
Lorsqu'un chemin d'augmentation est sélectionné dans le graphe résiduel : RP′R
- Chaque bord en qui correspond à un bord avant en augmente le débit en utilisant un bord avec une capacité disponible. GP′g
- Chaque bord en qui correspond à un bord qui recule en annule le flux qui a été poussé vers l'avant dans le passé. GP′g
C'est l'idée principale derrière la méthode Ford – Fulkerson .
La méthode Ford – Fulkerson procède exactement de la même manière que l'approche gourmande décrite ci-dessus, mais elle ne s'arrête que lorsqu'il n'y a plus de chemins d'augmentation dans le graphique résiduel (pas dans le réseau d'origine). La méthode est correcte (c'est-à-dire qu'elle calcule toujours un débit maximum) car le graphique résiduel établit la condition d'optimalité suivante :
Etant donné un réseau , un flux est maximum dans s'il n'y a pas de chemin dans le graphe résiduel.f G s - tgFgs - t