Table des matières
1 Flots 2
1.1 Définitions .................................. 3
1.2 Flots maximum ............................... 3
1.3 Flots compatible .............................. 5
1.4 Flots de coût minimum ........................... 6
1.5 Applications classiques ........................... 7
1.5.1 Problème d’affectation ....................... 7
1.5.2 Problème de transbordement .................... 8
1
Chapitre 1
Flots
Contents
1.1 Définitions .............................. 3
1.2 Flots maximum ........................... 3
1.3 Flots compatible .......................... 5
1.4 Flots de coût minimum ...................... 6
1.5 Applications classiques ...................... 7
1.5.1 Problème d’affectation ...................... 7
1.5.2 Problème de transbordement .................. 8
2
1.1 Définitions
Soit R= (V, A)un réseau orienté contenant un sommet ssans prédécesseur, appelé
source, et un sommet tsans successeur, appelé puits. On associe à chaque arc a=
(u, v)Aune capacité ca=c(u,v).
Un flot dans Rest une fonction fqui attribue un nombre entier f(a)à tout arc
aAde telle sorte que les deux exigences suivantes sont vérifiées :
Conservation de flot : X
aw+(v)
f(a) = X
aw(v)
f(a),v̸=s, t.
Compatibilité du flot : 0f(a)ca,aA.
On appelle valeur de flot, et on note fstla quantité de flot circulant du nœud
source svers le nœud puits t.
fst=X
aw+(s)
f(a) = X
aw(t)
f(a)
Soit Wun sous-ensemble de Vtel que sWet tV\W.
Une coupe est l’ensemble des arcs (u, v)w+(W)allant de Wvers V\W, (c-à-d
uW, v V\W). Cette coupe est notée (W, V \W).
Capacité de la coupe : C(W,V \W)=X
aw+(W)
ca.
Flot de la coupe : C’est le flot traversant la frontière de la coupe de Wvers
V\W:f(W, V \W) = X
aw+(W)
f(a).
Un flot fest bloquant si tous les chemins de sàtdans Rcontiennent au moins
un arc atel que ca=f(a).
1.2 Flots maximum
L’objectif de cette section est de déterminer un flot compatible dans un réseau R(V, A),
qui maximise la valeur du flot fst. Ce flot est dit flot maximum.
Propriétés :
Pour tout flot compatible fet pour toute coupe (W, V \W), on a :
fstC(W, V \W).
Il existe un flot compatible fet une coupe (W, V \W)telle que :
fst=C(W, V \W).
Si on arrive a exhiber un flot fet une coupe (W, V \W)telle que :
fst=C(W, V \W), alors le flot fest maximum et la coupe (W, V \W)est de
capacité minimale.
3
Dans les prochaines illustrations, nous représenterons la capacité d’un arc à l’aide d’une
suite de triangles qu’on remplit de l’origine de l’arc vers sa destination. Le nombre de
triangles remplis correspond au nombre d’unités f(a)de flot circulant sur l’arc a. Par
exemple, pour a= (u, v)on a :
Pour déterminer à la fois un flot maximum et une coupe de capacité minimal on utilise
Algorithme de Ford et Fulkerson. Il définit un réseau appelé auxiliaire, noté R(f), et
associé à tout flot fdans G.
Algorithm 1: Ford et Fulkerson
(1) Déterminer un flot compatible f(par exemple f(a)=0pour tout a)
(2) Construire un réseau R(f)comme suit :
Créer dans R(f)un arc (x,y) de capacité c
(x,y)=caf(a)si f(a)< ca
Créer dans R(f)un arc (y,x)de capacité c
(y,x)=f(a)si f(a)>0
(3) S’il n’existe pas de chemin de sàtdans R(f)alors STOP : Aller à (5).
(4) Sinon, soit Pun tel chemin et soit ∆ = min
(x,y)Pc
(x,y).
Pour tout arc (x,y) dans Pfaire :
Augmenter le flot de sur (x,y) si l’arc (x,y) existe dans R
Diminuer le flot de sur (y,x)si l’arc (y,x)existe dans R
Retourner à (2).
(5) Déterminer l’ensemble Wdes sommets atteignables depuis sdans R(f). Le flot
obtenu est maximum et la coupe (W, V \W)est de capacité minimum.
4
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 sWet 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 orienR(V, A)quelconque (avec une source et d’un puits).
Supposons qu’à chaque arc aR, on associe non seulement une capacité ca, mais
également une borne inférieure la.
Dans ce cas un flot fest compatible si laf(a)ca,aA.
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, laf(a)}.
La déficience totale, notée Dfest égale à : X
aA
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)=caf(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
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !