• Aucun résultat trouvé

Flots et applications (2) Algorithmique des graphes Anthony Labarre 14 avril 2020

N/A
N/A
Protected

Academic year: 2022

Partager "Flots et applications (2) Algorithmique des graphes Anthony Labarre 14 avril 2020"

Copied!
103
0
0

Texte intégral

(1)

Flots et applications (2)

Algorithmique des graphes

Anthony Labarre

14 avril 2020

(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

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 ?

(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

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 ?

(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

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 ?

(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

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 ?

(6)

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 ;

(7)

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 ;

(8)

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 ;

(9)

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 ;

(10)

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

f

le r´ eseau r´ esiduel

associ´ e, et S l’union de s et de ses descendants dans G

f

. Si G

f

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

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

f

le r´ eseau r´ esiduel

associ´ e, et S l’union de s et de ses descendants dans G

f

. Si G

f

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

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

f

le r´ eseau r´ esiduel

associ´ e, et S l’union de s et de ses descendants dans G

f

. Si G

f

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

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

f

le r´ eseau r´ esiduel

associ´ e, et S l’union de s et de ses descendants dans G

f

. Si G

f

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

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

f

le r´ eseau r´ esiduel

associ´ e, et S l’union de s et de ses descendants dans G

f

. Si G

f

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

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

f

le r´ eseau r´ esiduel

associ´ e, et S l’union de s et de ses descendants dans G

f

. Si G

f

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

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

f

le r´ eseau r´ esiduel

associ´ e, et S l’union de s et de ses descendants dans G

f

. Si G

f

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

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

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

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

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

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

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

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

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

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)

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

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

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)

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

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

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)

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

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

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)

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

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

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)

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

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

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

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

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

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

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)

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

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

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)

. . . et P 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 G

f

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

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

f

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

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

f

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

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

f

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

(38)

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

f

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

(39)

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

f

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

(40)

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

f

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

(41)

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 ;

(42)

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 ;

(43)

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 ;

(44)

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 ;

(45)

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

L

contenant 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

f

et G

L

;

Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G

f

ne permet plus d’augmentation (via G

L

) ; le flot trouv´ e est alors

maximum.

(46)

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

L

contenant 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

f

et G

L

;

Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G

f

ne permet plus d’augmentation (via G

L

) ; le flot trouv´ e est alors

maximum.

(47)

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

L

contenant 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

f

et G

L

;

Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G

f

ne permet plus d’augmentation (via G

L

) ; le flot trouv´ e est alors

maximum.

(48)

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

L

contenant 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

f

et G

L

;

Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G

f

ne permet plus d’augmentation (via G

L

) ; le flot trouv´ e est alors

maximum.

(49)

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

L

contenant 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

f

et G

L

;

Comme dans la m´ ethode de Ford-Fulkerson, on s’arrˆ ete quand G

f

ne permet plus d’augmentation (via G

L

) ; le flot trouv´ e est alors

maximum.

(50)

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

L

d´ 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=0

V

i

;

I A(G

L

) = ∪

di=1

A

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

(51)

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

f

G

s

a

b

c

d

t

G

L

(52)

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

f

G

s

a

b

c

d

t 16

13

12

14

4 20

G

(53)

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

f

G

s

a

b

c

d

t 16

13

12

14

4 20

G

(54)

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

f

G

s

a

b

c

d

t 16

13

12

14

4

20

(55)

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

f

G

s

a

b

c

d

t 13

14

4 4

12

12 8

12

(56)

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

f

G

s

a

b

c

d

t 13

14

4 4

12

12 8

12

(57)

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

f

G

s

a

b

c

d

t 4

12

12 8 9 10

4

4 12

4

(58)

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

f

G

s

a

b

c

d

t 4

12

12 8 9 10

4

4 12

4

(59)

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

f

G

s

a

b

c

d

t

4 8

9

7

10

(60)

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

f

G

s

a

b

c

d

t

4 8

9

7

10

(61)

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

f

G

s

a

b

c

d

t

4 8

9

7

10

(62)

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

f

G

s

a

b

c

d

t

4 8

9

7

10

(63)

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

f

G

s

a

b

c

d

t

4 1

3

2 7

7

7

7

(64)

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

4 12

12

4 1

2 3 7

7

7

7 s

a

b

c

d

t 12/16

11/13 4 12/12

9 11/14

7/7

4/4 19/20

G

f

G

s

a

b

c

d

t

4 1

3

2 7

7

7

7

Références

Documents relatifs

Cours précédent : caractérisation des graphes bipartis Théorème 1 Un graphe est biparti si et seulement s’il ne contient pas de cycle de longueur impaire.... Arbres couvrants

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

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

• Dans le cas o` u le graphe n’est pas biparti, le probl` eme reste soluble en temps polynomial mais l’algorithme est beaucoup plus complexe [2] ;. • Et si l’on veut des

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´

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

I Chaque op´ eration d´ ecoupe un morceau en deux : A, qu’on ne d´ ecoupe plus, et B , qu’on d´ ecoupe de mani` ere optimale ; I Pour reconstruire la d´ ecoupe optimale, on stocke