Академический Документы
Профессиональный Документы
Культура Документы
des
"1
Lélia Blin Algorithmique des graphes
Plan
Réseaux de transport!
Notions de réseaux de transport et de flot, !
Flots maxima
"2
Réseaux de Théorie
des
graphes
transport Cours de Lélia Blin!
3eme année de Licence
"3
Lélia Blin Algorithmique des graphes
Graphe orienté !
Chaque arc (u, v) ∈ A a une capacité c(u, v) ≥ 0.!
"4
Lélia Blin Algorithmique des graphes
Source et puits
Dans un réseau de transport, deux sommets ont un statut
particulier :!
La source s et le puits t. !
Chaque sommet se trouve sur un certain chemin reliant
la source au puits.!
Pour tout sommet v ∈ S, il existe un chemin depuis s
passant par v et allant à t. !
Le graphe est donc connexe et |A| ≥|S| − 1.
"5
Lélia Blin Algorithmique des graphes
26.1(problème
Exemple Réseaux dedu
transport
transporteur Max & Fils)
Reims Dijon
v1 12 v3
20 1 6
Lille 16 Lyon 11/
s t s
10
7
4
9
13 8/1
4 3
v2 v4
14
Paris Nevers
(a)
L’usine de Lille est la source s et l’entrepôt de Lyon est le puits t.!
Le trajet traverse plusieurs villes intermédiaires, mais on ne peut convoyer plus
Figure
de c(u, v) rouleaux26.1
entre les(a) Unu etréseau
villes v! de transport G = (S, A) pour le pro
L’usine
Figure (a): chaque de Lille
arc est est la
étiqueté source
avec s et l’entrepôt de Lyon est le puits
sa capacité.
intermédiaires, mais on"6 ne peut convoyer plus de c(u, v) roule
Lélia Blin Algorithmique des graphes
port 627
Exemple
Dijon
v3 v1 12/12 v3
20 15/
Lyon 1 /16 20
1
t s t
1/4
7/7
10
7
9
4/
8/1
v4
4 3
v2 v4 4/4
11/14
Nevers
(b)
Figure
u de transport G =(b):
(S, A)Unpourflotlef de G de valeur
problème |f| = 19.!Max & Fils.
du transporteur
e s et l’entrepôt
Seuls de
lesLyon
flotsestpositifs t. réseau
le puitsdu Le trajetsont
traverse plusieurs
montrés. ! villes
e peut convoyer plus>de
Si f(u,v) 0, c(u , v)(u,v)
l’arc rouleaux entre les par
est étiqueté u et v. Chaque
villesf(u,v)/c(u,v). !
pacité. (b) Un flot f de G de valeur |f | = 19. Seuls les flots positifs du
La notation slash sert simplement à séparer le flot et la capacité !
u, v) > 0, l’arc (u, v) est étiqueté par f(u, v)/c(u, v). (La notation slash
le flot et laSi f(u, v) ;0,elle
capacité l’arc (u, v) est
n’indique pas étiqueté uniquement
une division) Si f(u, v) avec sa capacité.
0, l’arc
ment avec sa capacité. "7
Lélia Blin Algorithmique des graphes
Flots
Soit G = (S, A) un réseau de transport avec une fonction de
capacité c. !
Le sommet s est la source du réseau et le sommet t le puits. !
Un flot de G est une fonction à valeurs réelles f : S × S → R
qui satisfait aux trois propriétés suivantes :!
Contrainte de capacité !
Symétrie!
Conservation du flot
"8
t. Par commodité,
Lélia Blin
on suppose que chaque sommet se
Algorithmique des graphes
tro
eliant la source au puits. Autrement dit, pour tout somme
s " v " t.Contrainte de capacité
Le graphe est donc connexe et |A| ! |S| −
un exemple de réseau de transport.
ésormais définir les flots plus formellement. Soit G = (S
avec une fonction de capacité c. Soit s la source du résea
est une fonction à valeurs réelles f : S × S → R qui satis
antes :
acité : Pour tout u, v ∈ S, on exige f (u, v) # c(u, v).
ut u, v ∈ S, on exige f (u, v) = −f (v, u).
ot : Pour tout u ∈ S − {s, t}, on exige
!
f (u, v) = 0 . "9
26.1Lélia
montre
Blin un exemple de réseau de transport.
Algorithmique des graphes
"11
Figure 26.1 (a) Un réseau de transport G = (S, A) pour le problème du transporteur Max & F
Lélia
L’usine Lille est la source s et l’entrepôt de Lyon est le puits t.Algorithmique
deBlin des graphes
Le trajet traverse plusieurs vi
intermédiaires, mais on ne peut convoyer plus de c(u, v) rouleaux entre les villes u et v. Chaq
Flux
arc est étiqueté avec sa capacité. (b) Un flot f de G de valeur |f | = 19. Seuls les flots positifs
réseau sont montrés. Si f(u, v) > 0, l’arc (u, v) est étiqueté par f(u, v)/c(u, v). (La notation sla
sert simplement à séparer le flot et la capacité ; elle n’indique pas une division) Si f(u, v) 0, l’
(u, v) est étiqueté uniquement avec sa capacité.
La quantité f (u, v), qui peut être positive, nulle ou négative, est
appelée flux du sommet u au sommet v. !
La quantité f (u, v), qui peut être positive, nulle ou négative, est appelée flux du so
met u La
au sommet
valeur d’un valeur
v. Laflot d’un flotpar
f est définie f est définie par
!
|f | = f (s, v) , (1) (26
v∈S
Autrement dit, le flot total partant de la source. !
autrement
Ici, la dit, le flot|·|
notation total partantladevaleur
indique la source. (Ici,pas
de flot, la une
notation
valeur indique la vale
|·| absolue
de flot, pascardinal
ni un une valeur absolue ni !un cardinal d’ensemble). Dans le problème du fl
d’ensemble.
maximum,
Dans leonproblème
part d’un du
réseau
flotde flot G de source
maximum, on parts et de puits
d’un t etde
réseau onflot
souhaite
G trouv
un flot de valeur maximume.
de source s et de puits t et on souhaite trouver un flot de valeur
maximum.
Avant de voir un exemple de problème de flot, arrêtons-nous brièvement sur
trois propriétés de flot. La contrainte de
"12 capacité dit simplement que le flux d’
Lélia Blin Algorithmique des graphes
"13
Avant de voir un exemple de problème de flot, arrêtons-nous brièvement sur les
Algorithmique des graphes
Lélia Blin
ois propriétés de flot. La contrainte de capacité dit simplement que le flux d’un
"14
Lélia Blin Algorithmique des graphes
Le flux positif
! total sortant d’un sommet est défini symétriquement. Le flux net tot
n un sommet est égal
Le flux positif totalau flux positif
sortant total est
d’un sommet sortant
défini du sommet, moins
symétriquement. ! le flux posi
otal entrant dans
Le flux le sommet.
net total Une est
en un sommet interprétation de latotal
égal au flux positif propriété desommet,
sortant du conservation d
flux est que
moinsle leflux
fluxpositif
positif total entrantdans
total entrant dans un sommet autre que la source ou le pu
le sommet.
oit être égal au flux positif total sortant du sommet. Cette propriété, selon laquel
e flux net total en un sommet doit valoir"150, porte souvent le nom informel de « flu
Lélia Blin Algorithmique des graphes
Interprétation
"16
Lélia Blin Algorithmique des graphes
"17
Lélia Blin Algorithmique des graphes
"18
Lélia Blin Algorithmique des graphes
"19
Lélia Blin Algorithmique des graphes
Max & Fils n’est pas concerné par le temps requis pour
acheminer un rouleau donné entre la fabrique et
l’entrepôt ;!
Il s’occupe uniquement de faire sortir p rouleaux par
jour de l’usine et de faire arriver p rouleaux par jour à
l’entrepôt.
"20
Lélia Blin Algorithmique des graphes
"21
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
16 16 20
Lille Lyon 11/
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
Figure 26.1 (a) Un réseau de transport G = (S"2,2A) pour le problème du transporteur Max & Fils.
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
16 16 20
Lille Lyon 11/
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
"23
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
16 16 20
Lille Lyon 11/
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
"24
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
16 16 20
Lille Lyon 11/
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
"25
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
Lille 16 Lyon 11/16 20
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
"26
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
Lille 16 Lyon 11/16 20
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
"27
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
Lille 16 Lyon 11/16 20
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
"28
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
Lille 16 Lyon 11/16 20
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
"29
Lélia Blin Algorithmique des graphes
Reims Dijon
v1 12 v3 v1 12/12 v3
20 15/
Lille 16 Lyon 11/16 20
s t s t
1/4
7/7
10
10
7
4
9
9
4/
13 8/1
v2 v4
4 3
v2 v4 4/4
14 11/14
Paris Nevers
(a) (b)
"30
Lélia Blin Algorithmique des graphes
Annulation
"31
Lélia Blin Algorithmique des graphes
s1
Un problème de flot maximum peut 10
comporter plusieurs sources et puits. !
12
L’entreprise Max & Fils, par s2
3
t1
exemple, pourrait en réalité posséder ! 5
15
∞
un ensemble {s1, s2, . . . , sm} de m 8
usines ! 6 ∞
s3 t2 s
et un ensemble {t1, t2, . . . , tn} de n 20
14
entrepôts.!
∞
7
13
Heureusement, ce problème n’est s4 t3
18
∞
pas plus difficile que celui à source et 11
puits uniques. 2
s5
(a)
"32
Lélia Blin Algorithmique des graphes
630
Réduction 26 • Flot maximum
s1 s1
Le problème du flot10 maximum 10
∞
s t s2 t1
peut être réduit à un problème
2
15
1
15
5 5
de transport maximum
∞
∞
8 8
6 ∞ 6 ∞
ordinaire. ! s 3
0
t 2 s s3 t2 t
2 20
La figure(b) montre comment le
14 14
∞
7 7
réseau (a) peuts être converti
4
13
t
en 3 s4
13
t3
18 18
∞
un réseau de transport
11 11
Figure 26.2 Conversion d’un problème à sources et puits multiples en un problème à source
et puits uniques. (a) Un réseau transport comportant cinq sources S = {s1 , s2 , s3 , s4 , s5 } et trois
puits T = {t1 , t2 , t3 }. (b) Un réseau
"33de transport équivalent avec une seule source et un seul puits.
Lélia Blin Algorithmique des graphes
Réduction
On ajoute une supersource s et un arc (s, si) de capacité !
c(s, si) = ∞ pour chaque i = 1, 2, . . . , m. !
On crée également un nouveau superpuits t et on ajoute un arc (ti, t) de capacité !
c(ti,t) = ∞ pour chaque i = 1, 2, . . . , n.!
Intuitivement, tout flot du réseau (a) correspond à un flot du réseau (b) et vice versa. !
La source unique s fournit autant de flot que désiré aux multiples sources si et le puits
unique t consomme 630 de la même façon autant de flot que désiré par
26 Flot les puits multiples ti.
maximum •
s1 s1
10 10
12 12
3 3
∞
s2 t1 s2 t1
15 15
5 5
∞
∞
8 8
6 ∞ 6 ∞
s3 t2 s s3 t2 t
20 20
14 14
∞
∞
7 7
13 13
s4 t3 s4 t3
18 18
∞
11 11
2 2
s5 s5
(a) "34 (b)
Lélia Blin Algorithmique des graphes
Réduction
Conversion d’un problème à sources multiples et puits multiples en un problème à source et puits
uniques. !
(a) Un réseau transport comportant cinq sources S = {s1,s2,s3,s4,s5} et trois puits T = {t1,t2,t3}. !
(b) Un réseau de transport équivalent avec une seule source et un seul puits. !
On ajoute une supersource s′ et un arc de capacité infinie partant de s′ et reliant chacune des
multiples sources. !
630 26 • Flot maximum
On ajoute également un superpuits t′ et un arc de capacité infinie partant de chacun des puits
initiaux et reliant t′.
s1 s1
10 10
12 12
3 3
∞
s2 t1 s2 t1
15 15
5 5
∞
∞
8 8
6 ∞ 6 ∞
s3 t2 s s3 t2 t
20 20
14 14
∞
∞
7 7
13 13
s4 t3 s4 t3
18 18
∞
11 11
2 2
s5 s5
(a) "35 (b)
Figure 26.2 Conversion d’un problème à sources et puits multiples en un problème à sou
Léliauniques.
Blin Algorithmique
(a) Un réseau transport comportant cinq sources S = {s1 , sdes graphes
et puits 2 , s3 , s4 , s5 } et tr
puits T = {t1 , t2 , t3 }. (b) Un réseau de transport équivalent avec une seule source et un seul pu
"37
Lélia Blin Algorithmique des graphes
Notation ensembliste
"38
Lélia Blin Algorithmique des graphes
Lemme 1
"39
f (Z, X) + f (Z, Y).
Lélia Blin Algorithmique des graphes
Application du lemme
travail avec la notation implicite, on peut démo
u flotdémontrer
total arrivant dans le puits ; c’est-à-dire,
Comme exemple de travail avec la notation implicite, on peut
que la valeur d’un flot est égale au flot total arrivant dans le
puits ; c’est-à-dire!
!
!
|f | = f (S, t) .
Cela paraît vrai intuitivement. !
itivement. En effet, d’après la conservation du
En effet, d’après la conservation du flot, tous les sommets autres que la
source et le puits ont un flux net total égal à zéro. !
source et le puits ont un flux net total égal à
La source a, par définition, un flux net total supérieur à 0 : !
il y a plus de flux positif qui part de la source qu’il n’y a de flux qui
ux net total supérieur à 0 : il y a plus de flux
arrive à la source.!
Pour le puits, c’est exactement l’inverse : !
a de flux qui arrive à la source. Pour le puits
le flux net total est négatif, car il y a plus de flux positif qui arrive au
puits qu’il n’y a de flux positif qui en part.
et total est négatif, car il y a plus de flux po
"40
Cela paraît vrai intuitivement. En effet, d’après la conservation du flot,
Lélia Blin Algorithmique des graphes
mets autres que la source et le puits ont un flux net total égal à zéro.
par définition, un flux net total supérieur à 0 : il y a plus de flux posit
Preuve
la source qu’il n’y a de flux qui arrive à la source. Pour le puits, c’es
l’inverse : le flux net total est négatif, car il y a plus de flux positif
puits qu’il n’y a de flux positif qui en part. Notre démonstration formel
comme suit :
|f | = f (s, S) (pardéfinition!
Par définition)
= f (S, S) − f (S − s, S) (d’après lemme
D’après lemme26.1, partie 3!
1 partie (3))
= −f (S − s, S) (d’après lemme
D’après lemme26.1, partie 1!
1 partie (1))
= f (S, S − s) (d’après lemme
D’après lemme26.1, partie 2!
1 partie (2))
= f (S, t) + f (S, S − s − t) (d’après lemme
D’après lemme26.1, partie 3!
1 partie (3))
= f (S, t) (d’après conservation
D’après conservation du flot) .
du flot!
Plus loin dans ce chapitre, nous généraliserons ce résultat (lemme 26.5)
Exercices
"41
Lélia Blin Algorithmique des graphes
"43
Lélia Blin Algorithmique des graphes
Méthode de Ford-Fulkerson
Cette partie présente la méthode de Ford-Fulkerson,
qui permet de résoudre le problème du flot maximum. !
Elle est appelé « méthode » plutôt que « algorithme »,
car elle comporte plusieurs implémentations de temps
d’exécution différents. !
La méthode de Ford-Fulkerson dépend de trois
concepts majeurs, qui transcendent la méthode et sont
applicables à de nombreux algorithmes et problèmes
de flot ;
"44
Lélia Blin Algorithmique des graphes
Méthode de Ford-Fulkerson
Ces trois concepts sont:!
Les réseaux résiduels, !
Les chemins améliorant !
Les coupes. !
Ces idées sont essentielles pour le théorème
important du flot maximum & coupe minimum
qui caractérise la valeur d’un flot maximum en
terme de coupes du réseau de transport.
"45
Lélia Blin Algorithmique des graphes
Méthode de Ford-Fulkerson
La méthode de Ford-Fulkerson est itérative. !
On commence avec f (u, v) = 0 pour tout u, v ∈ S, !
ce qui donne un flot initial de valeur 0. !
A chaque itération, on augmente la valeur de flot en trouvant un !
« chemin améliorant », !
qu’on peut voir simplement comme un chemin reliant la source
s au puits t le long duquel on peut augmenter la quantité de flot. !
On réitère ce processus jusqu’à ce que l’on ne trouve plus de
chemin améliorant. !
Le théorème du flot maximum & coupe minimum montre que ce
processus finit par engendrer un flot maximum.
"46
comme
Lélia Blin
un chemin reliant la sourceAlgorithmique
s au puits t le
des graphes
la quantité de flot. On réitère ce processus jusqu’à
chemin Méthode
améliorant.de
LeFord-Fulkerson
théorème du flot maximum &
processus finit par engendrer un flot maximum.
Réseaux résiduels
Intuitivement:!
Etant donné un réseau de transport et un flot, !
Le réseau résiduel est constitué des arcs qui
peuvent supporter un flot plus important.
"48
tourner f
Lélia Blin Algorithmique des graphes
Capacité résiduelle
ux résiduels
"50
Lélia Blin Algorithmique des graphes
"51
Lélia Blin Algorithmique des graphes
"52
cf (u, v) = c(u, v) − f (u, v) .
Lélia Blin Algorithmique des graphes
utrement dit, comme promis, chaque arc du réseau résiduel, ou arc résid
dmettre un flux strictement positif. La"53 figure 26.3(a) reprend le réseau de tr
Lélia Blin Algorithmique des graphes
Réseaux résiduels
"54
Lélia Blin Algorithmique des graphes
v1 12/12 v3 v1 12 v3
15/ 5
11 /16 20 5
11 15
4
s t s t
1/4
7/7
10
11
7
3
5
9
4/
5
8/1
3
v2 v4 4/4 8 v2
3
v4
4
11/14 11
(a) (b)
v1 12/12 v3 v1 12 v3
19/ 1
16 2 5
11/ 0
"55 11 19
s t s t
/4
/7
0
7
3
Lélia Blin Algorithmique des graphes
v1 12/12 v3 v1 12 v3
6 15/ 5 5
1 2
11/ 0
11 15
4
s t s t
1/4
7/7
10
11
7
3
5
9
4/
5
8/1
3
v2 v4 4/4 8 v2
3
v4
4
11/14 11
(a) (b)
v1 12/12 v3 v1 12 v3
6 19/ 5 1
1 20
11/
11 19
s t s t
1/4
7/7
10
11
7
3
1
9
9
12/
13
v2 v4 4/4 12
v2
3
v4
4
11/14 11
(c) (d)
Figure 26.3 (a) Le réseau de transport G et le flot f de la figure 26.1(b). (b) Le réseau résiduel
Gf avec le chemin améliorant p en gris ; sa capacité résiduelle est cf (p) = cf (v2 , v3 ) = 4. (c) Le flot
"56
de G après ajout le long de p de sa capacité résiduelle 4. (d) Le réseau résiduel induit par le flot
1
12/
Lélia13Blin
v2 v4 4/4 12
v2
3
Algorithmique
v4
4
des graphes
11/14 11
igure 26.3 (a) Le réseau de transport G et le flot f de la figure 26.1(b). (b) Le réseau résidue
Gf avec le chemin améliorant p en gris ; sa capacité résiduelle est cf (p) = cf (v2 , v3 ) = 4. (c) Le flot
e G après ajout le long de p de sa capacité résiduelle 4. (d) Le réseau résiduel induit par le flot
e (c). Les arcs de Af sont soit des arcs de A, soit leurs inverses.!
Si f(u,v)<c(u,v) pour un arc (u,v) ∈ A, alors cf(u,v) = c(u,v)−f(u,v) > 0
Les arcset de Af ∈sont
(u,v) Af. soit
! des arcs de A, soit leurs inverses. Si f (u, v) < c(u, v) pour
un arc (u,Siv)f(u,v)
∈ A, >alors
0 pourcf (u,
unv)arc=(u,v)
c(u, ∈v)A, f (u, v)
− alors > 0<et0. (u,
f(v,u) ! v) ∈ Af . Si f (u, v) > 0
pour un arc Dans
(u, v) ce A, alors
∈ cas, f (v,= u)
cf (v,u) < 0.− Dans
c(v,u) f(v,u) ce > 0,cas, cf (v,(v,
et donc = c(v,
u) u) ∈ Afu). ! − f (v, u) > 0,
t donc (v, u)(u,∈v) ni
Si ni . Siu) n’apparaît
Af (v, ni (u, v) nidans (v, le n’apparaît
u)réseau dans
original, le c(u,
alors réseau
v) = original,
lors c(u,c(v,
v) u)= =c(v,
0, f(u,
u) v)
= =0,f (v, u)v)
f (u, = 0=et cf f(v,
(u,u)v) =
= cf0(v,(d’après
u) = 0. ! l’exercice 26.1.1) et
On en conclut qu’un arc (u, v) ne peut apparaître dans un réseau
f (u, v) = cf (v, u) = 0. On en conclut qu’un arc (u, v) ne peut apparaître dans un réeau
ésiduel querésiduel
si au que si au
moins moins
l’un des l’un
arcsdes
(u, arcs
v) et(u,(v,v)u)etfigure
(v, u) figure
dans ledans le original ;
réseau
on a doncréseau original ; on a donc
|Af | ! 2 |A| .
Observez que le réseau résiduel Gf est lui-même un réseau de transport dont les
"57
Lélia Blin Algorithmique des graphes
Lemme 2
"58
Lélia Blin Algorithmique des graphes
Preuve
"59
u résiduel et un flot du réseau originel.
Lélia Blin Algorithmique des graphes
"60
Lélia Blin Algorithmique des graphes
Preuve
La méthode de Ford-Fulkerson
Pour les contraintes de capacité, !
on remarque que f ′(u, v)≤cf (u, v) pour tout couple u, v ∈ S. !
Pour les Donc,
contraintes de l’équation
d’après remarque que f (u, v) ! cf (u, v) pour tout
capacité, on(5), ′
Preuve
Pour les contraintes de capacité, on remarque que f ′ (u, v) ! cf (u, v) pour tout couple
u, v ∈ S. Donc, d’après l’équation (26.5),
(f + f ′ )(u, v)
= f (u, v) + f ′ (u, v)
! f (u, v) + (c(u, v) − f (u, v))
Pour la conservation dev)flot,
= c(u, . notez que pour tout
u conservation
Pour la ∈ S − {s, t}, onnotez
de flot, a que pour tout u ∈ S − {s, t}, on a
! !
′
(f + f )(u, v) = (f (u, v) + f ′ (u, v))
v∈S v∈S
! !
= f (u, v) + f ′ (u, v)
v∈S v∈S
= 0+0
= 0.
Enfin, on a
!
′
|f + f | = (f"62+ f ′ )(s, v)
(f + f )(u, v) = (f (u, v) + f (u, v))
Lélia Blin v∈S v∈S Algorithmique des graphes
! !
= f (u, v) + f ′ (u, v)
Preuve v∈S v∈S
= 0+0
= 0.
Enfin
Enfin, on aon obtient:
!
|f + f ′ | = (f + f ′ )(s, v)
v∈S
!
= (f (s, v) + f ′ (s, v))
v∈S
! !
= f (s, v) + f ′ (s, v)
v∈S v∈S
= |f | + |f ′ | .
b) Chemins améliorants
"63
Lélia Blin Algorithmique des graphes
Chemins améliorants
Étant donnés !
Un réseau de transport G = (S, A) !
Un flot f ,!
un chemin améliorant p est un chemin élémentaire de s
vers t dans le réseau résiduel Gf . !
D’après la définition du réseau résiduel, chaque arc (u,v)
d’un chemin améliorant admet un flot positif
supplémentaire de u vers v tout en restant soumis à la
contrainte de capacité sur cet arc.
"64
Lélia Blin Algorithmique des graphes
Chemins améliorants
Le chemin en gris sur la figure est un chemin améliorant. !
En considérant le réseau résiduel Gf de la figure comme un réseau de
transport, on peut faire passer jusqu’à 4 unités de flux supplémentaire à
travers chaque arc de ce chemin. !
26 • Flot
Et ceci sans violer de contrainte de capacité, maximum
puisque la plus petite
capacité résiduelle sur ce chemin est cf (v2, v3) = 4.
v3 v1 12 v3
15/ 5 5
20
11 15
4
t s t
7/7
11
7
3
5
5
v4 4/4 8 v2
3
v4
4
11
(b)
"65
eau résiduel, chaque arc (u, v) d’un chemin améliorant admet
Lélia Blin Algorithmique des graphes
mentaire de u vers v tout en restant soumis à la contrainte de ca
Capacité résiduelle
chemin en gris sur la figure 26.3(b) est un chemin améliorant. E
au résiduel Gf de la figure comme un réseau de transport, on pe
à 4 unités de flux supplémentaire à travers chaque arc de ce chem
trainte La
de plus
capacité,
grandepuisque
quantitélade
plus
fluxpetite capacitéàrésiduelle
transportable travers sur
v3 ) = 4.
lesLa plus
arcs grande
d’un cheminquantité de pflux
améliorant transportable
s’appelle à travers
la capacité
n améliorant p s’appelle
résiduelle la capacité
de p, et est définie parrésiduelle de p, et est définie
Lemme 3
36 26 • Flot maxim
Soit GSoit
emme 26.3 = (S,
G A) unA)
= (S, réseau de transport,
un réseau soit f soit
de transport, un flot
f undeflot
G de
et soit
G etpsoit p
un chemin de
hemin améliorant améliorant de Gf .une
Gf . On définit Onfonction
définit une
fp : fonction
S × S →fpR: par
S×S→R
par:! ⎧
! ⎨ cf (p) si (u, v) appartient à p ,
!
fp (u, v) = −cf (p) si (v, u) appartient à p , (26
⎩
!
0 sinon .
Alors, fp! est un flot de Gf de valeur |fp | = cf (p) > 0.
alors, fp est un flot de Gf de valeur|fp|=cf(p)>0.
Le corollaire suivant montre que si l’on ajoute fp à f , on obtient un autre flot
G dont la valeur est plus proche du maximum. La figure 26.3(c) montre les con
uences de l’ajout du fp de la figure 26.3(b) au f de la figure 26.3(a).
"67
Lélia Blin Algorithmique des graphes
Corollaire
Le corollaire suivant montre que si l’on ajoute fp à f, on obtient un
autre flot de G dont la valeur est plus proche du maximum. !
La figure
634
(c) montre les conséquences de l’ajout du26f•pFlot
demaximum
la figure (b)
au f de la figure (a).
v1 12/12 v3 v1 12 v3
15/ 5
11 /16 20 5
11 15
4
s t s t
1/4
7/7
10
11
7
3
5
9
4/
5
8/1
3
v2 v4 4/4 8 v2
3
v4
4
11/14 11
(a) (b)
v1 12/12 v3 v1 12 v3
19/ 1
11 /16 20 5
11 19
s t s t
1/4
7/7
10
11
7
3
1
9
9
12/
13
v2 v4 4/4 12
v2
3
v4
4
11/14 11
(c) (d)
"68
Lélia Blin Algorithmique des graphes
Corollaire 4
"69
Lélia Blin Algorithmique des graphes
"70
Lélia Blin Algorithmique des graphes
Coupe
Une coupe (E,T) d’un réseau de transport G = (S,A) est
une partition de S dans E:!
T =S−E telle que s∈E et t∈T.!
Si f est un flot, alors le flot net à travers la coupure (E,T)
est défini par f (E, T). !
La capacité de la coupe (E, T) est c(E, T).!
Une coupe minimum d’un réseau est une coupe dont la
capacité est minimale rapportée à toutes les coupes du
réseau.
"71
dans un réseau de transport.
Lélia Blin Une coupe (E, T) d’un réseau de transport G = (S, A) est une Algorithmique
partition de Sdesdans
graphes
E
et T = S − E telle que s ∈ E et t ∈ T. (Cette définition ressemble à celle que nous
La méthode nous
de Ford-Fulkerson
Coupe (Exemple)
avions utilisée pour la « coupe » dans un arbre couvrant minimum au chapitre 23,
hormis qu’ici, nous coupons un graphe orienté plutôt qu’un graphe non orienté et que
insistons sur le fait que s ∈ E et t ∈ T.) Si f est un flot, alors le flot
637net à travers
la coupure (E, T) est défini par f (E, T). La capacité de la coupe (E, T) est c(E, T). Une
coupe minimum d’un réseau est une coupe dont la capacité est minimale rapportée à
ervez que leLa figure
toutes
flot montre
les coupes
à travers la peut
coupe
du réseau.
une coupe ({s,v
inclure 1,v
des 2} ,négatifs
flux {v3,v4,t})
entredans le réseau de
sommets,
transport
s que la capacité La figurevu
d’une précédemment.
26.4
coupe montre la coupe ({s,
est entièrement !v1 , v2 } , {vde
constituée 4 , t}) dans
3 , vvaleurs le réseauoude transport
positives
Ledeflot
es. En d’autres la figurele26.1(b).
termes,net à flot netLeà flot
travers net à une
travers
cette travers
coupe coupecette(E,
estcoupe T) se est compose de flux
tifs dans les deux sens ; le flux f (v1positif
, v3 ) + f de
(v2 ,Ev3vers
) + f (vT2 ,est
v4 ) ajouté,
= 12 alors+ (−4)que
+ 11le flux
tif de T vers E est soustrait. En revanche, la capacité d’une coupe = 19 ,(E, T) se calcule
uement à partir des arcs allant de E à T. Les arcs reliant T à E n’entrent pas en
et sa capacité est
e de compte pour le calcul de c(S, T).
c(v1 , v3 ) + c(v2 , v4 ) = 12 + 14
= 26 .
v1 12/12 v3 15/
16 20
11/
s t
1/4
7/7
10
9
4/
8/1
3
v2 v4 4/4
11/14
S T "72
Lélia Blin Algorithmique des graphes
Lemme 5
"73
Lélia Blin Algorithmique des graphes
Le lemme suivant montre que le flot net traversant une coupe
et qu’il est égal à la valeur du flot.
Preuve
Lemme 26.5 Soit f un flot dans un réseau de transport G de so
soit (E, T) une coupe de G. Alors, le flot net à travers (E, T) est
En notant que f (E − s, V ) = 0 en vertu de la conservation
Démonstration : En notant que f (E − s, V) = 0 en vertu de
du flot, onona a
f (E, T) = f (E, S) − f (E, E) D’après
(d’aprèslelemme
lemme26.1, partie
1 partie 3! (3))
= f (E, S) D’après
(d’aprèslelemme
lemme26.1,
1 partie 1! (1))
partie
= f (s, S) + f (E − s, S) D’après
(d’aprèslelemme
lemme26.1,
1 partie 3! (3))
partie
(car f(E − s,S) = 0)
= f (s, S) (car f (E − s, S) = 0)
=
non autorisée est un délit
|f | .
Corollaire 6
"75
Lélia Blin Algorithmique des graphes
Démonstration
Soit (E, T :) une
Soitcoupe
(E, T)quelconque de G et soit de
une coupe quelconque f un
Gflot quelconque.
et soit !
f un flot quelco
D’après
D’après le lemmele26.5
lemme 5 etcontraintes
et les les contraintes de capacité,
de capacité,
|f | = f (E, T)
!!
= f (u, v)
u∈E v∈T
!!
! c(u, v)
u∈E v∈T
= c(E, T) .
"77
Lélia Blin Algorithmique des graphes
Preuve
"78
Lélia Blin Algorithmique des graphes
Preuve
(2) ⇒ (3) : supposons que Gf n’ait pas de chemin améliorant, !
c’est-à-dire que Gf ne contienne aucun chemin de s vers t. !
On définit E = {v ∈ S : il existe un chemin de s vers v dans Gf }
et T=S−E. !
La partition (E,T) est une coupe: !
On a s∈E de façon triviale et t∉E car il n’existe aucun chemin
de s vers t dans Gf . !
Pour chaque couple de sommets u et v tel que u∈E et v∈T, !
On a f(u,v)=c(u,v), car sinon on aurait(u,v)∈Af et v
appartiendrait à E. !
D’après le lemme 5, on a donc |f | = f (S, T) = c(S, T).
"79
Lélia Blin Algorithmique des graphes
Preuve
(3) ⇒ (1) : !
D’après le corollaire 6, |f |≤c(E, T ) pour toutes
les coupes (E, T ).!
La condition |f | = c(E, T ) implique donc que f
est un flot maximum.
"80
Lélia Blin Algorithmique des graphes
Algorithme de Ford-Fulkerson
"81
Lélia Blin Algorithmique des graphes
Algorithme de Ford-Fulkerson
"82
Lélia Blin Algorithmique des graphes
u, v de sommets qui sont reliés par un arc (1) . Si u et v ne sont reliés par aucun ar
Algorithme de Ford-Fulkerson
aucune direction, on suppose implicitement que f [u, v] = 0. Les capacités c(u,
censées être données avec le graphe, et c(u, v) = 0 si (u, v) ̸∈ A. La capacité rési
cf (u, v) est calculée selon la formule (26.5). L’expression cf (p) dans le code n
fait qu’une variable temporaire qui mémorise la capacité résiduelle du chemin
F ORD -F ULKERSON(G, s, t)
1 pour chaque arc (u, v) ∈ A[G]
2 faire f [u, v] ← 0
3 f [v, u] ← 0
4 tant que il existe un chemin p de s à t dans le réseau résiduel Gf
5 faire cf (p) ← min {cf (u, v) : (u, v) is in p}
6 pour chaque arc (u, v) de p
7 faire f [u, v] ← f [u, v] + cf (p)
8 f [v, u] ← −f [u, v]
L’algorithme F ORD -F ULKERSON se contente de développer le pseudo code F
F ULKERSON -M ÉTHODE donné en amont. La figure 26.5 montre le résultat de c
itération dans un exemple d’exécution.
"83 Les lignes 1–3 initialisent le flot f à
Lélia Blin Algorithmique des graphes
Exemple
640 26 • Flot maximum
v1 12 v3 v1 4/12 v3
16 20 6 20
4/1
(a) s t s t
10
10
7
7
4
9
4/
9
13 13
v2 v4 4 v2 v4 4/4
14 4/14
8 4/12
v1 v3 v1 v3
12 20 7/2
4 16 0
11/
4
7/10
(b) s t s t
4
7/7
10
4
7
4
9
4/
5
13 10 13
v2 v4
4
v2 v4 4/4
4 11/14
8 12/12
v1 v3 13 v1 v3 15/
5 4 11/16 20
11 7
(c) s t s t
4
1/4
7/7
10
11
3
9
"84
4/
5
Lélia Blin Algorithmique des graphes
v1 12 v3 v1 4/12 v3
Exemple
16 20 20
4 /16
(a) s t s t
10
10
7
7
4
9
4/
9
13 13
v2 v4 4 v2 v4 4/4
14 4/14
8 4/12
v1 v3 v1 v3
12 20 7/2
4 16 0
11/
4
7/10
(b) s t s t
4
7/7
10
4
7
4
9
4/
5
13 10 13
v2 v4
4
v2 v4 4/4
4 11/14
8 12/12
v1 v3 13 v1 v3 15/
5 4 16 20
11/
11 7
(c) s t s t
4
1/4
7/7
10
11
3
9
4/
5
13 8/1
v2
3
v4
4 3
v2 v4 4/4
11 11/14
v1 12 v3 12/12 v3
5 v1 19/
5 16 20
11/
11 15
4
(d) s t
1/4
7/7
s t
11
10
7
3
9
5
12/
8 v
3
v
4 "85 1 3 v 4/4
v2 v4 v2 v4
14 4/14
Lélia Blin Algorithmique des graphes
8 4/12
v1 v3 v1 v3
Exemple
12 20 7/2
4 16 0
11/
4
7/10
(b) s t s t
7/7
10
4
7
4
9
4/
5
13 10 13
v2 v4
4
v2 v4 4/4
4 11/14
8 12/12
v1 v3 13 v1 v3 15/
5 4 16 2
11/ 0
11 7
(c) s 4 t s t
1/4
7/7
10
11
3
9
4/
5
13 8/1
v2
3
v4
4 3
v2 v4 4/4
11 11/14
v1 12 v3 12/12 v3
5 v1 19/
5 16 20
11/
11 15
4
(d) s t
1/4
7/7
s t
11
10
7
3
9
5
12/
8 v2
3
v4
4 13
v2 4/4
v4
11 11/14
v1 12 v3
5 1
11 19
(e) s t
11
7
3
1
9
12 3 4 "86
v2 v4
13 10 13
Lélia Blin v2 v4
4
v2Algorithmique
v4 4/4graphes
des
4 11/14
5
11
v1
8
4
v3
Exemple
7
13
11/
16
v1 12/12 v3 15/
20
(c) s t s t
1/4
7/7
10
11
3
9
4/
5
13 8/1
v2
3
v4
4 3
v2 v4 4/4
11 11/14
v1 12 v3 12/12 v3
5 v1 19/
5 16 2
11/ 0
11 15
4
(d) s t
1/4
7/7
s t
11
10
7
3
9
5
12/
8 v2
3
v4
4 13
v2 4/4
v4
11 11/14
v1 12 v3
5 1
11 19
(e) s t
11
7
3
1
9
12 3 4
v2 v4
11
Autre exemple
2. Appliquez cet algorithme. Donnez toutes les étapes de son applic
Correction. Dessinons d’abord le réseau :
3
A B
2 5
6
S 3 T
7
2
1 4
3
6
C D
Analyse de Ford-Fulkerson
Le temps d’exécution de FORD-FULKERSON dépend de la
façon dont on détermine le chemin améliorant p à la ligne 4. !
En cas de choix malheureux, l’algorithme peut même ne
jamais se terminer : !
la valeur du flot augmente par paliers, !
mais elle n’est pas certaine de converger vers la valeur de
flot maximum. !
En revanche, si le chemin améliorant est choisi à l’aide d’une
recherche en largeur, !
l’algorithme s’exécute dans un temps polynomial.
"89
Lélia Blin Algorithmique des graphes
Analyse de Ford-Fulkerson
"90
Lélia Blin Algorithmique des graphes
Analyse de Ford-Fulkerson
"91
Lélia Blin Algorithmique des graphes
Analyse de Ford-Fulkerson
Admettons que nous gérions une structure de données
correspondant à un graphe orienté G′ = (S,A′), où A′ = {(u,v) :
(u,v) ∈ A ou (v,u) ∈ A}. !
Les arcs du réseau G sont également des arcs de G′, et il est
donc simple de gérer capacités et flux dans cette structure de
données.!
Étant donné un flot f de G, les arcs du réseau résiduel Gf
sont constitués de tous les arcs (u, v) de G′ tels que c(u,v)
−f[u, v]≠0.
"92
Lélia Blin Algorithmique des graphes
Analyse de Ford-Fulkerson
"93