Vous êtes sur la page 1sur 24

Chapitre 5

Flots et Réseaux de Transport

Najoua Dridi
Définition
Un réseau est un graphe R=(X,U,c) avec
c: U  IN
(i,j)c(i,j)= capacité de l’arc (i,j)
En plus, R dispose de deux sommets particuliers:
• e: entrée du réseau, avec d°int(e)=0
• s: sortie du réseau avec d°ext(s)=0

2
Définition
Flot sur un réseau R:
Soit m le nombre d’arcs de R.
ϕ =(ϕ(u1),…, ϕ(um)) est un flot si pour tout arc u:
• ϕ(u)≥0
• ϕ(u)≤c(u)
• ϕ se conserve aux sommets autres que e et s
ϕ(u)= flux sur l’arc u

3
Problème posé
Etant donné un réseau R=(X,U,c), trouver un flot
ϕ tel que : 0   (e, i) soit maximal
( e,i )U

Remarque: La conservation de ϕ implique :


0  (i, s)
(i,s)U

Définition: Un arc u est saturé si (u)=c(u)

4
Exemple

5
1ère amélioration: Flot complet

On a ϕ0=120,
Le chemin: e  1  3  s ne contient aucun
arc saturé
Augmentation maximale du flot sur le chemin
saturer l’arc le plus proche de la saturation

Min (50,30,10)=10 ϕ0 peut augmenter


de 10
6
1ère amélioration: Flot complet
Définition : Un flot est complet si tout chemin
passe par au moins un arc saturé.
Après le changement de ϕ, le flot est devenu
complet avec ϕ0=120+10=130

7
1ère amélioration- flot complet

En général:
• S’il existe un chemin μ de e vers s sans passer
par un arc saturé, calculer:
d  Min ( c ( u )   ( u ))
0

u 
Ajouter d à tous les arcs de μ  On obtient un
nouveau flot sur R et une augmentation de 0
d’une valeur égale à d
0

• Refaire ce travail jusqu’à rendre le flot complet


8
2ème amélioration: Chaîne augmentante
ϕ complet implique-t-il ϕ maximal??
Réponse NON : Considérons la chaîne suivante:
e134s

Les arcs (e,1) , (1,3) et (4,s) ne sont pas saturés,


ϕ peut augmenter sur ces arcs.
Pour avoir la conservation de ϕ sur cette chaîne
on va diminuer ϕ sur l’arc (4,s)
9
2ème amélioration: chaîne augmentante

10
2ème amélioration: chaîne augmentante

Nouveau flot : ϕ0=130+20=150

11
2ème amélioration: chaîne augmentante

Définition:
Soit μ une chaîne entre e et s avec:
μ+ ={ arcs de μ orientés de e vers s}
μ- ={ arcs de μ orientés de s vers e}
Si le flux de tout arc de μ+ peut augmenter et
celui de tout arc de μ- est strictement positif,
μ est appelée chaîne augmentante

12
2ème amélioration: chaîne augmentante
Dans le cas général:
Si une chaîne augmentante μ existe, calculer:
d1  Min(c(u )   (u )) d 2  Min( (u ))
u  u 

d  Min(d1 , d 2 )
• Ajouter d au flux de chaque arc de μ+
• Retrancher d au flux de chaque arc de μ-
ϕ0 augmente de d
Refaire ce travail tant qu’une telle chaîne existe.
13
Chaîne augmentante: Procédure de marquage
• Marquer le sommet e par (x)
• A partir de tout sommet i marqué, on marque tout sommet j
par:
 (+i) si (i,j) ϕ(i,j)<c(i,j)
 (-i) si (j,i) ϕ(j,i)>0

Si s est marqué  une chaîne augmentante μ existe:


Modifier ϕ sur cette chaîne.
Refaire le marquage
Sinon, le flot trouvé est maximal (voir démonstration dans la suite)

14
Algorithme de Ford- Fulkerson
1/ Choisir un flot quelconque ϕ, calculer ϕ0
2/ Rendre le flot complet
3/ Marquage: Recherche d’une chaîne augmentante
• Si une telle chaîne existe Modifier ϕ sur cette
chaîne: Calculer d1, d2, d  ϕ0 = ϕ0 +d
Refaire le marquage
• Sinon, le flot est maximal  fin

15
1er Marquage
Reprenons l’exemple précédent et faisons un premier marquage:

En remontant le marquage à partir de s, la chaîne obtenue est:

16
2 ème Marquage
On ne peut marquer que les sommets e et 1.
s n’est pas marqué le flot obtenu est maximal

17
Flot maximal et coupe de capacité minimale

Notations: Soit A
  ( A )  ( i , j )  U / i  A et j  A
  ( A )  ( i , j )  U / i  A et j  A
U 1  ( i , j )  U / i  A et j  A
  ( A)    (u )
u   ( A )

  ( A)    (u )
u   ( A )

18
Flot maximal et coupe de capacité minimale

Théorème1
Soit A
  ( A)    ( A)

  (u )    (u )
  ( A) U1

  (u )    (u )
  ( A) U1

 ( A)   ( A) □

19
Flot maximal et coupe de capacité minimale

Remarque: Afin que e et s vérifient la conservation


sans ajouter d’autres contraintes au problème de
départ, on ajoute «l’arc de retour» (s,e) avec un flux

20
Flot maximal et coupe de capacité minimale
Soit A

C
 c ((uu )
  ( A)
A
C

Max  0  Min C
 flot A X
e A , s A
21
Flot maximal et coupe de capacité minimale

Preuve
En tenant compte de l’arc de retour, le th1 donne:
  (u )   0    (u ) , d’où
  ( A)   ( A)

0  
  ( A)
 (u )    (u )
  ( A)

comme ϕ ≥ 0 et ϕ ≤ c

0    (u )   c (u )
  ( A)   ( A)

22
Flot maximal et coupe de capacité minimale

Théorème 3 (optimalité de l’algorithme F-F)


Lorsque le marquage s’arrête sans atteindre s, le flot obtenu est
maximal et il est égal à la capacité minimale d’une coupe.

Preuve
A={sommets marqués au dernier marquage}, d’où
On a :  0    (u )    (u ) , en plus:
  ( A)   ( A)

• u
• u

0 C 0 C

23
Flot maximal et coupe de capacité minimale
+

0 C

24

Vous aimerez peut-être aussi