• Aucun résultat trouvé

Algorithmique des graphes Flots et applications (2) Anthony Labarre 31 mars 2021

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmique des graphes Flots et applications (2) Anthony Labarre 31 mars 2021"

Copied!
105
0
0

Texte intégral

(1)

Algorithmique des graphes

Flots et applications (2)

Anthony Labarre

31 mars 2021

(2)

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 ?

(3)

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 ?

(4)

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 ?

(5)

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 ?

(6)

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 ;

(7)

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 ;

(8)

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 ;

(9)

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 ;

(10)

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 .

(11)

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 .

(12)

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 .

(13)

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 .

(14)

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 .

(15)

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 .

(16)

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 .

(17)

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 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

efinition

(18)

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 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

efinition

(19)

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 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

efinition

(20)

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 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

efinition contrainte capacit´e

efinition

(21)

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 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

efinition

(22)

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 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

efinition

(23)

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 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

efinition

(24)

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 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

(25)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

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).

(26)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

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).

(27)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

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).

(28)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

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).

(29)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

f(v,u) = X

u∈S

X

v∈S¯

f(u,v) = X

u∈S

X

v∈S¯

c(u,v)

Lemme 2

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).

(30)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

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).

(31)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

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).

(32)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

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).

(33)

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, carsS ettS¯puisquet n’est pas un descendant des;

2 c(S,S)¯ est minimum, car :@(u,v)A(Gf) :uS,v S¯; etarc (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

vS¯

f(u,v)−X

u∈S

X

vS¯

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¯

(34)

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.

(35)

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.

(36)

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.

(37)

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.

Références

Documents relatifs

les parcours largeur, profondeur et les arbres associés ; le calcul des composantes connexes ; la détection de cycle ; la reconnaissance des graphes bipartis ;... Correction

• L’algorithme de Bellman-Ford recherche également des raccourcis entre les sommets ; • Le fonctionnement est différent de celui de Dijkstra, qui cherchait des chemins

Introduction Les bases La m´ ethode de Ford-Fulkerson Coupes minimum Complexit´ e de l’algorithme

3 combiner : combiner les solutions des sous-probl` emes pour obtenir la solution au probl` eme de d´ epart. • L’efficacit´ e de cette approche d´ epend fortement des complexit´ es

Introduction Principes Probl` eme de d´ ecoupe Distance d’´ edition Reconstruction des solutions optimales.. R´ esum´ e des ´ episodes pr´

et donc, le poids d’une solution optimale pour tsp est au moins celui d’un ACPM, qu’on est capable de trouver en temps polynomial ;.. Introduction vertex cover

Introduction Preuve du th´ eor` eme max-flow min-cut Algorithme de Dinitz Couplages dans un graphe biparti.. R´ esum´ e des ´ episodes pr´

I La m´ ethode de Ford-Fulkerson proc` ede comme suit ; on d´ emarre avec un flot f nul partout pour le r´ eseau G , et ` a chaque it´ eration :.. on augmente au maximum f sur les