Algorithmique des graphes
Flots et applications (2)
Anthony Labarre
31 mars 2021
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
• On a d´efini la notion de flot dans un r´eseau, la notion de coupe, et le probl`eme du flot maximum ;
• On a vu un th´eor`eme donnant l’´equivalence entre trouver un flot maximum et trouver une coupe minimum ;
• On a vu l’algorithme d’Edmonds-Karp, permettant de trouver un flot maximum enO(|V||A|2) ;
• 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
• On a d´efini la notion de flot dans un r´eseau, la notion de coupe, et le probl`eme du flot maximum ;
• On a vu un th´eor`eme donnant l’´equivalence entre trouver un flot maximum et trouver une coupe minimum ;
• On a vu l’algorithme d’Edmonds-Karp, permettant de trouver un flot maximum enO(|V||A|2) ;
• 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
• On a d´efini la notion de flot dans un r´eseau, la notion de coupe, et le probl`eme du flot maximum ;
• On a vu un th´eor`eme donnant l’´equivalence entre trouver un flot maximum et trouver une coupe minimum ;
• On a vu l’algorithme d’Edmonds-Karp, permettant de trouver un flot maximum enO(|V||A|2) ;
• 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
• On a d´efini la notion de flot dans un r´eseau, la notion de coupe, et le probl`eme du flot maximum ;
• On a vu un th´eor`eme donnant l’´equivalence entre trouver un flot maximum et trouver une coupe minimum ;
• On a vu l’algorithme d’Edmonds-Karp, permettant de trouver un flot maximum enO(|V||A|2) ;
• Questions ?
Introduction Preuve du th´eor`ememax-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti
Le menu du jour
• Un algorithme pour obtenir une coupe minimum ;
• La preuve du th´eor`ememax-flow min-cut, justifiant la correction de la m´ethode de Ford-Fulkerson ;
• L’algorithme de Dinitz, plus rapide que Edmonds-Karp ;
• 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
• Un algorithme pour obtenir une coupe minimum ;
• La preuve du th´eor`ememax-flow min-cut, justifiant la correction de la m´ethode de Ford-Fulkerson ;
• L’algorithme de Dinitz, plus rapide que Edmonds-Karp ;
• 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
• Un algorithme pour obtenir une coupe minimum ;
• La preuve du th´eor`ememax-flow min-cut, justifiant la correction de la m´ethode de Ford-Fulkerson ;
• L’algorithme de Dinitz, plus rapide que Edmonds-Karp ;
• 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
• Un algorithme pour obtenir une coupe minimum ;
• La preuve du th´eor`ememax-flow min-cut, justifiant la correction de la m´ethode de Ford-Fulkerson ;
• L’algorithme de Dinitz, plus rapide que Edmonds-Karp ;
• 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
• Le th´eor`ememax-flow min-cut nous donne l’´equivalence entre un flot maximum et une coupe minimum ;
• On a d´ej`a vu comment calculer un flot maximum ;
• Comment d´eduire explicitement une coupe minimum (S,T) ?
• Il nous suffit de parcourir le r´esiduel finalGf :
• S =s et tous ses descendants dansGf ;
• T = ¯S =V\S;
Proposition 1
Soit G un r´eseau de source s, f un flot pour ce r´eseau, Gf le r´eseau r´esiduel associ´e, et S l’union de s et de ses descendants dans Gf. Si Gf ne 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
• Le th´eor`ememax-flow min-cut nous donne l’´equivalence entre un flot maximum et une coupe minimum ;
• On a d´ej`a vu comment calculer un flot maximum ;
• Comment d´eduire explicitement une coupe minimum (S,T) ?
• Il nous suffit de parcourir le r´esiduel finalGf :
• S =s et tous ses descendants dansGf ;
• T = ¯S =V\S;
Proposition 1
Soit G un r´eseau de source s, f un flot pour ce r´eseau, Gf le r´eseau r´esiduel associ´e, et S l’union de s et de ses descendants dans Gf. Si Gf ne 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
• Le th´eor`ememax-flow min-cut nous donne l’´equivalence entre un flot maximum et une coupe minimum ;
• On a d´ej`a vu comment calculer un flot maximum ;
• Comment d´eduire explicitement une coupe minimum (S,T) ?
• Il nous suffit de parcourir le r´esiduel finalGf :
• S =s et tous ses descendants dansGf ;
• T = ¯S =V\S;
Proposition 1
Soit G un r´eseau de source s, f un flot pour ce r´eseau, Gf le r´eseau r´esiduel associ´e, et S l’union de s et de ses descendants dans Gf. Si Gf ne 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
• Le th´eor`ememax-flow min-cut nous donne l’´equivalence entre un flot maximum et une coupe minimum ;
• On a d´ej`a vu comment calculer un flot maximum ;
• Comment d´eduire explicitement une coupe minimum (S,T) ?
• Il nous suffit de parcourir le r´esiduel finalGf :
• S =s et tous ses descendants dansGf ;
• T = ¯S =V\S;
Proposition 1
Soit G un r´eseau de source s, f un flot pour ce r´eseau, Gf le r´eseau r´esiduel associ´e, et S l’union de s et de ses descendants dans Gf. Si Gf ne 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
• Le th´eor`ememax-flow min-cut nous donne l’´equivalence entre un flot maximum et une coupe minimum ;
• On a d´ej`a vu comment calculer un flot maximum ;
• Comment d´eduire explicitement une coupe minimum (S,T) ?
• Il nous suffit de parcourir le r´esiduel finalGf :
• S =s et tous ses descendants dansGf ;
• T = ¯S =V\S;
Proposition 1
Soit G un r´eseau de source s, f un flot pour ce r´eseau, Gf le r´eseau r´esiduel associ´e, et S l’union de s et de ses descendants dans Gf. Si Gf ne 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
• Le th´eor`ememax-flow min-cut nous donne l’´equivalence entre un flot maximum et une coupe minimum ;
• On a d´ej`a vu comment calculer un flot maximum ;
• Comment d´eduire explicitement une coupe minimum (S,T) ?
• Il nous suffit de parcourir le r´esiduel finalGf :
• S =s et tous ses descendants dansGf ;
• T = ¯S =V\S;
Proposition 1
Soit G un r´eseau de source s, f un flot pour ce r´eseau, Gf le r´eseau r´esiduel associ´e, et S l’union de s et de ses descendants dans Gf. Si Gf ne 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
• Le th´eor`ememax-flow min-cut nous donne l’´equivalence entre un flot maximum et une coupe minimum ;
• On a d´ej`a vu comment calculer un flot maximum ;
• Comment d´eduire explicitement une coupe minimum (S,T) ?
• Il nous suffit de parcourir le r´esiduel finalGf :
• S =s et tous ses descendants dansGf ;
• T = ¯S =V\S;
Proposition 1
Soit G un r´eseau de source s, f un flot pour ce r´eseau, Gf le r´eseau r´esiduel associ´e, et S l’union de s et de ses descendants dans Gf. Si Gf ne 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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf); (b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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)
. . . etP
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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf); (b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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)
. . . etP
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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf);
(b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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)
. . . etP
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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf); (b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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)
. . . etP
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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf); (b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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)
. . . etP
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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf); (b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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) . . . etP
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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf); (b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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) . . . etP
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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf); (b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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)
. . . etP
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, cars∈S ett∈S¯puisquet n’est pas un descendant des;
2 c(S,S)¯ est minimum, car :@(u,v)∈A(Gf) :u∈S,v ∈S¯; et∀arc (v,u)∈A(Gf) de ¯SversS, on a :
(a) soit (v,u)∈A(G)⇒f(v,u) = 0sinon (u,v)∈A(Gf); (b) soit (u,v)∈A(G)⇒f(u,v) =c(u,v)sinon(u,v)∈A(Gf);
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)
. . . etP 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 Gf ne contient pas de chemin augmentant ; 3 il existe une coupe(S,T)pour G telle que|f|=c(S,T).
D´emonstration.
• 1.⇒2.: contrapos´ee : un chemin augmentant permet d’augmenterf ;
• 2.⇒3.: cf. Proposition 1 ;
• 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 Gf ne contient pas de chemin augmentant ; 3 il existe une coupe(S,T)pour G telle que|f|=c(S,T).
D´emonstration.
• 1.⇒2.: contrapos´ee : un chemin augmentant permet d’augmenterf ;
• 2.⇒3.: cf. Proposition 1 ;
• 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 Gf ne contient pas de chemin augmentant ;
3 il existe une coupe(S,T)pour G telle que|f|=c(S,T).
D´emonstration.
• 1.⇒2.: contrapos´ee : un chemin augmentant permet d’augmenterf ;
• 2.⇒3.: cf. Proposition 1 ;
• 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 Gf ne contient pas de chemin augmentant ; 3 il existe une coupe(S,T)pour G telle que|f|=c(S,T).
D´emonstration.
• 1.⇒2.: contrapos´ee : un chemin augmentant permet d’augmenterf ;
• 2.⇒3.: cf. Proposition 1 ;
• 3.⇒1.: d´ecoule du Corollaire 3.