Flots et applications (1)
Algorithmique des graphes
Anthony Labarre
6 avril 2020
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Motivations
I On dispose de sources fabriquant divers produits ;
I On veut acheminer ces ressources vers des puits;
I On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;
I On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;
s1
s2
... sk
t1
t2
... tp
r´eseau
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Motivations
I On dispose de sources fabriquant divers produits ; I On veut acheminer ces ressources vers des puits;
I On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;
I On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;
s1
s2
... sk
t1
t2
... tp
r´eseau
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Motivations
I On dispose de sources fabriquant divers produits ; I On veut acheminer ces ressources vers des puits;
I On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;
I On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;
s1
s2
... sk
t1
t2
... tp
r´eseau
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Motivations
I On dispose de sources fabriquant divers produits ; I On veut acheminer ces ressources vers des puits;
I On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;
I On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;
s1
s2
... sk
t1
t2
... tp
r´eseau
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Applications
I Le probl`eme de flot maximum a des applications directes : I acheminement de produits vers des destinations en maximisant
la quantit´e, le profit, . . .
I optimisation du trafic routier (cf. Waze) ;
I ... et un peu moins directes, d´evelopp´ees plus loin : I calcul de chemins disjoints ;
I calcul de couplages dans un graphe biparti ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux de flot
Unr´eseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´e c(u,v)≥0, avec :
I unesource s (un sommet de degr´e entrant nul) ; I unpuits t (un sommet de degr´e sortant nul).
On suppose que tous les autres sommets appartiennent `a un chemin des`at.
Exemple 1
s
a
b
c
d
t 16
13
4
12
9
14
7
4 20
Hypoth`eses suppl´ementaires :
1. toutes lescapacit´eset tous lesflotssont entiers ; 2. les arcs du r´eseau n’existent que dans un seul sens.
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux de flot
Unr´eseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´e c(u,v)≥0, avec :
I unesource s (un sommet de degr´e entrant nul) ; I unpuits t (un sommet de degr´e sortant nul).
On suppose que tous les autres sommets appartiennent `a un chemin des`at.
Exemple 1
s
a
b
c
d
t 16
13
4
12
9
14
7
4 20
Hypoth`eses suppl´ementaires :
1. toutes lescapacit´eset tous lesflotssont entiers ; 2. les arcs du r´eseau n’existent que dans un seul sens.
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux de flot
Unr´eseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´e c(u,v)≥0, avec :
I unesource s (un sommet de degr´e entrant nul) ; I unpuits t (un sommet de degr´e sortant nul).
On suppose que tous les autres sommets appartiennent `a un chemin des`at.
Exemple 1
s
a
b
c
d
t 16
13
4
12
9
14
7
4 20
Hypoth`eses suppl´ementaires :
1. toutes lescapacit´eset tous lesflotssont entiers ;
2. les arcs du r´eseau n’existent que dans un seul sens.
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux de flot
Unr´eseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´e c(u,v)≥0, avec :
I unesource s (un sommet de degr´e entrant nul) ; I unpuits t (un sommet de degr´e sortant nul).
On suppose que tous les autres sommets appartiennent `a un chemin des`at.
Exemple 1
s
a
b
c
d
t 16
13
4
12
9
14
7
4 20
Hypoth`eses suppl´ementaires :
1. toutes lescapacit´eset tous lesflotssont entiers ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Flots
Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :
1. ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e
2. ∀ u ∈V \ {s,t}:P
v∈V f(v,u) =P
v∈V f(u,v) ; conservation
3. f(u,v) = 0 si (u,v)6∈A. Lavaleurdu flot est |f|=P
v∈V f(s,v) =P
v∈V f(v,t). Exemple 2 (x/y : flot x, capacit´ey)
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
flot entrant flot sortant
a 12 12
b 12 12
c 19 19
d 11 11
s 0 19
t 19 0
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Flots
Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :
1. ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e
2. ∀ u∈V \ {s,t}:P
v∈V f(v,u) =P
v∈V f(u,v) ; conservation
3. f(u,v) = 0 si (u,v)6∈A. Lavaleurdu flot est |f|=P
v∈V f(s,v) =P
v∈V f(v,t). Exemple 2 (x/y : flot x, capacit´ey)
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
flot entrant flot sortant
a 12 12
b 12 12
c 19 19
d 11 11
s 0 19
t 19 0
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Flots
Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :
1. ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e
2. ∀ u∈V \ {s,t}:P
v∈V f(v,u) =P
v∈V f(u,v) ; conservation
3. f(u,v) = 0 si (u,v)6∈A.
Lavaleurdu flot est |f|=P
v∈V f(s,v) =P
v∈V f(v,t). Exemple 2 (x/y : flot x, capacit´ey)
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
flot entrant flot sortant
a 12 12
b 12 12
c 19 19
d 11 11
s 0 19
t 19 0
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Flots
Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :
1. ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e
2. ∀ u∈V \ {s,t}:P
v∈V f(v,u) =P
v∈V f(u,v) ; conservation
3. f(u,v) = 0 si (u,v)6∈A.
Lavaleurdu flot est |f|=P
v∈V f(s,v) =P
v∈V f(v,t).
Exemple 2 (x/y : flot x, capacit´ey)
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
flot entrant flot sortant
a 12 12
b 12 12
c 19 19
d 11 11
s 0 19
t 19 0
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Flots
Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :
1. ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e
2. ∀ u∈V \ {s,t}:P
v∈V f(v,u) =P
v∈V f(u,v) ; conservation
3. f(u,v) = 0 si (u,v)6∈A.
Lavaleurdu flot est |f|=P
v∈V f(s,v) =P
v∈V f(v,t).
Exemple 2 (x/y : flot x, capacit´ey)
s
a
b
c
d
t 11/16
8/13 1/4
12/12
4/9
11/14
7/7
4/4 15/20
flot entrant flot sortant
a 12 12
b 12 12
c 19 19
d 11 11
s 0 19
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Probl` eme du flot maximum
I Le probl`eme du flot maximum est de trouver, pour un r´eseau de flot G donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flot f0 sur G, on a|f| ≥ |f0|.
I De nombreux algorithmes existent :
I lam´ethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ; I l’algorithme de Dinitz ;
I les pr´eflots (voir [1]) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Pr´ esentation g´ en´ erale de la m´ ethode
I Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :
1. on cherche unchemin augmentantdans unr´eseau r´esiduel Gf; 2. on augmente au maximumf sur les arcs de ce chemin ; 3. on met `a jour Gf ;
I La m´ethode se termine quand il n’existe plus de chemin augmentant ;
I Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Pr´ esentation g´ en´ erale de la m´ ethode
I Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :
1. on cherche unchemin augmentantdans unr´eseau r´esiduel Gf;
2. on augmente au maximumf sur les arcs de ce chemin ; 3. on met `a jour Gf ;
I La m´ethode se termine quand il n’existe plus de chemin augmentant ;
I Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Pr´ esentation g´ en´ erale de la m´ ethode
I Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :
1. on cherche unchemin augmentantdans unr´eseau r´esiduel Gf; 2. on augmente au maximumf sur les arcs de ce chemin ;
3. on met `a jour Gf ;
I La m´ethode se termine quand il n’existe plus de chemin augmentant ;
I Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Pr´ esentation g´ en´ erale de la m´ ethode
I Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :
1. on cherche unchemin augmentantdans unr´eseau r´esiduel Gf; 2. on augmente au maximumf sur les arcs de ce chemin ; 3. on met `a jourGf ;
I La m´ethode se termine quand il n’existe plus de chemin augmentant ;
I Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Pr´ esentation g´ en´ erale de la m´ ethode
I Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :
1. on cherche unchemin augmentantdans unr´eseau r´esiduel Gf; 2. on augmente au maximumf sur les arcs de ce chemin ; 3. on met `a jourGf ;
I La m´ethode se termine quand il n’existe plus de chemin augmentant ;
I Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Pr´ esentation g´ en´ erale de la m´ ethode
I Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :
1. on cherche unchemin augmentantdans unr´eseau r´esiduel Gf; 2. on augmente au maximumf sur les arcs de ce chemin ; 3. on met `a jourGf ;
I La m´ethode se termine quand il n’existe plus de chemin augmentant ;
I Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Pseudocode de la m´ ethode
Algorithme 1 :FordFulkerson(G) Entr´ees :un r´eseau de flotG.
Sortie :un flot maximum pourG.
1 flot← tableau associatif (cl´es =G.arcs(), valeurs = 0);
2 source← unique sommet de degr´e entrant nul deG;
3 puits← unique sommet de degr´e sortant nul deG;
4 Gf ← G; // au d´epart, le r´eseau et son r´esiduel co¨ıncident 5 chemin← CheminAugmentant(Gf, source, puits);
6 tant quechemin 6=nil faire
7 AugmenterFlot(flot, chemin);
8 MettreAJourR´esiduel(G,Gf, chemin.arcs(), flot);
9 chemin← CheminAugmentant(Gf, source, puits);
10 renvoyer flot;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels
D´efinition 1
SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est
cf(u,v) =
c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,
0 sinon .
D´efinition 2
SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle. Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels
D´efinition 1
SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est
cf(u,v) =
c(u,v)−f(u,v) si (u,v)∈A,
f(v,u) si (v,u)∈A,
0 sinon .
D´efinition 2
SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle. Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels
D´efinition 1
SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est
cf(u,v) =
c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,
0 sinon .
D´efinition 2
SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle. Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels
D´efinition 1
SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est
cf(u,v) =
c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,
0 sinon .
D´efinition 2
SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle. Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels
D´efinition 1
SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est
cf(u,v) =
c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,
0 sinon .
D´efinition 2
SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle. Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d
t
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d 11 t
5
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d 5 t
11 5
8
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d
t 12
5 11 5
8
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d
t 12
511 3 5
8
1
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d
t 12
3 511 3
5
8
11
1
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d
t 12
3 511 3 4 5
8
11
1
5
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d
t 12
15 3
511 3 4
5 5
8
11
1
5
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d
t 12
7 15 3
511 3 4
5 5
8
11
1
5
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
R´ eseaux r´ esiduels : exemple
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20 G :
Gf : s
a
b
c
d
t 12
4 7 15 3
511 3 4
5 5
8
11
1
5
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Chemins augmentants
Unchemin augmentantP est un chemin simple (sans r´ep´etition de sommets) des `at dans le r´eseau r´esiduelGf. Sacapacit´e minimaleest cf(P) = min(u,v)∈A(P)cf(u,v).
Exemple 3
s
a
b
c
d
t 12
4 7 15 3
511 3 4
5 5
8
11
1
5
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Chemins augmentants
Unchemin augmentantP est un chemin simple (sans r´ep´etition de sommets) des `at dans le r´eseau r´esiduelGf. Sacapacit´e minimaleest cf(P) = min(u,v)∈A(P)cf(u,v).
Exemple 3
s
a
b
c
d
t 12
4 7 15 3
511 3 4
5 5
8
11
1
5
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Augmentation du flot par les chemins augmentants
I Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;
I On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;
I Attention : les arcs deP appartiennent au r´esiduel Gf ! I Cela signifie que bien que|f|augmente, f peutdiminuersur
certains arcs du r´eseau G;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Augmentation du flot par les chemins augmentants
I Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;
I On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;
I Attention : les arcs deP appartiennent au r´esiduel Gf ! I Cela signifie que bien que|f|augmente, f peutdiminuersur
certains arcs du r´eseau G;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Augmentation du flot par les chemins augmentants
I Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;
I On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;
I Attention : les arcs deP appartiennent au r´esiduel Gf !
I Cela signifie que bien que|f|augmente, f peutdiminuersur certains arcs du r´eseau G;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Augmentation du flot par les chemins augmentants
I Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;
I On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;
I Attention : les arcs deP appartiennent au r´esiduel Gf ! I Cela signifie que bien que|f|augmente, f peutdiminuersur
certains arcs du r´eseau G;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp
I On parle dem´ethode (et non d’algorithme) de Ford-Fulkerson car aucune pr´ecision n’est donn´ee sur la mani`ere de choisir le chemin augmentant ;
I Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;
I Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin
augmentant ;
I Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp
I On parle dem´ethode (et non d’algorithme) de Ford-Fulkerson car aucune pr´ecision n’est donn´ee sur la mani`ere de choisir le chemin augmentant ;
I Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;
I Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin
augmentant ;
I Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp
I On parle dem´ethode (et non d’algorithme) de Ford-Fulkerson car aucune pr´ecision n’est donn´ee sur la mani`ere de choisir le chemin augmentant ;
I Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;
I Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin
augmentant ;
I Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp
I On parle dem´ethode (et non d’algorithme) de Ford-Fulkerson car aucune pr´ecision n’est donn´ee sur la mani`ere de choisir le chemin augmentant ;
I Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;
I Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin
augmentant ;
I Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
s
a
b
c
d
t 12/16
13
4
12/12 9 14
7
4 12/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d
t 13
4
12 9 14
7
4 4
12
128
s
a
b
c
d
t 12/16
13
4
12/12 9 14
7
4 12/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d
t 13
4
12 9 14
7
4 4
12
128
s
a
b
c
d
t 12/16
13
4
12/12 9 14
7
4 12/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d
t 13
4
12 9 14
7
4 4
12
128
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d 4 t
12 9 7
4 4
4 12
128 9 10
4
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d 4 t
12 9 7
4 4
4 12
128 9 10
4
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d 4 t
12 9 7
4 4
4 12
128 9 10
4
s
a
b
c
d
t 12/16
11/13 4
12/12 9 11/14
7/7
4/4 19/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d 4 t
12
9 7
4 11
4 12
191 2 3
11
s
a
b
c
d
t 12/16
11/13 4
12/12 9 11/14
7/7
4/4 19/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp en action
Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.
s
a
b
c
d 4 t
12
9 7
4 11
4 12
191 2 3
11
s
a
b
c
d
t 12/16
11/13 4
12/12 9 11/14
7/7
4/4 19/20
Gf G
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Coupes
La correction de la m´ethode de Ford-Fulkerson (quelle que soit la mani`ere dont on choisit le chemin augmentant) d´ecoule d’un lien avec la notion decoupe.
D´efinition 3
Unecoupe (S,T) dans un r´eseau de flot avec sources et puitst est une partition de ses sommets en deux ensemblesS et T tels ques ∈S ett ∈T.
Exemple 4
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20
S T
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Coupes
La correction de la m´ethode de Ford-Fulkerson (quelle que soit la mani`ere dont on choisit le chemin augmentant) d´ecoule d’un lien avec la notion decoupe.
D´efinition 3
Unecoupe (S,T) dans un r´eseau de flot avec sources et puits t est une partition de ses sommets en deux ensemblesS et T tels ques ∈S ett ∈T.
Exemple 4
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20
S T
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Coupes
La correction de la m´ethode de Ford-Fulkerson (quelle que soit la mani`ere dont on choisit le chemin augmentant) d´ecoule d’un lien avec la notion decoupe.
D´efinition 3
Unecoupe (S,T) dans un r´eseau de flot avec sources et puits t est une partition de ses sommets en deux ensemblesS et T tels ques ∈S ett ∈T.
Exemple 4
s
a
b
c
d
t 11/16
8/13 1/4
12/12 4/9
11/14
7/7
4/4 15/20
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Capacit´ e et flot associ´ es ` a une coupe
Soit (S,T) une coupe ;
1. sonflot associ´eest le flot “net” dans les arcs entreS `aT : f(S,T) =X
u∈S
X
v∈T
f(u,v)−X
u∈S
X
v∈T
f(v,u).
2. sacapacit´eest la somme des capacit´es des arcs deS`aT : c(S,T) =X
u∈S
X
v∈T
c(u,v).
3. (S,T) estminimumsi pour toute coupe (S0,T0) du r´eseau, on a c(S,T)≤c(S0,T0).
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
S T
f(S,T) =12+11−4= 19 c(S,T) =12+14= 26
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Capacit´ e et flot associ´ es ` a une coupe
Soit (S,T) une coupe ;
1. sonflot associ´eest le flot “net” dans les arcs entreS `aT : f(S,T) =X
u∈S
X
v∈T
f(u,v)−X
u∈S
X
v∈T
f(v,u).
2. sacapacit´eest la somme des capacit´es des arcs deS`aT : c(S,T) =X
u∈S
X
v∈T
c(u,v).
3. (S,T) estminimumsi pour toute coupe (S0,T0) du r´eseau, on a c(S,T)≤c(S0,T0).
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
S T
f(S,T) =12+11−4= 19 c(S,T) =12+14= 26
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Capacit´ e et flot associ´ es ` a une coupe
Soit (S,T) une coupe ;
1. sonflot associ´eest le flot “net” dans les arcs entreS `aT : f(S,T) =X
u∈S
X
v∈T
f(u,v)−X
u∈S
X
v∈T
f(v,u).
2. sacapacit´eest la somme des capacit´es des arcs deS`aT : c(S,T) =X
u∈S
X
v∈T
c(u,v).
3. (S,T) estminimumsi pour toute coupe (S0,T0) du r´eseau, on a c(S,T)≤c(S0,T0).
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
S T
f(S,T) =12+11−4= 19 c(S,T) =12+14= 26
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Capacit´ e et flot associ´ es ` a une coupe
Soit (S,T) une coupe ;
1. sonflot associ´eest le flot “net” dans les arcs entreS `aT : f(S,T) =X
u∈S
X
v∈T
f(u,v)−X
u∈S
X
v∈T
f(v,u).
2. sacapacit´eest la somme des capacit´es des arcs deS`aT : c(S,T) =X
u∈S
X
v∈T
c(u,v).
3. (S,T) estminimumsi pour toute coupe (S0,T0) du r´eseau, on a c(S,T)≤c(S0,T0).
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
f(S,T) =12+11−4= 19 c(S,T) =12+14= 26
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Capacit´ e et flot associ´ es ` a une coupe
Soit (S,T) une coupe ;
1. sonflot associ´eest le flot “net” dans les arcs entreS `aT : f(S,T) =X
u∈S
X
v∈T
f(u,v)−X
u∈S
X
v∈T
f(v,u).
2. sacapacit´eest la somme des capacit´es des arcs deS`aT : c(S,T) =X
u∈S
X
v∈T
c(u,v).
3. (S,T) estminimumsi pour toute coupe (S0,T0) du r´eseau, on a c(S,T)≤c(S0,T0).
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
f(S,T) =12+11−4= 19
c(S,T) =12+14= 26
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Capacit´ e et flot associ´ es ` a une coupe
Soit (S,T) une coupe ;
1. sonflot associ´eest le flot “net” dans les arcs entreS `aT : f(S,T) =X
u∈S
X
v∈T
f(u,v)−X
u∈S
X
v∈T
f(v,u).
2. sacapacit´eest la somme des capacit´es des arcs deS`aT : c(S,T) =X
u∈S
X
v∈T
c(u,v).
3. (S,T) estminimumsi pour toute coupe (S0,T0) du r´eseau, on a c(S,T)≤c(S0,T0).
s
a
b
c
d
t 11/16
8/13
1/4
12/12
4/9
11/14
7/7
4/4 15/20
f(S,T) =12+11−4= 19 c(S,T) =12+14= 26