Algorithmique des graphes
7 — Flots et applications (1)
Anthony Labarre
17 mars 2021
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Motivations
• On dispose de sources fabriquant divers produits ;
• On veut acheminer ces ressources vers des puits;
• On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;
• On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;
s1
s2
...
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
• On dispose de sources fabriquant divers produits ;
• On veut acheminer ces ressources vers des puits;
• On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;
• On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;
s1
s2
... sk
t1
t2
... tp
r´eseau
3
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Motivations
• On dispose de sources fabriquant divers produits ;
• On veut acheminer ces ressources vers des puits;
• On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;
• On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;
s1
s2
...
t1
t2
... r´eseau
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Motivations
• On dispose de sources fabriquant divers produits ;
• On veut acheminer ces ressources vers des puits;
• On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;
• On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;
s1
s2
... sk
t1
t2
... tp
r´eseau
5
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Applications
• Le probl`eme de flot maximum a des applications directes :
• acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .
• optimisation du trafic routier (cf. Waze) ;
• ... et un peu moins directes, d´evelopp´ees plus loin :
• calcul de chemins disjoints ;
• 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
Applications
• Le probl`eme de flot maximum a des applications directes :
• acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .
• optimisation du trafic routier (cf. Waze) ;
• ... et un peu moins directes, d´evelopp´ees plus loin :
• calcul de chemins disjoints ;
• calcul de couplages dans un graphe biparti ;
7
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Applications
• Le probl`eme de flot maximum a des applications directes :
• acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .
• optimisation du trafic routier (cf. Waze) ;
• ... et un peu moins directes, d´evelopp´ees plus loin :
• calcul de chemins disjoints ;
• 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
Applications
• Le probl`eme de flot maximum a des applications directes :
• acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .
• optimisation du trafic routier (cf. Waze) ;
• ... et un peu moins directes, d´evelopp´ees plus loin :
• calcul de chemins disjoints ;
• calcul de couplages dans un graphe biparti ;
9
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Applications
• Le probl`eme de flot maximum a des applications directes :
• acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .
• optimisation du trafic routier (cf. Waze) ;
• ... et un peu moins directes, d´evelopp´ees plus loin :
• calcul de chemins disjoints ;
• 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
Applications
• Le probl`eme de flot maximum a des applications directes :
• acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .
• optimisation du trafic routier (cf. Waze) ;
• ... et un peu moins directes, d´evelopp´ees plus loin :
• calcul de chemins disjoints ;
• calcul de couplages dans un graphe biparti ;
11
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´ec(u,v)≥0, avec :
• unesources (un sommet de degr´e entrant nul) ;
• unpuitst (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´ec(u,v)≥0, avec :
• unesources (un sommet de degr´e entrant nul) ;
• unpuitst (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.
13
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´ec(u,v)≥0, avec :
• unesources (un sommet de degr´e entrant nul) ;
• unpuitst (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´ec(u,v)≥0, avec :
• unesources (un sommet de degr´e entrant nul) ;
• unpuitst (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.
15
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´ec(u,v)≥0, avec :
• unesources (un sommet de degr´e entrant nul) ;
• unpuitst (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´ec(u,v)≥0, avec :
• unesources (un sommet de degr´e entrant nul) ;
• unpuitst (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.
17
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´ec(u,v)≥0, avec :
• unesources (un sommet de degr´e entrant nul) ;
• unpuitst (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 :
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´ec(u,v)≥0, avec :
• unesources (un sommet de degr´e entrant nul) ;
• unpuitst (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.
19
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
Conservation
entrant 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
Conservation
entrant sortant
a 12 12
b 12 12
c 19 19
d 11 11
s 0 19
t 19 0
21
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
Conservation
entrant 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
Conservation
entrant sortant
a 12 12
b 12 12
c 19 19
d 11 11
s 0 19
t 19 0
23
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 c
t 11/16
1/4
12/12
4/9 7/7
15/20
Conservation
entrant sortant
a 12 12
b 12 12
c 19 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
• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.
• De nombreux algorithmes existent :
• lam´ethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;
• l’algorithme de Dinitz ;
• les pr´eflots (voir [1]) ;
• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;
25
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Probl` eme du flot maximum
• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.
• De nombreux algorithmes existent :
• lam´ethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;
• l’algorithme de Dinitz ;
• les pr´eflots (voir [1]) ;
• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Probl` eme du flot maximum
• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.
• De nombreux algorithmes existent :
• lam´ethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;
• l’algorithme de Dinitz ;
• les pr´eflots (voir [1]) ;
• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;
27
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Probl` eme du flot maximum
• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.
• De nombreux algorithmes existent :
• lam´ethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;
• l’algorithme de Dinitz ;
• les pr´eflots (voir [1]) ;
• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Probl` eme du flot maximum
• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.
• De nombreux algorithmes existent :
• lam´ethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;
• l’algorithme de Dinitz ;
• les pr´eflots (voir [1]) ;
• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;
29
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
Probl` eme du flot maximum
• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.
• De nombreux algorithmes existent :
• lam´ethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;
• l’algorithme de Dinitz ;
• les pr´eflots (voir [1]) ;
• Le meilleur `a l’heure actuelle est celui de James Orlin [2]
(2013), en O(|V||A|) ;
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
• 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 ;
• La m´ethode se termine quand il n’existe plus de chemin augmentant ;
• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
31
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
• 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 ;
• La m´ethode se termine quand il n’existe plus de chemin augmentant ;
• 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
• 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 ;
• La m´ethode se termine quand il n’existe plus de chemin augmentant ;
• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
33
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
• 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 ;
• La m´ethode se termine quand il n’existe plus de chemin augmentant ;
• 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
• 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 ;
• La m´ethode se termine quand il n’existe plus de chemin augmentant ;
• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;
35
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
• 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 ;
• La m´ethode se termine quand il n’existe plus de chemin augmentant ;
• 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 flot G.
Sortie :un flot maximum pour G.
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, r´eseau = r´esiduel 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;
37
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}.
39
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}.
41
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}.
43
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 c
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
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
5
11
3 4
5
5
8
11
1
5
45
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 c
t
12
4 7 15 3
5 11
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
5 11
3 4
5
5
8
11
1
5
47
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 c
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
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
49
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 c
t 12
4 7 15
3 511 3 4 5
5
8
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
51
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 c
t 12
4
7 15 3
511 3 4
5 5
8
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
53
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
55
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
• Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;
• On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;
• Attention : les arcs deP appartiennent au r´esiduel Gf !
• 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
• Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;
• On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;
• Attention : les arcs deP appartiennent au r´esiduel Gf !
• Cela signifie que bien que|f|augmente, f peutdiminuersur certains arcs du r´eseau G;
57
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
• Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;
• On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;
• Attention : les arcs deP appartiennent au r´esiduel Gf !
• 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
• Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;
• On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;
• Attention : les arcs deP appartiennent au r´esiduel Gf !
• Cela signifie que bien que|f|augmente, f peutdiminuersur certains arcs du r´eseau G;
59
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp
• 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 ;
• Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;
• Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin
augmentant ;
• 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
• 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 ;
• Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;
• Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin
augmentant ;
• Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;
61
Introduction Les bases La m´ethode de Ford-Fulkerson Coupes minimum Complexit´e de l’algorithme d’Edmonds-Karp
L’algorithme d’Edmonds-Karp
• 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 ;
• Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;
• Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin
augmentant ;
• 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
• 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 ;
• Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;
• Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin
augmentant ;
• Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;
63
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
13
4
12 9 14
7
4 4
12
128
4
12 9 7
4 4
4 12
128 9 10
4
4
12
9 7
4 11
4 12
191 2 3
11
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
12/16 13
4
12/12 9 14
7
4 12/20 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20 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
t 16
13
4
12 9 14
7
4 20
13
4
12 9 14
7
4 4
12
128
4
12 9 7
4 4
4 12
128 9 10
4
4
12
9 7
4 11
4 12
191 2 3
11
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
12/16 13
4
12/12 9 14
7
4 12/20 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20 12/16
11/13
4
12/12 9 11/14
7/7
4/4 19/20
Gf G
65
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
13
4
12 9 14
7
4 4
12
128
4
12 9 7
4 4
4 12
128 9 10
4
4
12
9 7
4 11
4 12
191 2 3
11
s
a
b
c
d
t
16 13
4
12 9 14
7
4 20
12/16 13
4
12/12 9 14
7
4 12/20
12/16 4/13
4
12/12 9 4/14
7
4/4 12/20 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
t
16 13
4
12 9 14
7
4 20
13
4
12 9 14
7
4 4
12
128
4
12 9 7
4 4
4 12
128 9 10
4
4
12
9 7
4 11
4 12
191 2 3
11
s
a
b
c
d
t
16 13
4
12 9 14
7
4 20
12/16 13
4
12/12 9 14
7
4 12/20
12/16 4/13
4
12/12 9 4/14
7
4/4 12/20 12/16
11/13
4
12/12 9 11/14
7/7
4/4 19/20
Gf G
67
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
13
4
12 9 14
7
4 4
12
128
4
12 9 7
4 4
4 12
128 9 10
4
4
12
9 7
4 11
4 12
191 2 3
11
s
a
b
c
d
t
16 13
4
12 9 14
7
4 20
12/16 13
4
12/12 9 14
7
4 12/20
12/16 4/13
4
12/12 9 4/14
7
4/4 12/20 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
t
16 13
4
12 9 14
7
4 20
13
4
12 9 14
7
4 4
12
128
4
12 9 7
4 4
4 12
128 9 10
4
4
12
9 7
4 11
4 12
191 2 3
11
s
a
b
c
d
t
16 13
4
12 9 14
7
4 12/16 20
13
4
12/12 9 14
7
4 12/20
12/16 4/13
4
12/12 9 4/14
7
4/4 12/20
12/16 11/13
4
12/12 9 11/14
7/7
4/4 19/20
Gf G
69