Remarques :
— À l’étape (3) de l’algorithme, lorsqu’il n’existe plus de chemin de sàtdans R∗(f),
on peut déterminer l’ensemble Wdes sommets xpour lesquels il existe un chemin
de sàx. On a donc s∈Wet t /∈W. La coupe (W, V \W)est de capacité
minimale.
— Tout flot compatible maximum est bloquant. Mais un flot bloquant n’est pas
nécessairement maximum.
1.3 Flots compatible
Considérons un réseau orienté R(V, A)quelconque (avec une source et d’un puits).
Supposons qu’à chaque arc a∈R, on associe non seulement une capacité ca, mais
également une borne inférieure la.
Dans ce cas un flot fest compatible si la≤f(a)≤ca,∀a∈A.
L’objectif de ce qui suit est de déterminer un flot compatible dans Ren tenant en
compte les deux bornes inférieure laet supérieure ca.
Soit fun flot pas nécessairement compatible, et soit aun arc dans R.
•La déficience de a, notée Df(a)est définie comme étant égale à
max{0, la−f(a)}.
•La déficience totale, notée Dfest égale à : X
a∈A
Df(a).
Un flot est compatible si et seulement si sa déficience totale est nulle.
Pour déterminer un flot compatible dans un réseau R, on utilisera un réseau auxiliaire
R∗(f)contenant toujours les mêmes sommets que G, mais ses arcs sont les suivants :
— si un arc a= (x,y)est tel que f(a)< ca, alors on crée un arc (x,y)dans R∗(f)
de capacité c∗
(x,y)=ca−f(a);
— si un arc a= (x,y)est tel que f(a)> la, alors on crée un arc (y,x)dans R∗(f)
de capacité c∗
(y,x)=f(a)−la.
L’algorithme 2détermine un flot de déficience nulle, s’il en existe un. Au réseau R∗(f)
usuel, nous rajouterons un arc de tvers sde capacité c∗
(t,s)=∞.
A partir d’un flot à déficience nulle, on peut utiliser les algorithmes précédents pour les
rendre maximum.
5