23 février 2007cours de graphes 4 - intranet1 cours de graphes problèmes de flots. théorème du...
Post on 04-Apr-2015
106 Views
Preview:
TRANSCRIPT
23 février 2007 Cours de graphes 4 - Intranet 1
Cours de graphes
Problèmes de flots.
Théorème du Max-flow – Min-cut.
Algos de Ford-Fulkerson et Edmonds-Karp.
Applications.
23 février 2007 Cours de graphes 4 - Intranet 2
Les grandes lignes du cours
• Définitions de base• Connexité• Les plus courts chemins• Dijkstra et Bellmann-Ford• Arbres• Arbres de recouvrement minimaux • Problèmes de flots• Coloriage de graphes• Couplage• Chemins d’Euler et de Hamilton• Problèmes NP-complets
23 février 2007 Cours de graphes 4 - Intranet 3
Les graphes de flots-----------------------------------------------------------------
I N T R O D U C T I O N
23 février 2007 Cours de graphes 4 - Intranet 4
Les graphes de flots-----------------------------------------------------------------
• Un graphe de flot est :
– un graphe orienté; les arcs portent des capacités (poids),
– qui possède deux sommets particuliers qui sont la « source s » et le « puits p ».
23 février 2007 Cours de graphes 4 - Intranet 5
Les graphes de flots-----------------------------------------------------------------
• Un graphe de flot est :
– un graphe orienté; les arcs portent des capacités (poids),
– qui possède deux sommets particuliers qui sont la « source s » et le « puits p ».
• On a en plus :
– Le graphe est quasi-fortement connexe avec « s » comme unique racine !
– Si nous inversons tous les arcs, le graphe est quasi-fortement connexe avec « p » comme unique racine !
– Donc, tout sommet « u » appartient à un chemin simple orienté qui relie « s » à « p » en passant par « u » , ( s ; u ; p ) !
23 février 2007 Cours de graphes 4 - Intranet 6
Les graphes de flots-----------------------------------------------------------------
Exemple :
20
1010
1015
17
5
15
10
8
20Source « s »
Uniquementdes arcssortants !
Les capacités !
Tous les autres sommetspeuvent être atteints !
23 février 2007 Cours de graphes 4 - Intranet 7
10
Les graphes de flots-----------------------------------------------------------------
Exemple :
20
10
1015
17
5
15
10
8
20Source « s » Puits « p »
Uniquementdes arcs
entrants !
Les capacités !
Depuis tout autre sommetnous pouvons atteindre p !
23 février 2007 Cours de graphes 4 - Intranet 8
Les graphes de flots-----------------------------------------------------------------
Exemple :
20
1010
1015
17
5
15
10
8
20Source « s » Puits « p »
Tout sommet « u » appartient à unchemin simple de « s » vers « p » !
u
Les capacités !
23 février 2007 Cours de graphes 4 - Intranet 9
Les graphes de flots-----------------------------------------------------------------
• La dynamique :
– La source produit ( des m^3 d’eau, des kWh ), elle est la seule à produire !
– Le puits consomme, il est le seul à le faire !
– Les autres sommets transmettent, sans produire, ni consommer !
23 février 2007 Cours de graphes 4 - Intranet 10
Les graphes de flots-----------------------------------------------------------------
• La dynamique :
– La source produit ( des m^3 d’eau, des kWh ), elle est la seule à produire !
– Le puits consomme, il est le seul à le faire !
– Les autres sommets transmettent, sans produire, ni consommer !
• Un peu de discipline :
– Sur chaque arc le flot est compris entre zéro et la capacité de l’arc !
– Représentation : flot / capacité
23 février 2007 Cours de graphes 4 - Intranet 11
Les graphes de flots-----------------------------------------------------------------
Exemple :
10 / 20
0 / 105 / 10
7 / 107 / 15
5 / 17
4 / 5
0 / 15
5 / 10
8 / 8
13 / 20Source « s » Puits « p »
flot / capacité
Toutes contraintes sur lescapacités sont respectées ! ! !
23 février 2007 Cours de graphes 4 - Intranet 12
Les graphes de flots-----------------------------------------------------------------
Exemple :
10 / 20
0 / 10
7 / 107 / 15
5 / 17
4 / 5
0 / 15
5 / 10
8 / 8
13 / 20Source « s » Puits « p »
flot / capacité
Les intermédiaires redistribuentexactement ce qu’ils reçoivent !
5 / 10
10 en entrée !
10 en sortie !
23 février 2007 Cours de graphes 4 - Intranet 13
Les graphes de flots-----------------------------------------------------------------
Exemple :
10 / 20
0 / 105 / 10
7 / 107 / 15
5 / 17
4 / 5
0 / 15
5 / 10
8 / 8
13 / 20Source « s » Puits « p »
flot / capacité
Il sort 17 unités de la source « s », il entre 17 unitésdans le puits « p », c’est ce que nous appellerons le flot !
23 février 2007 Cours de graphes 4 - Intranet 14
Les graphes de flots-----------------------------------------------------------------
Exemple :
10 / 20
0 / 105 / 10
7 / 107 / 15
5 / 17
4 / 5
0 / 15
5 / 10
8 / 8
13 / 20Source « s » Puits « p »
flot / capacitéOUI : + 5
23 février 2007 Cours de graphes 4 - Intranet 15
Les graphes de flots-----------------------------------------------------------------
Exemple :
15 / 20
0 / 105 / 10
7 / 107 / 15
5 / 17
4 / 5
0 / 15
10 / 10
8 / 8
18 / 20Source « s » Puits « p »
flot / capacité
Le flot est de 22 unités !
23 février 2007 Cours de graphes 4 - Intranet 16
Les graphes de flots-----------------------------------------------------------------
Exemple :
15 / 20
0 / 105 / 10
7 / 107 / 15
5 / 17
4 / 5
0 / 15
10 / 10
8 / 8
18 / 20Source « s » Puits « p »
flot / capacitéOUI : + 1
23 février 2007 Cours de graphes 4 - Intranet 17
Les graphes de flots-----------------------------------------------------------------
Exemple :
15 / 20
1 / 105 / 10
7 / 107 / 15
6 / 17
5 / 5
0 / 15
10 / 10
8 / 8
18 / 20Source « s » Puits « p »
flot / capacité
Le flot est de 23 unités !Voici une « coupe ».
23 février 2007 Cours de graphes 4 - Intranet 18
Les graphes de flots-----------------------------------------------------------------
Exemple :
15 / 20
1 / 105 / 10
7 / 107 / 15
6 / 17
5 / 5
0 / 15
10 / 10
8 / 8
18 / 20Source « s » Puits « p »
flot / capacité
Le flot est de 23 unités !
23 février 2007 Cours de graphes 4 - Intranet 19
• Pour un graphe de flot, nous voulons connaître :
– Le flot maximal :
• pour prévoir les investissements,
• pour connaître la marge de sécurité, c’est-à-dire la différence entre le flot normal et le flot maximal !
– La coupe minimale :
• pour localiser le goulot d’étranglement,
• pour orienter les investissements !
Les graphes de flots-----------------------------------------------------------------
23 février 2007 Cours de graphes 4 - Intranet 20
Application-----------------------------------------------------------------
U N E
A P P L I C A T I O N
23 février 2007 Cours de graphes 4 - Intranet 21
Application-----------------------------------------------------------------
• La SNCF étudie son réseau ferré de la région parisienne :
– Nous connaissons les capacités des gares de Paris !
– Nous connaissons le réseau et ses capacités !
– Nous connaissons les capacités des gares de banlieue !
23 février 2007 Cours de graphes 4 - Intranet 22
Application-----------------------------------------------------------------
Lyon
Austerlitz
Lazare
Est
Nord
Versailles
Evry
Marne la Vallée
Saint-Denis
S
50
40
Les capacités d’accueildes différentes gares !
P
20
25
Les capacités d’accueildes différentes gares !
17
23
Les ligneset leurs
capacités !
23 février 2007 Cours de graphes 4 - Intranet 23
Application-----------------------------------------------------------------
Le flot maximal sur ce graphe donne
le nombre maximal de voyageurs que
la SNCF peut prendre en charge,
. . . pour peu qu’il y ait assez de
trains dans chaque gare de départ!
23 février 2007 Cours de graphes 4 - Intranet 24
Application-----------------------------------------------------------------
• La SNCF étudie son réseau ferré de la région parisienne :
– Nous connaissons les capacités des gares de Paris !
– Nous connaissons le réseau et ses capacités !
– Nous connaissons les capacités des gares de banlieue !
– Nous limitons les capacités des trains dans les gares !
23 février 2007 Cours de graphes 4 - Intranet 25
Application-----------------------------------------------------------------
Lyon
Austerlitz
Lazare
Est
Nord
Versailles
Evry
Marne la Vallée
Saint-Denis
S
50
40
Les capacités d’accueildes différentes gares !
P
20
25
Les capacités d’accueildes différentes gares !
17
23
Les ligneset leurs
capacités !
23
25
Capacités de trains en gares, au départ !
23 février 2007 Cours de graphes 4 - Intranet 26
Application-----------------------------------------------------------------
• La SNCF étudie son réseau ferré de la région parisienne :
– Nous connaissons les capacités des gares de Paris !
– Nous connaissons le réseau et ses capacités !
– Nous connaissons les capacités des gares de banlieue !
– Nous limitons les capacités des trains dans les gares !
– Nous levons cette limitation pour certaines gares !
– Nous limitons la capacité globale de tous les trains !
23 février 2007 Cours de graphes 4 - Intranet 27
Application-----------------------------------------------------------------
Lyon
Austerlitz
Lazare
Est
Nord
Versailles
Evry
Marne la Vallée
Saint-Denis
S
50
40
Les capacités d’accueildes différentes gares !
P
20
25
Les capacités d’accueildes différentes gares !
17
23
Les ligneset leurs
capacités !
25
Capacités de trains en gares, au départ !
250
Limitationglobaleen trains !
23
23 février 2007 Cours de graphes 4 - Intranet 28
Application-----------------------------------------------------------------
Le flot maximal sur ce graphe donne
le nombre maximal de voyageurs que la SNCF
peut prendre en charge, en tenant compte de
- de la capacité totale des trains,- de la capacité totale des trains par gare de départ,- des capacités des gares et- des capacités des lignes.
. . . pour peu que les gares d’arrivée puissentaccueillir tous les trains !
23 février 2007 Cours de graphes 4 - Intranet 29
Application-----------------------------------------------------------------
Lyon
Austerlitz
Lazare
Est
Nord
Versailles
Evry
Marne la Vallée
Saint-Denis
S
50
40
Les capacités d’accueildes différentes gares !
P
20
25
Les capacités d’accueildes différentes gares !
17
23
Les ligneset leurs
capacités !
25
Capacités de trains en gares !
250
Limitationglobaleen trains !
23
23 février 2007 Cours de graphes 4 - Intranet 30
Application-----------------------------------------------------------------
Lyon
Austerlitz
Lazare
Est
Nord
Versailles
Evry
Marne la Vallée
Saint-Denis
S
50
40
Les capacités d’accueildes différentes gares !
P
20
25
Les capacités d’accueildes différentes gares !
17
23
Les ligneset leurs
capacités !
25
Capacités de trains en gares !
250
Limitationglobaleen trains !
23
23 février 2007 Cours de graphes 4 - Intranet 31
Application-----------------------------------------------------------------
Lyon
Austerlitz
Lazare
Est
Nord
Versailles
Evry
Marne la Vallée
Saint-Denis
S
50
40
Les capacités d’accueildes différentes gares !
P
20
25
Les capacités d’accueildes différentes gares !
17
23
Les ligneset leurs
capacités !
25
Capacités de trains en gares !
250
Limitationglobaleen trains !
23
23 février 2007 Cours de graphes 4 - Intranet 32
Application-----------------------------------------------------------------
Lyon
Austerlitz
Lazare
Est
Nord
Versailles
Evry
Marne la Vallée
Saint-Denis
S
50
40
Les capacités d’accueildes différentes gares !
P
20
25
Les capacités d’accueildes différentes gares !
17
23
Les ligneset leurs
capacités !
25
Capacités de trains en gares !
250
Limitationglobaleen trains !
23
23 février 2007 Cours de graphes 4 - Intranet 33
Définitions-----------------------------------------------------------------
L E S
D E F I N I T I O N S
D E
B A S E
23 février 2007 Cours de graphes 4 - Intranet 34
• La représentation :
– Les capacités : c : V x V -> R+
– Si ( u , v ) n’existe pas, alors c ( u , v ) = 0 !
– Les flots : f : V x V -> R ( flots négatifs ! )
– f ( u , v ) >= 0 , si le flot va de « u » vers « v » ,– f ( u , v ) <= 0 , si le flot va de « v » vers « u » !
• Les contraintes :
– f ( u , v ) <= c ( u , v )
I
I
Définitions-----------------------------------------------------------------
Nous respectons leslimites des capacités !
23 février 2007 Cours de graphes 4 - Intranet 35
• La représentation :
– Les capacités : c : V x V -> R+
– Si ( u , v ) n’existe pas, alors c ( u , v ) = 0 !
– Les flots : f : V x V -> R ( flots négatifs ! )
– f ( u , v ) >= 0 , si le flot va de « u » vers « v » ,– f ( u , v ) <= 0 , si le flot va de « v » vers « u » !
• Les contraintes :
– f ( u , v ) <= c ( u , v )
– f ( u , v ) = - f ( v , u )
I
I
Définitions-----------------------------------------------------------------
Au signe près, le flot est lemême dans un sens ou l’autre !
23 février 2007 Cours de graphes 4 - Intranet 36
• La représentation :
– Les capacités : c : V x V -> R+
– Si ( u , v ) n’existe pas, alors c ( u , v ) = 0 !
– Les flots : f : V x V -> R ( flots négatifs ! )
– f ( u , v ) >= 0 , si le flot va de « u » vers « v » ,– f ( u , v ) <= 0 , si le flot va de « v » vers « u » !
• Les contraintes :
– f ( u , v ) <= c ( u , v )
– f ( u , v ) = - f ( v , u )
– S f ( u , v ) = 0 , si u est différent de s et de p .
I
v e V
I
Définitions-----------------------------------------------------------------
Mis à part s et p , aucunsommet ne consomme oune produit !
23 février 2007 Cours de graphes 4 - Intranet 37
• La représentation :
– Les capacités : c : V x V -> R+
– Si ( u , v ) n’existe pas, alors c ( u , v ) = 0 !
– Les flots : f : V x V -> R ( flots négatifs ! )
– f ( u , v ) >= 0 , si le flot va de « u » vers « v » ,– f ( u , v ) <= 0 , si le flot va de « v » vers « u » !
• Les contraintes :
– f ( u , v ) <= c ( u , v )
– f ( u , v ) = - f ( v , u )
– S f ( u , v ) = 0 , si u est différent de s et de p .
I
v e V
I
Définitions-----------------------------------------------------------------
23 février 2007 Cours de graphes 4 - Intranet 38
Ford et Fulkerson-----------------------------------------------------------------
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
23 février 2007 Cours de graphes 4 - Intranet 39
Ford et Fulkerson-----------------------------------------------------------------
Initialiser le flot à 0
Tantqu’il existe un chemin augmentant
Augmenter le flot le long du chemin en question !
23 février 2007 Cours de graphes 4 - Intranet 40
Ford et Fulkerson-----------------------------------------------------------------
• Comment changer le flot ?
• D’abord :
• Donc :
u vf ( u , v )
c ( u , v )
c ( v , u )
f ( u , v ) = - f ( v , u )
f ( u , v ) <= c ( u , v )
- f ( u , v ) = f ( v , u ) <= c ( v , u )
- c ( v , u ) <= f ( u , v ) <= c ( u , v )
23 février 2007 Cours de graphes 4 - Intranet 41
Ford et Fulkerson-----------------------------------------------------------------
• Comment changer le flot ?
• Ensuite :
– Le flot « f ( u , v ) » est le flot dans l’arc ( u , v ) diminué du flot dans l’arc ( v , u ) !
u vf ( u , v )
c ( u , v )
c ( v , u )
f ( u , v ) = - f ( v , u )
u v+ 2
3 / 5
1 / 4u v- 1
2 / 5
3 / 4
23 février 2007 Cours de graphes 4 - Intranet 42
Ford et Fulkerson-----------------------------------------------------------------
• Comment changer le flot ?
– Le flot dans l’arc ( u , v ) est porté au maximum !
– Le flot dans l’arc ( v , u ) est ramené à zéro !
u vf ( u , v )
c ( u , v )
c ( v , u )
f ( u , v ) = - f ( v , u )
u v+ 5
5 / 5
0 / 4
23 février 2007 Cours de graphes 4 - Intranet 43
Ford et Fulkerson-----------------------------------------------------------------
• Comment changer le flot ?
– Le flot dans l’arc ( v , u ) est porté au maximum !
– Le flot dans l’arc ( u , v ) est ramené à zéro !
u vf ( u , v )
c ( u , v )
c ( v , u )
f ( u , v ) = - f ( v , u )
u v- 4
0 / 5
4 / 4v u+ 4
0 / 5
4 / 4
23 février 2007 Cours de graphes 4 - Intranet 44
Ford et Fulkerson-----------------------------------------------------------------
• Comment changer le flot ?
r ( u , v ) = c ( u , v ) - f ( u , v )
le flot maximal le flot déjà acquis
u vf ( u , v )
c ( u , v )
c ( v , u )
f ( u , v ) = - f ( v , u )
23 février 2007 Cours de graphes 4 - Intranet 45
Ford et Fulkerson-----------------------------------------------------------------
• Comment changer le flot ?
r ( u , v ) = c ( u , v ) - f ( u , v )
u vf ( u , v )
c ( u , v )
c ( v , u )
f ( u , v ) = - f ( v , u )
u v+ 2
3 / 5
1 / 4
r ( u , v ) = 5 – 2 = 3
r ( v , u ) = 4 – (– 2) = 6
23 février 2007 Cours de graphes 4 - Intranet 46
Ford et Fulkerson-----------------------------------------------------------------
• Comment changer le flot ?
r ( u , v ) = c ( u , v ) - f ( u , v )
u vf ( u , v )
c ( u , v )
c ( v , u )
f ( u , v ) = - f ( v , u )
u v- 2
3 / 5
1 / 4
r ( u , v ) = 5 – 2 = 3
r ( v , u ) = 4 – (– 2) = 6
23 février 2007 Cours de graphes 4 - Intranet 47
Ford et Fulkerson-----------------------------------------------------------------
L E
G R A P H E
R E S I D U E L
23 février 2007 Cours de graphes 4 - Intranet 48
Ford et Fulkerson-----------------------------------------------------------------
• Le graphe résiduel R :
– Il a les mêmes sommets que le graphe de flot G !
– Il possède un arc ( u , v ) si la capacité résiduelle r ( u , v ) dans le graphe G est strictement positive !
– L’arc en question est pondéré par la capacité résiduelle !
• Un chemin augmentant est un chemin de « s » vers « p » dans le graphe résiduel R !
• Le poids du chemin augmentant est le poids de l’arc le plus léger du chemin !
23 février 2007 Cours de graphes 4 - Intranet 49
Ford et Fulkerson-----------------------------------------------------------------
U N
E X E M P L E
23 février 2007 Cours de graphes 4 - Intranet 50
Ford et Fulkerson-----------------------------------------------------------------
• Un exemple :
s p
u
v
Le graphe G !
1/4
2/6 3/3
0/3
s p
u
v
Constructiondu graphe R !
3
1
r ( s , u ) =c ( s , u ) - f ( s , u )= 4 – 1 = 3
r ( u , s ) =c ( u , s ) - f ( u , s )= c ( u , s ) + f ( s , u )= 0 + 1 = 1
2/3 1/2
23 février 2007 Cours de graphes 4 - Intranet 51
Ford et Fulkerson-----------------------------------------------------------------
• Un exemple :
s p
u
v
Le graphe G !
1/4
2/6 3/3
0/3
s p
u
v
Le graphe R !
3
1
42
3
3
2 3
2/3 1/2
f( u , v ) = 2 – 1 = 1
r ( u , v ) =c ( u , v ) - f ( u , v )= 3 – 1 = 2
r ( v , u ) =c ( v , u ) - f ( v , u )= c ( v , u ) + f ( u , v )= 2 + 1 = 3
23 février 2007 Cours de graphes 4 - Intranet 52
Ford et Fulkerson-----------------------------------------------------------------
• Un exemple :
s p
u
v
Le nouveaugraphe G !
1/4
2/6 3/3
0/3
s p
u
v
Le graphe R !
3
1
42
3
3
2 3Un cheminaugmentantde poids 3 !
+3
+3
+1-22/3 1/2
23 février 2007 Cours de graphes 4 - Intranet 53
Ford et Fulkerson-----------------------------------------------------------------
• Pour changer le flot :
4 / 7
+2devient
6 / 7
4 / 7
+2devient
2 / 7
4 / 7
+2
devient
2 / 5
5 / 7
1 / 5
ou4 / 7
0 / 5
ou . . .
23 février 2007 Cours de graphes 4 - Intranet 54
Ford et Fulkerson-----------------------------------------------------------------
• Un exemple :
s p
u
v
1/4
5/6 3/3
3/3
s p
u
v
Constructiondu graphe R !
3
1
3
Le nouveaugraphe G !
Ceci estconservé !
0/3 2/2
23 février 2007 Cours de graphes 4 - Intranet 55
Ford et Fulkerson-----------------------------------------------------------------
• Un exemple :
s p
u
v
1/4
5/6 3/3
3/3
s p
u
v
Le graphe R !
3
1
3
Le nouveaugraphe G !
15
5
3
0/3 2/2
23 février 2007 Cours de graphes 4 - Intranet 56
Théorème du Max-flow – Min-Cut-----------------------------------------------------------------
L ET H E O R E M E
D UF L O T M A X I M A
LE T D E
L A C O U P EM I N I M A L E
23 février 2007 Cours de graphes 4 - Intranet 57
Théorème du Max-flow – Min-Cut-----------------------------------------------------------------
• Une coupe ( S , P ) ( cut en anglais ) :
• Nous partitionnons les sommets du graphe pour
– obtenir une partie S quasi-fortement connexe de racine s ,
– et une partie P quasi-fortement connexe de racine p , si
nous inversons les arcs.
s p. . . . . .
S P
23 février 2007 Cours de graphes 4 - Intranet 58
Théorème du Max-flow – Min-Cut-----------------------------------------------------------------
• Le flot à travers une coupe ( S , P ) : f ( S , P )
f ( S , P ) = S f ( u , v )
• Dans le sens S vers P , nous comptons en positif !
• Dans le sens P vers S , nous comptons en négatif !
s p. . . . . .
S P
u e Sv e P4 / …
2 / …
3 / …
23 février 2007 Cours de graphes 4 - Intranet 59
Théorème du Max-flow – Min-Cut-----------------------------------------------------------------
• Le flot à travers une coupe ( S , P ) : f ( S , P )
f ( S , P ) = S f ( u , v ) = 4 + 2 - 3
s p. . . . . .
S P
u e Sv e P
S’’ P’’S’ P’
4 / …
2 / …
- 3 / …
23 février 2007 Cours de graphes 4 - Intranet 60
Théorème du Max-flow – Min-Cut-----------------------------------------------------------------
• La capacité d’une coupe ( S , P ) : c ( S , P )
c ( S , P ) = S c ( u , v ) = 4 + 2
• Dans le sens S vers P , nous considérons l’arc !
• Dans le sens P vers S , nous ignorons l’arc !
s p. . . . . .
S P
u e Sv e P… / 4
… / 2
… / 3
23 février 2007 Cours de graphes 4 - Intranet 61
Théorème du Max-flow – Min-Cut-----------------------------------------------------------------
• Pour toute coupe ( S , P ) , nous avons :
f ( S , P ) <= c ( S , P )
f ( S , P ) = 4 + 2 – 3 <= 4 + 2 <= 7 + 5 = c ( S , P )
f ( S , P ) = S f ( u , v ) <= S f ( u , v ) <= S c ( u , v ) = c ( S , P )
u e S , v e P u e S , v e P u e S , v e P f ( u , v ) >= 0
s p. . . . . .
S P
4 / 7
2 / 5
3 / 4
23 février 2007 Cours de graphes 4 - Intranet 62
Théorème du Max-flow – Min-Cut-----------------------------------------------------------------
• Pour le flot f à travers un graphe G, nous avons :
– f = f ( S , P ) , quelque soit la coupe ( S , P ) !
– Or, pour toute coupe ( S , P ) , nous avons f ( S , P ) <= c ( S , P ) !
– Donc, 0 <= f <= min c ( S , P ) coupes ( S , P )
s p
…/7
…/3…/7
…/5
…/1
…/8
f <= 10
f <= 6
23 février 2007 Cours de graphes 4 - Intranet 63
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 avait un chemin augmentant, le flot ne serait pas maximal.
• ( 3 ) => ( 1 )
– Comme il existe ( S , P ) telle que f = c ( S , P ) , nous avons c ( S , P ) = f <= min c ( S , P ) ! f est donc maximal et égal une coupe. coupes ( S , P )
23 février 2007 Cours de graphes 4 - Intranet 64
Théorème du Max-flow – Min-Cut-----------------------------------------------------------------
• ( 2 ) => ( 3 )
– Il existe une coupe ( S , P ) avec des arcs retour seulement !
– Dans le graphe G, il y a trois cas :
s p. . . . . .
S P
s p. . . . . .
S P
u v
u v
r ( u , v ) = 0et donc
f ( u , v ) = c ( u , v )
x y
x y
r ( x , y ) = 0et donc
f ( y , x ) = 0
a b
a b
r ( a , b ) = 0et donc
f ( a , b ) = c ( a , b )
23 février 2007 Cours de graphes 4 - Intranet 65
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 !
23 février 2007 Cours de graphes 4 - Intranet 66
Complexité-----------------------------------------------------------------
• Le calcul du graphe résiduel R et du chemin augmentant est en Q ( | E | ) !
• Le nombre d’itérations peut être aussi élevé que la valeur du flot optimal f* !
0/1000 0/1000
0/1000 0/1000
0/1
1000 1000
1
1000 1000
Graphe ! Graphe résiduel !
23 février 2007 Cours de graphes 4 - Intranet 67
Complexité-----------------------------------------------------------------
• Le calcul du graphe résiduel R et du chemin augmentant est en Q ( | E | ) !
• Le nombre d’itérations peut être aussi élevé que la valeur du flot optimal f* !
1/1000 0/1000
0/1000 1/1000
1/1
Nouveau graphe !
999 1000
1
1000 999
Nouveau graphe résiduel !
11
23 février 2007 Cours de graphes 4 - Intranet 68
Complexité-----------------------------------------------------------------
• Le calcul du graphe résiduel R et du chemin augmentant est en Q ( | E | ) !
• Le nombre d’itérations peut être aussi élevé que la valeur du flot optimal f* !
1/1000 1/1000
1/1000 1/1000
0/1
Re-nouveau graphe !
23 février 2007 Cours de graphes 4 - Intranet 69
Complexité-----------------------------------------------------------------
• Nous améliorons l’algorithme en choisissant le chemin augmentant le plus lourd à chaque fois !
– C’est celui dont l’arc le plus léger est le plus lourd possible !
– Il est difficile d’établir une borne sur le nombre d’itérations !
• L’algorithme d’Edmonds et Karp :
– choisit le chemin augmentant le plus court (nombre d’arcs),
– il utilise l’algorithme de la vague pour le trouver,
– et nécessite au plus O ( | V | * | E | ) itérations,
– d’où une complexité globale de O ( | V | * | E |^2 ) = O ( | V |^5 ) .
23 février 2007 Cours de graphes 4 - Intranet 70
Complexité-----------------------------------------------------------------
• L’idée derrière Edmonds-Karp :
– 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 !– Commençons donc par nous intéresser à ceux qui sont
courts !
Grapherésiduel :
Nouveaugrapherésiduel :
s p
Le cheminaugmentant !
Certains arcsde retour !
s p
Certains arcsaller !
Tous les arcsde retour !
. . .
. . .
23 février 2007 Cours de graphes 4 - Intranet 71
V A R I A N T E S
Variantes-----------------------------------------------------------------
23 février 2007 Cours de graphes 4 - Intranet 72
m
1
Variantes-----------------------------------------------------------------
• Réseau de flot multi-sources, multi-puits :
• Ce n’est plus le même problème, si s doit envoyer à p !
s1
sn
p
p
S P Avec des capacitésassez grandes pour
les arcs rouges !
i i
n
s1
sn
p
p
1 Ensuite, nous pouvonsfaire dépendre la capacitéde la couleur (encoreappelé multi-capacités) !
23 février 2007 Cours de graphes 4 - Intranet 73
Synthèse-----------------------------------------------------------------
• Problèmes de flots.
• Théorème du Max-flow – Min-cut.
• Algos de Ford-Fulkerson et Edmonds-Karp.
• Applications.
top related