suivant: Une amélioration possible
monter: L'algorithme de Ford &
précédent: Forme naïve de l'algorithme
Nous allons ici nous intéresser à la manière dont l'on programme
habituellement l'algorithme de Ford & Fulkerson.
Cette méthode fait appel à un marquage des sommets et une liste de sommets
candidats. Initialement, l'on marque
, source du flot, et l'on cherche à
progresser vers
.
L'algorithme se termine lorsque l'on ne peut pas marquer le sommet
. Soit
donc
l'ensemble des n
uds marqués. On pose tout naturellement :
.
Or, par construction :
donc,
est une st-coupe. Si l'on n'a pas pu marquer
cela
signifie que l'algorithme ne peut plus marquer de sommets de
depuis
. On en déduit donc que :
or, par définition du graphe d'écart :
En outre, par définition d'un flot :
est donc une somme nulle de termes positifs ou nuls, ce qui signifie
immédiatement que les deux termes sont nuls ! Donc :
or :
en appliquant
:
et comme
, on
obtient finalement :
On est donc dans une situation où la valeur du flot est égale à la
capacité de la
coupe. Ce qui veut dire que nous sommes dans le cas flot max/coupe min. On a
donc réussi !
Ce qui nous conduit au théorème suivant :
En effet, s'il existait un tel chemin, ce serait un chemin augmentant sur
lequel on pourrait pousser du flot.
Réciproquement, supposons que
ne contienne pas de chemin. L'ensemble
des sommés marqués par l'algorithme de Ford & Fulkerson
forme une st-coupe dont la capacité est égale au flot, d'où l'optimalité.
suivant: Une amélioration possible
monter: L'algorithme de Ford &
précédent: Forme naïve de l'algorithme
Bruno Garcia
2000-12-17