Problèmes de flots.
Applications.
10 5
Uniquement
des arcs 15
sortants !
Tous les autres sommets
peuvent être atteints !
10 5
Uniquement
15 des arcs
entrants !
Depuis tout autre sommet
nous pouvons atteindre p !
10 5
15
D Y N A M I Q U E
Un peu de discipline :
flot / capacité
7 / 10 4/5
7 / 15
7 / 10 4/5
7 / 15
7 / 10 5/5
7 / 15
7 / 10 5/5
7 / 15 Voici une coupe
qui est saturée !
A P P L I C A T I O N
D E F I N I T I O N S
D E
B A S E
5 mars 2008 Cours de graphes 4 - Intranet 19
Définitions
-----------------------------------------------------------------
La représentation :
Les capacités : c : V x V -> R+
I
Si ( u , v ) n’existe pas, alors c ( u , v ) = 0 !
Les contraintes :
f ( u , v ) <= c ( u , v )
f(u,v) = -f(v,u)
f ( u , v ) = 0 , si u est différent de s et de p .
vV
5 mars 2008 Cours de graphes 4 - Intranet 20
F O R D & F U L K E R S O N
U N
A L G O R I T H M E
G E N E R I Q U E
5 mars 2008 Cours de graphes 4 - Intranet 21
Ford & Fulkerson
-----------------------------------------------------------------
Initialiser le flot à 0
C’est quoi ?
Comment le trouver ?
Lequel choisir ?
F L O T S
- c ( v , u ) <= f ( u , v ) <= c ( u , v )
Ensuite :
Le flot f ( u , v ) est le flot dans l’arc ( u , v ) diminué du flot
dans l’arc ( v , u ) !
3/5 2/5
+2 -1
u v u v
1/4 3/4
C A P A C I T E S
R E S I D U E L L E S
r ( u , v ) = +/- r ( v , u )
/
5 mars 2008 Cours de graphes 4 - Intranet 29
Ford & Fulkerson
-----------------------------------------------------------------
Comment changer le flot ?
f(u,v) = -f(v,u)
c(u,v)
f(u,v)
u v
c(v,u)
G R A P H E
R E S I D U E L
3/5
-2
u v
1/4
Le graphe résiduel R :
Le poids du chemin augmentant est le poids de l’arc le plus léger du chemin augmentant
!
r(u,s) = u
c(u,s) - f(u,s) 3
= c(u,s)+f(s,u)
1
= 0+1 = 1 s p Construction
du graphe R !
r(v,s) = u
c(v,s) - f(v,s) 3
= c(v,s)+f(s,v)
1
= 0+2 = 2 s p Construction
2 du graphe R !
4
v
4/7 6/7
devient
+2
4/7 2/7
devient
+2
u
3
3
1
s 5 p Construction
5 du graphe R !
1 3
v
u
3
3
1
s 5 p Le nouveau
5 graphe R !
1 3
v
u
3
3
1
s 5 p Le nouveau
5 graphe R !
1 3
v
s ... ... p
S P
Nous partitionnons les sommets du graphe pour
uS
vP
4/…
2/…
Dans le sens S’ P’P , nous S
S vers P en positifS’’
comptons ! P’’
Dans le sens P vers S , nous comptons en négatif !
uS
vP
…/4
…/2
Dans le sens S vers P , nous S P
considérons l’arc !
Dans le sens P vers S , nous ignorons l’arc !
f ( S , P ) <= c ( S , P )
4/7
2/5
f ( S , P ) = 4 + 2 – 3 <= 4 + 2 <= 7 + 5 = c ( S , P )
S P
f ( S , P ) = f ( u , v ) <= f ( u , v ) <= c ( u , v ) = c ( S , P )
u S , v P u S , v P u S , v P
f ( u , v ) >= 0
T H E O R E M E
M A X - F L O W
M I N - C U T
5 mars 2008 Cours de graphes 4 - Intranet 50
Théorème du Max-Flow Min-Cut
-----------------------------------------------------------------
Les trois conditions suivantes sont équivalentes :
( 1 ) Le flot f est maximal !
( 2 ) Le graphe résiduel ne contient pas de chemin augmentant !
( 3 ) Il existe une coupe ( S , P ) telle que f = c ( S , P ) ! Cette coupe est minimale et
saturée !
( 1 ) => ( 2 ) , par absurde !
S’il y a un chemin augmentant, f n’est pas maximal.
( 3 ) => ( 1 )
Si il existe ( S , P ) telle que f = c ( S , P ) , nous avons
c ( S , P ) = f <= min c ( S , P ) ! f est donc maximal !
coupes ( S , P )
u v
s ... x y ... p
r(u,v) = 0
et donc
a b f(u,v) = c(u,v)
S P r(x,y) = 0
et donc
Dans le graphe G, il y a trois cas :
f(y,x) = 0
u v
s ... x y ... p r(a,b) = 0
et donc
a b f(a,b) = c(a,b)
S P
5 mars 2008 Cours de graphes 4 - Intranet 52
C O M P L E X I T E
1/1000 1/1000
0/1
1/1000 1/1000
Re-nouveau graphe !
relax ( x , v )
si min ( D ( x ) , M ( x , v ) ) > D ( v )
D ( v ) <- min ( D ( x ) , M ( x , v ) )
P ( v ) <- x
5 mars 2008 Cours de graphes 4 - Intranet 55
Complexité
-----------------------------------------------------------------
L’algorithme d’Edmonds et Karp :
Certains arcs
Nouveau aller !
graphe s p
... Tous les arcs
résiduel :
de retour !
Il y a de plus en plus de chemins de retour de p vers s !
Il y a de moins en moins de chemins de s vers p !
Les chemins augmentants deviennent de plus en plus long !
s p
1 1
S P Avec des capacités
s p assez grandes pour
n m les arcs rouges !
Ce n’est plus le même problème, si s doit envoyer
i à p ! i
s p
1 1
Les arcs transportent
des flots de couleurs
s p mais rien ne garantit la
n n bonne destination !
…/5
s p
1 …/7 1
s p
n n