Flots et applications (2)
Algorithmique des graphes
Anthony Labarre
14 avril 2020
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esum´ e des ´ episodes pr´ ec´ edents
I On a d´ efini la notion de flot dans un r´ eseau, la notion de coupe, et le probl` eme du flot maximum ;
I On a vu un th´ eor` eme donnant l’´ equivalence entre trouver un flot maximum et trouver une coupe minimum ;
I On a vu l’algorithme d’Edmonds-Karp, permettant de trouver un flot maximum en O (|V ||A|
2) ;
I Questions ?
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esum´ e des ´ episodes pr´ ec´ edents
I On a d´ efini la notion de flot dans un r´ eseau, la notion de coupe, et le probl` eme du flot maximum ;
I On a vu un th´ eor` eme donnant l’´ equivalence entre trouver un flot maximum et trouver une coupe minimum ;
I On a vu l’algorithme d’Edmonds-Karp, permettant de trouver un flot maximum en O (|V ||A|
2) ;
I Questions ?
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esum´ e des ´ episodes pr´ ec´ edents
I On a d´ efini la notion de flot dans un r´ eseau, la notion de coupe, et le probl` eme du flot maximum ;
I On a vu un th´ eor` eme donnant l’´ equivalence entre trouver un flot maximum et trouver une coupe minimum ;
I On a vu l’algorithme d’Edmonds-Karp, permettant de trouver un flot maximum en O (|V ||A|
2) ;
I Questions ?
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esum´ e des ´ episodes pr´ ec´ edents
I On a d´ efini la notion de flot dans un r´ eseau, la notion de coupe, et le probl` eme du flot maximum ;
I On a vu un th´ eor` eme donnant l’´ equivalence entre trouver un flot maximum et trouver une coupe minimum ;
I On a vu l’algorithme d’Edmonds-Karp, permettant de trouver un flot maximum en O (|V ||A|
2) ;
I Questions ?
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Le menu du jour
I Un algorithme pour obtenir une coupe minimum ;
I La preuve du th´ eor` eme max-flow min-cut, justifiant la correction de la m´ ethode de Ford-Fulkerson ;
I L’algorithme de Dinitz, plus rapide que Edmonds-Karp ;
I Le calcul d’un couplage maximum dans un graphe biparti ;
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Le menu du jour
I Un algorithme pour obtenir une coupe minimum ; I La preuve du th´ eor` eme max-flow min-cut, justifiant la
correction de la m´ ethode de Ford-Fulkerson ;
I L’algorithme de Dinitz, plus rapide que Edmonds-Karp ;
I Le calcul d’un couplage maximum dans un graphe biparti ;
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Le menu du jour
I Un algorithme pour obtenir une coupe minimum ; I La preuve du th´ eor` eme max-flow min-cut, justifiant la
correction de la m´ ethode de Ford-Fulkerson ;
I L’algorithme de Dinitz, plus rapide que Edmonds-Karp ;
I Le calcul d’un couplage maximum dans un graphe biparti ;
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Le menu du jour
I Un algorithme pour obtenir une coupe minimum ; I La preuve du th´ eor` eme max-flow min-cut, justifiant la
correction de la m´ ethode de Ford-Fulkerson ;
I L’algorithme de Dinitz, plus rapide que Edmonds-Karp ;
I Le calcul d’un couplage maximum dans un graphe biparti ;
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Obtention d’une coupe minimum
I Le th´ eor` eme max-flow min-cut nous donne l’´ equivalence entre un flot maximum et une coupe minimum ;
I On a d´ ej` a vu comment calculer un flot maximum ;
I Comment d´ eduire explicitement une coupe minimum (S , T ) ? I Il nous suffit de parcourir le r´ esiduel final G
f:
I S = s et tous ses descendants dans G
f; I T = ¯ S = V \ S ;
Proposition 1
Soit G un r´ eseau de source s, f un flot pour ce r´ eseau, G
fle r´ eseau r´ esiduel
associ´ e, et S l’union de s et de ses descendants dans G
f. Si G
fne contient pas
de chemin augmentant, alors (S, S) ¯ est une coupe minimum pour G .
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Obtention d’une coupe minimum
I Le th´ eor` eme max-flow min-cut nous donne l’´ equivalence entre un flot maximum et une coupe minimum ;
I On a d´ ej` a vu comment calculer un flot maximum ;
I Comment d´ eduire explicitement une coupe minimum (S , T ) ? I Il nous suffit de parcourir le r´ esiduel final G
f:
I S = s et tous ses descendants dans G
f; I T = ¯ S = V \ S ;
Proposition 1
Soit G un r´ eseau de source s, f un flot pour ce r´ eseau, G
fle r´ eseau r´ esiduel
associ´ e, et S l’union de s et de ses descendants dans G
f. Si G
fne contient pas
de chemin augmentant, alors (S, S) ¯ est une coupe minimum pour G .
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Obtention d’une coupe minimum
I Le th´ eor` eme max-flow min-cut nous donne l’´ equivalence entre un flot maximum et une coupe minimum ;
I On a d´ ej` a vu comment calculer un flot maximum ;
I Comment d´ eduire explicitement une coupe minimum (S , T ) ?
I Il nous suffit de parcourir le r´ esiduel final G
f:
I S = s et tous ses descendants dans G
f; I T = ¯ S = V \ S ;
Proposition 1
Soit G un r´ eseau de source s, f un flot pour ce r´ eseau, G
fle r´ eseau r´ esiduel
associ´ e, et S l’union de s et de ses descendants dans G
f. Si G
fne contient pas
de chemin augmentant, alors (S, S) ¯ est une coupe minimum pour G .
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Obtention d’une coupe minimum
I Le th´ eor` eme max-flow min-cut nous donne l’´ equivalence entre un flot maximum et une coupe minimum ;
I On a d´ ej` a vu comment calculer un flot maximum ;
I Comment d´ eduire explicitement une coupe minimum (S , T ) ? I Il nous suffit de parcourir le r´ esiduel final G
f:
I S = s et tous ses descendants dans G
f; I T = ¯ S = V \ S ;
Proposition 1
Soit G un r´ eseau de source s, f un flot pour ce r´ eseau, G
fle r´ eseau r´ esiduel
associ´ e, et S l’union de s et de ses descendants dans G
f. Si G
fne contient pas
de chemin augmentant, alors (S, S) ¯ est une coupe minimum pour G .
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Obtention d’une coupe minimum
I Le th´ eor` eme max-flow min-cut nous donne l’´ equivalence entre un flot maximum et une coupe minimum ;
I On a d´ ej` a vu comment calculer un flot maximum ;
I Comment d´ eduire explicitement une coupe minimum (S , T ) ? I Il nous suffit de parcourir le r´ esiduel final G
f:
I S = s et tous ses descendants dans G
f;
I T = ¯ S = V \ S ;
Proposition 1
Soit G un r´ eseau de source s, f un flot pour ce r´ eseau, G
fle r´ eseau r´ esiduel
associ´ e, et S l’union de s et de ses descendants dans G
f. Si G
fne contient pas
de chemin augmentant, alors (S, S) ¯ est une coupe minimum pour G .
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Obtention d’une coupe minimum
I Le th´ eor` eme max-flow min-cut nous donne l’´ equivalence entre un flot maximum et une coupe minimum ;
I On a d´ ej` a vu comment calculer un flot maximum ;
I Comment d´ eduire explicitement une coupe minimum (S , T ) ? I Il nous suffit de parcourir le r´ esiduel final G
f:
I S = s et tous ses descendants dans G
f; I T = ¯ S = V \ S ;
Proposition 1
Soit G un r´ eseau de source s, f un flot pour ce r´ eseau, G
fle r´ eseau r´ esiduel
associ´ e, et S l’union de s et de ses descendants dans G
f. Si G
fne contient pas
de chemin augmentant, alors (S, S) ¯ est une coupe minimum pour G .
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Obtention d’une coupe minimum
I Le th´ eor` eme max-flow min-cut nous donne l’´ equivalence entre un flot maximum et une coupe minimum ;
I On a d´ ej` a vu comment calculer un flot maximum ;
I Comment d´ eduire explicitement une coupe minimum (S , T ) ? I Il nous suffit de parcourir le r´ esiduel final G
f:
I S = s et tous ses descendants dans G
f; I T = ¯ S = V \ S ;
Proposition 1
Soit G un r´ eseau de source s, f un flot pour ce r´ eseau, G
fle r´ eseau r´ esiduel
associ´ e, et S l’union de s et de ses descendants dans G
f. Si G
fne contient pas
de chemin augmentant, alors (S, S) ¯ est une coupe minimum pour G .
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esultats auxiliaires
Pour prouver la Proposition 1, on a besoin des r´ esultats suivants :
Lemme 2
Soit f un flot sur un r´ eseau de flot G , et (S, T ) une coupe sur G . Alors
|f | = f (S, T ).
Corollaire 3
Pour tout flot f sur un r´ eseau de flot G et pour toute coupe (S, T ) sur ce mˆ eme r´ eseau, on a |f | ≤ c(S, T ).
D´ emonstration.
|f | = f (S, T ) = X
u∈S
X
v∈T
f (u, v) − X
u∈S
X
v∈T
f (v , u) ≤ X
u∈S
X
v∈T
f (u, v )
≤ X
u∈S
X
v∈T
c(u, v ) = c (S, T ) Lemme 2 d´ efinition contrainte capacit´ e
d´ efinition
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esultats auxiliaires
Pour prouver la Proposition 1, on a besoin des r´ esultats suivants :
Lemme 2
Soit f un flot sur un r´ eseau de flot G , et (S, T ) une coupe sur G . Alors
|f | = f (S, T ).
Corollaire 3
Pour tout flot f sur un r´ eseau de flot G et pour toute coupe (S, T ) sur ce mˆ eme r´ eseau, on a |f | ≤ c(S, T ).
D´ emonstration.
|f | = f (S, T ) = X
u∈S
X
v∈T
f (u, v) − X
u∈S
X
v∈T
f (v , u) ≤ X
u∈S
X
v∈T
f (u, v )
≤ X
u∈S
X
v∈T
c(u, v ) = c (S, T ) Lemme 2 d´ efinition contrainte capacit´ e
d´ efinition
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esultats auxiliaires
Pour prouver la Proposition 1, on a besoin des r´ esultats suivants :
Lemme 2
Soit f un flot sur un r´ eseau de flot G , et (S, T ) une coupe sur G . Alors
|f | = f (S, T ).
Corollaire 3
Pour tout flot f sur un r´ eseau de flot G et pour toute coupe (S, T ) sur ce mˆ eme r´ eseau, on a |f | ≤ c(S, T ).
D´ emonstration.
|f | = f (S, T ) = X
u∈S
X
v∈T
f (u, v ) − X
u∈S
X
v∈T
f (v , u) ≤ X
u∈S
X
v∈T
f (u, v )
≤ X
u∈S
X
v∈T
c(u, v ) = c (S, T ) Lemme 2 d´ efinition contrainte capacit´ e
d´ efinition
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esultats auxiliaires
Pour prouver la Proposition 1, on a besoin des r´ esultats suivants :
Lemme 2
Soit f un flot sur un r´ eseau de flot G , et (S, T ) une coupe sur G . Alors
|f | = f (S, T ).
Corollaire 3
Pour tout flot f sur un r´ eseau de flot G et pour toute coupe (S, T ) sur ce mˆ eme r´ eseau, on a |f | ≤ c(S, T ).
D´ emonstration.
|f | = f (S, T )
= X
u∈S
X
v∈T
f (u, v ) − X
u∈S
X
v∈T
f (v , u) ≤ X
u∈S
X
v∈T
f (u, v )
≤ X
u∈S
X
v∈T
c(u, v ) = c (S, T )
Lemme 2
d´ efinition contrainte capacit´ e
d´ efinition
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esultats auxiliaires
Pour prouver la Proposition 1, on a besoin des r´ esultats suivants :
Lemme 2
Soit f un flot sur un r´ eseau de flot G , et (S, T ) une coupe sur G . Alors
|f | = f (S, T ).
Corollaire 3
Pour tout flot f sur un r´ eseau de flot G et pour toute coupe (S, T ) sur ce mˆ eme r´ eseau, on a |f | ≤ c(S, T ).
D´ emonstration.
|f | = f (S, T ) = X
u∈S
X
v∈T
f (u, v ) − X
u∈S
X
v∈T
f (v , u)
≤ X
u∈S
X
v∈T
f (u, v )
≤ X
u∈S
X
v∈T
c(u, v ) = c (S, T )
Lemme 2 d´ efinition
contrainte capacit´ e
d´ efinition
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esultats auxiliaires
Pour prouver la Proposition 1, on a besoin des r´ esultats suivants :
Lemme 2
Soit f un flot sur un r´ eseau de flot G , et (S, T ) une coupe sur G . Alors
|f | = f (S, T ).
Corollaire 3
Pour tout flot f sur un r´ eseau de flot G et pour toute coupe (S, T ) sur ce mˆ eme r´ eseau, on a |f | ≤ c(S, T ).
D´ emonstration.
|f | = f (S, T ) = X
u∈S
X
v∈T
f (u, v ) − X
u∈S
X
v∈T
f (v , u) ≤ X
u∈S
X
v∈T
f (u, v )
≤ X
u∈S
X
v∈T
c(u, v ) = c (S, T )
Lemme 2 d´ efinition
contrainte capacit´ e
d´ efinition
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esultats auxiliaires
Pour prouver la Proposition 1, on a besoin des r´ esultats suivants :
Lemme 2
Soit f un flot sur un r´ eseau de flot G , et (S, T ) une coupe sur G . Alors
|f | = f (S, T ).
Corollaire 3
Pour tout flot f sur un r´ eseau de flot G et pour toute coupe (S, T ) sur ce mˆ eme r´ eseau, on a |f | ≤ c(S, T ).
D´ emonstration.
|f | = f (S, T ) = X
u∈S
X
v∈T
f (u, v ) − X
u∈S
X
v∈T
f (v , u) ≤ X
u∈S
X
v∈T
f (u, v )
≤ X
u∈S
X
v∈T
c(u, v )
= c (S, T )
Lemme 2 d´ efinition contrainte capacit´ e
d´ efinition
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
R´ esultats auxiliaires
Pour prouver la Proposition 1, on a besoin des r´ esultats suivants :
Lemme 2
Soit f un flot sur un r´ eseau de flot G , et (S, T ) une coupe sur G . Alors
|f | = f (S, T ).
Corollaire 3
Pour tout flot f sur un r´ eseau de flot G et pour toute coupe (S, T ) sur ce mˆ eme r´ eseau, on a |f | ≤ c(S, T ).
D´ emonstration.
|f | = f (S, T ) = X
u∈S
X
v∈T
f (u, v ) − X
u∈S
X
v∈T
f (v , u) ≤ X
u∈S
X
v∈T
f (u, v )
≤ X
u∈S
X
v∈T
c(u, v ) = c (S, T )
Lemme 2 d´ efinition contrainte capacit´ e
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v , u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v) ∈ A(G
f) ; (b) soit (u, v ) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v ) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) = ¯ X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u) = X
u∈S
X
v∈S¯
f (u, v ) = X
u∈S
X
v∈S¯
c(u, v )
Lemme 2 d´ efinition arcs (a) arcs (b)
. . . et P
u∈S
P
v∈S¯
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
donc minimum (voir Corollaire 3).
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v, u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v ) ∈ A(G
f) ; (b) soit (u, v) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v ) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) = ¯ X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u) = X
u∈S
X
v∈S¯
f (u, v ) = X
u∈S
X
v∈S¯
c(u, v )
Lemme 2 d´ efinition arcs (a) arcs (b)
. . . et P
u∈S
P
v∈S¯
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
donc minimum (voir Corollaire 3).
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v, u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v ) ∈ A(G
f) ;
(b) soit (u, v) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v ) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) = ¯ X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u) = X
u∈S
X
v∈S¯
f (u, v ) = X
u∈S
X
v∈S¯
c(u, v )
Lemme 2 d´ efinition arcs (a) arcs (b)
. . . et P
u∈S
P
v∈S¯
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
donc minimum (voir Corollaire 3).
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v, u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v ) ∈ A(G
f) ; (b) soit (u, v) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) = ¯ X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u) = X
u∈S
X
v∈S¯
f (u, v ) = X
u∈S
X
v∈S¯
c(u, v )
Lemme 2 d´ efinition arcs (a) arcs (b)
. . . et P
u∈S
P
v∈S¯
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
donc minimum (voir Corollaire 3).
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v, u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v ) ∈ A(G
f) ; (b) soit (u, v) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) ¯
= X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u) = X
u∈S
X
v∈S¯
f (u, v ) = X
u∈S
X
v∈S¯
c(u, v )
Lemme 2
d´ efinition arcs (a) arcs (b)
. . . et P
u∈S
P
v∈S¯
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
donc minimum (voir Corollaire 3).
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v, u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v ) ∈ A(G
f) ; (b) soit (u, v) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) = ¯ X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u)
= X
u∈S
X
v∈S¯
f (u, v ) = X
u∈S
X
v∈S¯
c(u, v )
Lemme 2 d´ efinition
arcs (a) arcs (b) . . . et P
u∈S
P
v∈S¯
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
donc minimum (voir Corollaire 3).
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v, u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v ) ∈ A(G
f) ; (b) soit (u, v) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) = ¯ X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u) = X
u∈S
X
v∈S¯
f (u, v )
= X
u∈S
X
v∈S¯
c(u, v )
Lemme 2 d´ efinition arcs (a)
arcs (b) . . . et P
u∈S
P
v∈S¯
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
donc minimum (voir Corollaire 3).
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v, u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v ) ∈ A(G
f) ; (b) soit (u, v) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) = ¯ X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u) = X
u∈S
X
v∈S¯
f (u, v ) = X
u∈S
X
v∈S¯
c(u, v )
Lemme 2 d´ efinition arcs (a) arcs (b)
. . . et P
u∈S
P
v∈S¯
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
donc minimum (voir Corollaire 3).
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve de la Proposition 1
1. (S, S) ¯ est une coupe, car s ∈ S et t ∈ S ¯ puisque t n’est pas un descendant de s ;
2. c (S, S) ¯ est minimum, car : @ (u, v ) ∈ A(G
f) : u ∈ S, v ∈ S ¯ ; et ∀ arc (v, u) ∈ A(G
f) de ¯ S vers S, on a :
(a) soit (v, u) ∈ A(G ) ⇒ f (v , u) = 0 sinon (u, v ) ∈ A(G
f) ; (b) soit (u, v) ∈ A(G ) ⇒ f (u, v ) = c(u, v ) sinon (u, v) ∈ A(G
f) ;
s t
S S¯
(a)
(b)
Gf s t
S S¯
(a)f= 0
(b)f=c
G
La valeur du flot est :
|f | = f (S, S) = ¯ X
u∈S
X
v∈S¯
f (u, v )− X
u∈S
X
v∈S¯
f (v , u) = X
u∈S
X
v∈S¯
f (u, v ) = X
u∈S
X
v∈S¯
c(u, v )
Lemme 2 d´ efinition arcs (a) arcs (b)
. . . et P P
c(u, v ) = c(S, S). On a donc ¯ |f | = c(S, S), et (S, ¯ S) est ¯
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve du th´ eor` eme max-flow min-cut
Th´ eor` eme 4 (Max-flow min-cut)
[1] Soit f un flot dans un r´ eseau G = (V , A, c) de source s et de puits t. Les conditions suivantes sont ´ equivalentes :
1. f est un flot maximum ;
2. le r´ eseau r´ esiduel G
fne contient pas de chemin augmentant ; 3. il existe une coupe (S, T ) pour G telle que |f | = c(S, T ).
D´ emonstration.
I 1. ⇒ 2. : contrapos´ ee : un chemin augmentant permet d’augmenter f ; I 2. ⇒ 3. : cf. Proposition 1 ;
I 3. ⇒ 1. : d´ ecoule du Corollaire 3.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve du th´ eor` eme max-flow min-cut
Th´ eor` eme 4 (Max-flow min-cut)
[1] Soit f un flot dans un r´ eseau G = (V , A, c) de source s et de puits t. Les conditions suivantes sont ´ equivalentes :
1. f est un flot maximum ;
2. le r´ eseau r´ esiduel G
fne contient pas de chemin augmentant ; 3. il existe une coupe (S, T ) pour G telle que |f | = c(S, T ).
D´ emonstration.
I 1. ⇒ 2. : contrapos´ ee : un chemin augmentant permet d’augmenter f ; I 2. ⇒ 3. : cf. Proposition 1 ;
I 3. ⇒ 1. : d´ ecoule du Corollaire 3.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve du th´ eor` eme max-flow min-cut
Th´ eor` eme 4 (Max-flow min-cut)
[1] Soit f un flot dans un r´ eseau G = (V , A, c) de source s et de puits t. Les conditions suivantes sont ´ equivalentes :
1. f est un flot maximum ;
2. le r´ eseau r´ esiduel G
fne contient pas de chemin augmentant ;
3. il existe une coupe (S, T ) pour G telle que |f | = c(S, T ).
D´ emonstration.
I 1. ⇒ 2. : contrapos´ ee : un chemin augmentant permet d’augmenter f ; I 2. ⇒ 3. : cf. Proposition 1 ;
I 3. ⇒ 1. : d´ ecoule du Corollaire 3.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve du th´ eor` eme max-flow min-cut
Th´ eor` eme 4 (Max-flow min-cut)
[1] Soit f un flot dans un r´ eseau G = (V , A, c) de source s et de puits t. Les conditions suivantes sont ´ equivalentes :
1. f est un flot maximum ;
2. le r´ eseau r´ esiduel G
fne contient pas de chemin augmentant ; 3. il existe une coupe (S, T ) pour G telle que |f | = c(S, T ).
D´ emonstration.
I 1. ⇒ 2. : contrapos´ ee : un chemin augmentant permet d’augmenter f ; I 2. ⇒ 3. : cf. Proposition 1 ;
I 3. ⇒ 1. : d´ ecoule du Corollaire 3.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve du th´ eor` eme max-flow min-cut
Th´ eor` eme 4 (Max-flow min-cut)
[1] Soit f un flot dans un r´ eseau G = (V , A, c) de source s et de puits t. Les conditions suivantes sont ´ equivalentes :
1. f est un flot maximum ;
2. le r´ eseau r´ esiduel G
fne contient pas de chemin augmentant ; 3. il existe une coupe (S, T ) pour G telle que |f | = c(S, T ).
D´ emonstration.
I 1. ⇒ 2. : contrapos´ ee : un chemin augmentant permet d’augmenter f ;
I 2. ⇒ 3. : cf. Proposition 1 ;
I 3. ⇒ 1. : d´ ecoule du Corollaire 3.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve du th´ eor` eme max-flow min-cut
Th´ eor` eme 4 (Max-flow min-cut)
[1] Soit f un flot dans un r´ eseau G = (V , A, c) de source s et de puits t. Les conditions suivantes sont ´ equivalentes :
1. f est un flot maximum ;
2. le r´ eseau r´ esiduel G
fne contient pas de chemin augmentant ; 3. il existe une coupe (S, T ) pour G telle que |f | = c(S, T ).
D´ emonstration.
I 1. ⇒ 2. : contrapos´ ee : un chemin augmentant permet d’augmenter f ; I 2. ⇒ 3. : cf. Proposition 1 ;
I 3. ⇒ 1. : d´ ecoule du Corollaire 3.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Preuve du th´ eor` eme max-flow min-cut
Th´ eor` eme 4 (Max-flow min-cut)
[1] Soit f un flot dans un r´ eseau G = (V , A, c) de source s et de puits t. Les conditions suivantes sont ´ equivalentes :
1. f est un flot maximum ;
2. le r´ eseau r´ esiduel G
fne contient pas de chemin augmentant ; 3. il existe une coupe (S, T ) pour G telle que |f | = c(S, T ).
D´ emonstration.
I 1. ⇒ 2. : contrapos´ ee : un chemin augmentant permet d’augmenter f ; I 2. ⇒ 3. : cf. Proposition 1 ;
I 3. ⇒ 1. : d´ ecoule du Corollaire 3.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
I Parmi les algorithmes plus efficaces pour calculer des flots maximum, il y a celui de Dinitz ;
I Il r´ ealise en O(|V |
2|A|) ce que Edmonds-Karp fait en O (|V ||A|
2) (mieux puisque |A| ≥ |V | pour un r´ eseau faiblement connexe) ;
I On peut rabaisser sa complexit´ e ` a O(|V ||A| log |V |) grˆ ace aux link-cut trees ou dynamic trees [4].
I Il est assez similaire ` a l’algorithme d’Edmonds-Karp ;
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
I Parmi les algorithmes plus efficaces pour calculer des flots maximum, il y a celui de Dinitz ;
I Il r´ ealise en O(|V |
2|A|) ce que Edmonds-Karp fait en O (|V ||A|
2) (mieux puisque |A| ≥ |V | pour un r´ eseau faiblement connexe) ;
I On peut rabaisser sa complexit´ e ` a O(|V ||A| log |V |) grˆ ace aux link-cut trees ou dynamic trees [4].
I Il est assez similaire ` a l’algorithme d’Edmonds-Karp ;
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
I Parmi les algorithmes plus efficaces pour calculer des flots maximum, il y a celui de Dinitz ;
I Il r´ ealise en O(|V |
2|A|) ce que Edmonds-Karp fait en O (|V ||A|
2) (mieux puisque |A| ≥ |V | pour un r´ eseau faiblement connexe) ;
I On peut rabaisser sa complexit´ e ` a O(|V ||A| log |V |) grˆ ace aux link-cut trees ou dynamic trees [4].
I Il est assez similaire ` a l’algorithme d’Edmonds-Karp ;
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
I Parmi les algorithmes plus efficaces pour calculer des flots maximum, il y a celui de Dinitz ;
I Il r´ ealise en O(|V |
2|A|) ce que Edmonds-Karp fait en O (|V ||A|
2) (mieux puisque |A| ≥ |V | pour un r´ eseau faiblement connexe) ;
I On peut rabaisser sa complexit´ e ` a O(|V ||A| log |V |) grˆ ace aux link-cut trees ou dynamic trees [4].
I Il est assez similaire ` a l’algorithme d’Edmonds-Karp ;
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Pr´ esentation de l’algorithme
L’algorithme de Dinitz suit la m´ ethode de Edmonds et Karp, ` a deux diff´ erences pr` es :
1. on maintient une structure G
Lcontenant tous les plus courts chemins de s ` a t dans G
f;
2. au lieu d’augmenter le flot sur un seul chemin de s ` a t dans G
f, on l’augmente sur tous les chemins trouv´ es dans G
L; 3. on met ensuite ` a jour G
fet G
L;
Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G
fne permet plus d’augmentation (via G
L) ; le flot trouv´ e est alors
maximum.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Pr´ esentation de l’algorithme
L’algorithme de Dinitz suit la m´ ethode de Edmonds et Karp, ` a deux diff´ erences pr` es :
1. on maintient une structure G
Lcontenant tous les plus courts chemins de s ` a t dans G
f;
2. au lieu d’augmenter le flot sur un seul chemin de s ` a t dans G
f, on l’augmente sur tous les chemins trouv´ es dans G
L; 3. on met ensuite ` a jour G
fet G
L;
Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G
fne permet plus d’augmentation (via G
L) ; le flot trouv´ e est alors
maximum.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Pr´ esentation de l’algorithme
L’algorithme de Dinitz suit la m´ ethode de Edmonds et Karp, ` a deux diff´ erences pr` es :
1. on maintient une structure G
Lcontenant tous les plus courts chemins de s ` a t dans G
f;
2. au lieu d’augmenter le flot sur un seul chemin de s ` a t dans G
f, on l’augmente sur tous les chemins trouv´ es dans G
L;
3. on met ensuite ` a jour G
fet G
L;
Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G
fne permet plus d’augmentation (via G
L) ; le flot trouv´ e est alors
maximum.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Pr´ esentation de l’algorithme
L’algorithme de Dinitz suit la m´ ethode de Edmonds et Karp, ` a deux diff´ erences pr` es :
1. on maintient une structure G
Lcontenant tous les plus courts chemins de s ` a t dans G
f;
2. au lieu d’augmenter le flot sur un seul chemin de s ` a t dans G
f, on l’augmente sur tous les chemins trouv´ es dans G
L; 3. on met ensuite ` a jour G
fet G
L;
Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G
fne permet plus d’augmentation (via G
L) ; le flot trouv´ e est alors
maximum.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Pr´ esentation de l’algorithme
L’algorithme de Dinitz suit la m´ ethode de Edmonds et Karp, ` a deux diff´ erences pr` es :
1. on maintient une structure G
Lcontenant tous les plus courts chemins de s ` a t dans G
f;
2. au lieu d’augmenter le flot sur un seul chemin de s ` a t dans G
f, on l’augmente sur tous les chemins trouv´ es dans G
L; 3. on met ensuite ` a jour G
fet G
L;
Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G
fne permet plus d’augmentation (via G
L) ; le flot trouv´ e est alors
maximum.
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Le graphe de parcours en largeur
D´ efinition 5
Soit G = (V , A) un graphe orient´ e, et s ∈ V . Le graphe de parcours en largeur de G au d´ epart de s est le graphe orient´ e G
Ld´ efini par :
I V
i= sommets de G ` a distance i de s ; d = distance du sommet le plus
´ eloign´ e ;
I V (G
L) = ∪
di=0V
i;
I A(G
L) = ∪
di=1A
i, o` u A
i= {(u, v ) | u ∈ V
i−1, v ∈ V
i}.
Attention : distance = nombre d’arcs, pas somme des poids.
s
a
b
c
d
t 16
13
4
12 9
14
7
4
20
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
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
G
fG
s
a
b
c
d
t
G
LIntroduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
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
G
fG
s
a
b
c
d
t 16
13
12
14
4 20
G
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
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
G
fG
s
a
b
c
d
t 16
13
12
14
4 20
G
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
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
G
fG
s
a
b
c
d
t 16
13
12
14
4
20
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
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
G
fG
s
a
b
c
d
t 13
14
4 4
12
12 8
12
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
G
fG
s
a
b
c
d
t 13
14
4 4
12
12 8
12
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
s
a
b
c
d
t 16
13
4
12 9 14
7
4 20
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
G
fG
s
a
b
c
d
t 4
12
12 8 9 10
4
4 12
4
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
s
a
b
c
d 4 9 7 t 4
12
12 8 9
4
4 12
10 4
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
G
fG
s
a
b
c
d
t 4
12
12 8 9 10
4
4 12
4
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
s
a
b
c
d 4 9 7 t 4
12
12 8 9
4
4 12
10 4
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
G
fG
s
a
b
c
d
t
4 8
9
7
10
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
s
a
b
c
d 4 9 7 t 4
12
12 8 9
4
4 12
10 4
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
G
fG
s
a
b
c
d
t
4 8
9
7
10
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
s
a
b
c
d 4 9 7 t 4
12
12 8 9
4
4 12
10 4
s
a
b
c
d
t 12/16
4/13
4
12/12 9 4/14
7
4/4 12/20
G
fG
s
a
b
c
d
t
4 8
9
7
10
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
s
a
b
c
d 4 9 7 t 4
12
12 8 9
4
4 12
10 4
s
a
b
c
d
t 12/16
11/13 4 12/12
9 11/14
7/7
4/4 19/20
G
fG
s
a
b
c
d
t
4 8
9
7
10
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
L’algorithme de Dinitz
Examinons les ´ etapes de l’algorithme de Dinitz sur le mˆ eme exemple que pour Edmonds-Karp.
s
a
b
c
d 4 9 7 t 4
12
12 8 9
4
4 12
10 4
s
a
b
c
d
t 12/16
11/13 4 12/12
9 11/14
7/7
4/4 19/20
G
fG
s
a
b
c
d
t
4 1
3
2 7
7
7
7
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti