• Aucun résultat trouvé

Algorithmique des graphes 7 — Flots et applications (1) Anthony Labarre 17 mars 2021

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmique des graphes 7 — Flots et applications (1) Anthony Labarre 17 mars 2021"

Copied!
107
0
0

Texte intégral

(1)

Algorithmique des graphes

7 — Flots et applications (1)

Anthony Labarre

17 mars 2021

(2)

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

Motivations

• On dispose de sources fabriquant divers produits ;

• On veut acheminer ces ressources vers des puits;

• On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;

• On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;

s1

s2

...

t1

t2

... tp

r´eseau

(3)

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

Motivations

• On dispose de sources fabriquant divers produits ;

• On veut acheminer ces ressources vers des puits;

• On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;

• On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;

s1

s2

... sk

t1

t2

... tp

r´eseau

3

(4)

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

Motivations

• On dispose de sources fabriquant divers produits ;

• On veut acheminer ces ressources vers des puits;

• On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;

• On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;

s1

s2

...

t1

t2

... r´eseau

(5)

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

Motivations

• On dispose de sources fabriquant divers produits ;

• On veut acheminer ces ressources vers des puits;

• On doit emprunter un r´eseau de transport dont les capacit´es sont limit´ees ;

• On veut maximiser la quantit´e de ressources achemin´ees dans le r´eseau ;

s1

s2

... sk

t1

t2

... tp

r´eseau

5

(6)

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

Applications

• Le probl`eme de flot maximum a des applications directes :

acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .

optimisation du trafic routier (cf. Waze) ;

• ... et un peu moins directes, d´evelopp´ees plus loin :

calcul de chemins disjoints ;

calcul de couplages dans un graphe biparti ;

(7)

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

Applications

• Le probl`eme de flot maximum a des applications directes :

acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .

optimisation du trafic routier (cf. Waze) ;

• ... et un peu moins directes, d´evelopp´ees plus loin :

calcul de chemins disjoints ;

calcul de couplages dans un graphe biparti ;

7

(8)

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

Applications

• Le probl`eme de flot maximum a des applications directes :

acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .

optimisation du trafic routier (cf. Waze) ;

• ... et un peu moins directes, d´evelopp´ees plus loin :

calcul de chemins disjoints ;

calcul de couplages dans un graphe biparti ;

(9)

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

Applications

• Le probl`eme de flot maximum a des applications directes :

acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .

optimisation du trafic routier (cf. Waze) ;

• ... et un peu moins directes, d´evelopp´ees plus loin :

calcul de chemins disjoints ;

calcul de couplages dans un graphe biparti ;

9

(10)

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

Applications

• Le probl`eme de flot maximum a des applications directes :

acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .

optimisation du trafic routier (cf. Waze) ;

• ... et un peu moins directes, d´evelopp´ees plus loin :

calcul de chemins disjoints ;

calcul de couplages dans un graphe biparti ;

(11)

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

Applications

• Le probl`eme de flot maximum a des applications directes :

acheminement de produits vers des destinations en maximisant la quantit´e, le profit, . . .

optimisation du trafic routier (cf. Waze) ;

• ... et un peu moins directes, d´evelopp´ees plus loin :

calcul de chemins disjoints ;

calcul de couplages dans un graphe biparti ;

11

(12)

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

R´ eseaux de flot

Uneseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´ec(u,v)0, avec :

unesources (un sommet de degr´e entrant nul) ;

unpuitst (un sommet de degr´e sortant nul).

On suppose que tous les autres sommets appartiennent `a un chemin des`at.

Exemple 1

s

a

b

c

d

t 16

13

4

12 9

14

7

4 20

Hypoth`eses suppl´ementaires :

1 toutes lescapacit´eset tous lesflotssont entiers ; 2 les arcs du r´eseau n’existent que dans un seul sens.

(13)

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

R´ eseaux de flot

Uneseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´ec(u,v)0, avec :

unesources (un sommet de degr´e entrant nul) ;

unpuitst (un sommet de degr´e sortant nul).

On suppose que tous les autres sommets appartiennent `a un chemin des`at.

Exemple 1

s

a

b

c

d

t 16

13

4

12 9

14

7

4 20

Hypoth`eses suppl´ementaires :

1 toutes lescapacit´eset tous lesflotssont entiers ; 2 les arcs du r´eseau n’existent que dans un seul sens.

13

(14)

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

R´ eseaux de flot

Uneseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´ec(u,v)0, avec :

unesources (un sommet de degr´e entrant nul) ;

unpuitst (un sommet de degr´e sortant nul).

On suppose que tous les autres sommets appartiennent `a un chemin des`at.

Exemple 1

s

a

b

c

d

t 16

13

4

12 9

14

7

4 20

Hypoth`eses suppl´ementaires :

1 toutes lescapacit´eset tous lesflotssont entiers ; 2 les arcs du r´eseau n’existent que dans un seul sens.

(15)

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

R´ eseaux de flot

Uneseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´ec(u,v)0, avec :

unesources (un sommet de degr´e entrant nul) ;

unpuitst (un sommet de degr´e sortant nul).

On suppose que tous les autres sommets appartiennent `a un chemin des`at.

Exemple 1

s

a

b

c

d

t 16

13

4

12 9

14

7

4 20

Hypoth`eses suppl´ementaires :

1 toutes lescapacit´eset tous lesflotssont entiers ; 2 les arcs du r´eseau n’existent que dans un seul sens.

15

(16)

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

R´ eseaux de flot

Uneseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´ec(u,v)0, avec :

unesources (un sommet de degr´e entrant nul) ;

unpuitst (un sommet de degr´e sortant nul).

On suppose que tous les autres sommets appartiennent `a un chemin des`at.

Exemple 1

s

a

b

c

d

t 16

13

4

12 9

14

7

4 20

Hypoth`eses suppl´ementaires :

1 toutes lescapacit´eset tous lesflotssont entiers ; 2 les arcs du r´eseau n’existent que dans un seul sens.

(17)

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

R´ eseaux de flot

Uneseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´ec(u,v)0, avec :

unesources (un sommet de degr´e entrant nul) ;

unpuitst (un sommet de degr´e sortant nul).

On suppose que tous les autres sommets appartiennent `a un chemin des`at.

Exemple 1

s

a

b

c

d

t 16

13

4

12 9

14

7

4 20

Hypoth`eses suppl´ementaires :

1 toutes lescapacit´eset tous lesflotssont entiers ; 2 les arcs du r´eseau n’existent que dans un seul sens.

17

(18)

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

R´ eseaux de flot

Uneseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´ec(u,v)0, avec :

unesources (un sommet de degr´e entrant nul) ;

unpuitst (un sommet de degr´e sortant nul).

On suppose que tous les autres sommets appartiennent `a un chemin des`at.

Exemple 1

s

a

b

c

d

t 16

13

4

12 9

14

7

4 20

Hypoth`eses suppl´ementaires :

2 les arcs du r´eseau n’existent que dans un seul sens.

(19)

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

R´ eseaux de flot

Uneseau de flotest un graphe orient´e et pond´er´eG = (V,A,c) dont chaque arc (u,v) poss`ede unecapacit´ec(u,v)0, avec :

unesources (un sommet de degr´e entrant nul) ;

unpuitst (un sommet de degr´e sortant nul).

On suppose que tous les autres sommets appartiennent `a un chemin des`at.

Exemple 1

s

a

b

c

d

t 16

13

4

12 9

14

7

4 20

Hypoth`eses suppl´ementaires :

1 toutes lescapacit´eset tous lesflotssont entiers ; 2 les arcs du r´eseau n’existent que dans un seul sens.

19

(20)

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

Flots

Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :

1 ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e

2 ∀ u ∈V \ {s,t}:P

v∈V f(v,u) =P

v∈V f(u,v) ; conservation 3 f(u,v) = 0 si (u,v)6∈A.

Lavaleurdu flot est |f|=P

v∈V f(s,v) =P

v∈V f(v,t). Exemple 2 (x/y : flot x, capacit´ey)

s

a

b

c

d

t 11/16

8/13

1/4

12/12

4/9

11/14

7/7

4/4 15/20

Conservation

entrant sortant

a 12 12

b 12 12

c 19 19

d 11 11

s 0 19

t 19 0

(21)

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

Flots

Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :

1 ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e 2 ∀ u∈V \ {s,t}:P

v∈V f(v,u) =P

v∈V f(u,v) ; conservation

3 f(u,v) = 0 si (u,v)6∈A. Lavaleurdu flot est |f|=P

v∈V f(s,v) =P

v∈V f(v,t). Exemple 2 (x/y : flot x, capacit´ey)

s

a

b

c

d

t 11/16

8/13

1/4

12/12

4/9

11/14

7/7

4/4 15/20

Conservation

entrant sortant

a 12 12

b 12 12

c 19 19

d 11 11

s 0 19

t 19 0

21

(22)

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

Flots

Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :

1 ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e 2 ∀ u∈V \ {s,t}:P

v∈V f(v,u) =P

v∈V f(u,v) ; conservation 3 f(u,v) = 0 si (u,v)6∈A.

Lavaleurdu flot est |f|=P

v∈V f(s,v) =P

v∈V f(v,t). Exemple 2 (x/y : flot x, capacit´ey)

s

a

b

c

d

t 11/16

8/13

1/4

12/12

4/9

11/14

7/7

4/4 15/20

Conservation

entrant sortant

a 12 12

b 12 12

c 19 19

d 11 11

s 0 19

t 19 0

(23)

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

Flots

Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :

1 ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e 2 ∀ u∈V \ {s,t}:P

v∈V f(v,u) =P

v∈V f(u,v) ; conservation 3 f(u,v) = 0 si (u,v)6∈A.

Lavaleurdu flot est |f|=P

v∈V f(s,v) =P

v∈V f(v,t).

Exemple 2 (x/y : flot x, capacit´ey)

s

a

b

c

d

t 11/16

8/13

1/4

12/12

4/9

11/14

7/7

4/4 15/20

Conservation

entrant sortant

a 12 12

b 12 12

c 19 19

d 11 11

s 0 19

t 19 0

23

(24)

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

Flots

Unflotdans un r´eseau de flotG = (V,A,c) est une fonction f :V ×V →R satisfaisant les propri´et´es suivantes :

1 ∀ u,v ∈V : 0≤f(u,v)≤c(u,v) ; contrainte de capacit´e 2 ∀ u∈V \ {s,t}:P

v∈V f(v,u) =P

v∈V f(u,v) ; conservation 3 f(u,v) = 0 si (u,v)6∈A.

Lavaleurdu flot est |f|=P

v∈V f(s,v) =P

v∈V f(v,t).

Exemple 2 (x/y : flot x, capacit´ey)

s

a c

t 11/16

1/4

12/12

4/9 7/7

15/20

Conservation

entrant sortant

a 12 12

b 12 12

c 19 19

(25)

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

Probl` eme du flot maximum

• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.

• De nombreux algorithmes existent :

laethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;

l’algorithme de Dinitz ;

les pr´eflots (voir [1]) ;

• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;

25

(26)

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

Probl` eme du flot maximum

• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.

• De nombreux algorithmes existent :

laethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;

l’algorithme de Dinitz ;

les pr´eflots (voir [1]) ;

• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;

(27)

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

Probl` eme du flot maximum

• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.

• De nombreux algorithmes existent :

laethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;

l’algorithme de Dinitz ;

les pr´eflots (voir [1]) ;

• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;

27

(28)

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

Probl` eme du flot maximum

• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.

• De nombreux algorithmes existent :

laethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;

l’algorithme de Dinitz ;

les pr´eflots (voir [1]) ;

• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;

(29)

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

Probl` eme du flot maximum

• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.

• De nombreux algorithmes existent :

laethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;

l’algorithme de Dinitz ;

les pr´eflots (voir [1]) ;

• Le meilleur `a l’heure actuelle est celui de James Orlin [2] (2013), en O(|V||A|) ;

29

(30)

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

Probl` eme du flot maximum

• Le probl`eme du flot maximum est de trouver, pour un r´eseau de flotG donn´e, un flotf de valeur maximum, c’est-`a-dire que pour tout flotf0 surG, on a |f| ≥ |f0|.

• De nombreux algorithmes existent :

laethodede Ford-Fulkerson, et la variante d’Edmonds-Karp ;

l’algorithme de Dinitz ;

les pr´eflots (voir [1]) ;

• Le meilleur `a l’heure actuelle est celui de James Orlin [2]

(2013), en O(|V||A|) ;

(31)

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

Pr´ esentation g´ en´ erale de la m´ ethode

• Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :

1 on cherche unchemin augmentantdans uneseau r´esiduel Gf;

2 on augmente au maximumf sur les arcs de ce chemin ;

3 on met `a jour Gf ;

• La m´ethode se termine quand il n’existe plus de chemin augmentant ;

• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;

31

(32)

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

Pr´ esentation g´ en´ erale de la m´ ethode

• Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :

1 on cherche unchemin augmentantdans uneseau r´esiduel Gf;

2 on augmente au maximumf sur les arcs de ce chemin ;

3 on met `a jour Gf ;

• La m´ethode se termine quand il n’existe plus de chemin augmentant ;

• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;

(33)

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

Pr´ esentation g´ en´ erale de la m´ ethode

• Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :

1 on cherche unchemin augmentantdans uneseau r´esiduel Gf;

2 on augmente au maximumf sur les arcs de ce chemin ;

3 on met `a jour Gf ;

• La m´ethode se termine quand il n’existe plus de chemin augmentant ;

• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;

33

(34)

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

Pr´ esentation g´ en´ erale de la m´ ethode

• Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :

1 on cherche unchemin augmentantdans uneseau r´esiduel Gf;

2 on augmente au maximumf sur les arcs de ce chemin ;

3 on met `a jourGf ;

• La m´ethode se termine quand il n’existe plus de chemin augmentant ;

• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;

(35)

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

Pr´ esentation g´ en´ erale de la m´ ethode

• Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :

1 on cherche unchemin augmentantdans uneseau r´esiduel Gf;

2 on augmente au maximumf sur les arcs de ce chemin ;

3 on met `a jourGf ;

• La m´ethode se termine quand il n’existe plus de chemin augmentant ;

• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;

35

(36)

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

Pr´ esentation g´ en´ erale de la m´ ethode

• Lam´ethode de Ford-Fulkerson proc`ede comme suit ; on d´emarre avec un flotf nul partout pour le r´eseauG, et `a chaque it´eration :

1 on cherche unchemin augmentantdans uneseau r´esiduel Gf;

2 on augmente au maximumf sur les arcs de ce chemin ;

3 on met `a jourGf ;

• La m´ethode se termine quand il n’existe plus de chemin augmentant ;

• Le flot ainsi obtenu est maximum (on le prouvera plus loin) ;

(37)

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

Pseudocode de la m´ ethode

Algorithme 1 :FordFulkerson(G) Entr´ees : un r´eseau de flot G.

Sortie :un flot maximum pour G.

1 flot← tableau associatif (cl´es =G.arcs(), valeurs = 0);

2 source ←unique sommet de degr´e entrant nul deG;

3 puits ←unique sommet de degr´e sortant nul deG;

4 Gf ← G; // au d´epart, r´eseau = r´esiduel 5 chemin ← CheminAugmentant(Gf, source, puits);

6 tant quechemin 6=nil faire

7 AugmenterFlot(flot, chemin);

8 MettreAJourR´esiduel(G,Gf, chemin.arcs(), flot);

9 chemin ← CheminAugmentant(Gf, source, puits);

10 renvoyer flot;

37

(38)

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

R´ eseaux r´ esiduels

D´efinition 1

SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est

cf(u,v) =

c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,

0 sinon .

D´efinition 2

SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle.

Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.

(39)

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

R´ eseaux r´ esiduels

D´efinition 1

SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est

cf(u,v) =

c(u,v)−f(u,v) si (u,v)∈A,

f(v,u) si (v,u)∈A,

0 sinon .

D´efinition 2

SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle.

Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.

39

(40)

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

R´ eseaux r´ esiduels

D´efinition 1

SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est

cf(u,v) =

c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,

0 sinon .

D´efinition 2

SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle.

Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.

(41)

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

R´ eseaux r´ esiduels

D´efinition 1

SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est

cf(u,v) =

c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,

0 sinon .

D´efinition 2

SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle.

Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.

41

(42)

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

R´ eseaux r´ esiduels

D´efinition 1

SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est

cf(u,v) =

c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,

0 sinon .

D´efinition 2

SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle.

Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.

(43)

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

R´ eseaux r´ esiduels

D´efinition 1

SoitG = (V,A,c) un r´eseau muni d’un flotf. Lacapacit´e r´esiduelled’une paire de sommets u,v ∈V est

cf(u,v) =

c(u,v)−f(u,v) si (u,v)∈A, f(v,u) si (v,u)∈A,

0 sinon .

D´efinition 2

SoitG un r´eseau muni d’un flot f. Le r´eseau r´esiduelGf est le sous-graphe deG induit par les arcs de capacit´e r´esiduelle non nulle. Autrement dit, il s’agit du grapheGf = (V,Af,cf) o`u Af ={(u,v)∈V ×V :cf(u,v)>0}.

43

(44)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a c

t

12

4 7 15 3

511 3 4

5 5

8

11

1

5

(45)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a

b

c

d

t

12

4 7 15 3

5

11

3 4

5

5

8

11

1

5

45

(46)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a c

t

12

4 7 15 3

5 11

3 4

5

5

8

11

1

5

(47)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a

b

c

d

t 12

4 7 15 3

5 11

3 4

5

5

8

11

1

5

47

(48)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a c

t 12

4 7 15 3

511 3

4

5

5

8

11

1

5

(49)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a

b

c

d

t 12

4 7 15

3 511 3

4

5

5

8

11

1

5

49

(50)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a c

t 12

4 7 15

3 511 3 4 5

5

8

1

5

(51)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a

b

c

d

t 12

4

7

15 3

511 3 4

5 5

8

11

1

5

51

(52)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a c

t 12

4

7 15 3

511 3 4

5 5

8

1

5

(53)

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

R´ eseaux r´ esiduels : exemple

s

a

b

c

d

t 11/16

8/13 1/4

12/12 4/9

11/14

7/7

4/4 15/20 G :

Gf : s

a

b

c

d

t 12

4 7 15 3

511 3 4

5 5

8

11

1

5

53

(54)

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

Chemins augmentants

Unchemin augmentantP est un chemin simple (sans r´ep´etition de sommets) des `at dans le r´eseau r´esiduelGf. Sacapacit´e minimaleest cf(P) = min(u,v)∈A(P)cf(u,v).

Exemple 3

s

a

b

c

d

t 12

4 7 15 3

511 3 4

5 5

8

11

1

5

(55)

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

Chemins augmentants

Unchemin augmentantP est un chemin simple (sans r´ep´etition de sommets) des `at dans le r´eseau r´esiduelGf. Sacapacit´e minimaleest cf(P) = min(u,v)∈A(P)cf(u,v).

Exemple 3

s

a

b

c

d

t 12

4 7 15 3

511 3 4

5 5

8

11

1

5

55

(56)

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

Augmentation du flot par les chemins augmentants

• Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;

• On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;

• Attention : les arcs deP appartiennent au r´esiduel Gf !

• Cela signifie que bien que|f|augmente, f peutdiminuersur certains arcs du r´eseau G;

(57)

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

Augmentation du flot par les chemins augmentants

• Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;

• On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;

• Attention : les arcs deP appartiennent au r´esiduel Gf !

• Cela signifie que bien que|f|augmente, f peutdiminuersur certains arcs du r´eseau G;

57

(58)

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

Augmentation du flot par les chemins augmentants

• Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;

• On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;

• Attention : les arcs deP appartiennent au r´esiduel Gf !

• Cela signifie que bien que|f|augmente, f peutdiminuersur certains arcs du r´eseau G;

(59)

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

Augmentation du flot par les chemins augmentants

• Une fois le chemin augmentant P trouv´e, on augmente le flot au maximumsur tous ses arcs ;

• On ne peut pas faire mieux que cf(P), donc on augmentef decf(P) sur tous les arcs deP;

• Attention : les arcs deP appartiennent au r´esiduel Gf !

• Cela signifie que bien que|f|augmente, f peutdiminuersur certains arcs du r´eseau G;

59

(60)

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

L’algorithme d’Edmonds-Karp

• On parle dem´ethode (et non d’algorithme) de Ford-Fulkerson car aucune pr´ecision n’est donn´ee sur la mani`ere de choisir le chemin augmentant ;

• Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;

• Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin

augmentant ;

• Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;

(61)

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

L’algorithme d’Edmonds-Karp

• On parle dem´ethode (et non d’algorithme) de Ford-Fulkerson car aucune pr´ecision n’est donn´ee sur la mani`ere de choisir le chemin augmentant ;

• Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;

• Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin

augmentant ;

• Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;

61

(62)

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

L’algorithme d’Edmonds-Karp

• On parle dem´ethode (et non d’algorithme) de Ford-Fulkerson car aucune pr´ecision n’est donn´ee sur la mani`ere de choisir le chemin augmentant ;

• Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;

• Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin

augmentant ;

• Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;

(63)

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

L’algorithme d’Edmonds-Karp

• On parle dem´ethode (et non d’algorithme) de Ford-Fulkerson car aucune pr´ecision n’est donn´ee sur la mani`ere de choisir le chemin augmentant ;

• Il n’y a pas de consensus sur la mani`ere optimale de choisir ce chemin (cf. TD) ;

• Algorithme d’Edmonds-Karp = m´ethode de Ford-Fulkerson avec s´election du plus court chemin comme chemin

augmentant ;

• Pas n´ecessairement toujours le plus rapide, mais on peut d´emontrer que cette approche effectue au plusO(|V||A|) it´erations ;

63

(64)

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

L’algorithme d’Edmonds-Karp en action

Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.

s

a

b

c

d

t 16

13

4

12 9 14

7

4 20

13

4

12 9 14

7

4 4

12

128

4

12 9 7

4 4

4 12

128 9 10

4

4

12

9 7

4 11

4 12

191 2 3

11

s

a

b

c

d

t 16

13

4

12 9 14

7

4 20

12/16 13

4

12/12 9 14

7

4 12/20 12/16

4/13

4

12/12 9 4/14

7

4/4 12/20 12/16

11/13

4

12/12 9 11/14

7/7

4/4 19/20

Gf G

(65)

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

L’algorithme d’Edmonds-Karp en action

Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.

s

a

b

c

d

t 16

13

4

12 9 14

7

4 20

13

4

12 9 14

7

4 4

12

128

4

12 9 7

4 4

4 12

128 9 10

4

4

12

9 7

4 11

4 12

191 2 3

11

s

a

b

c

d

t 16

13

4

12 9 14

7

4 20

12/16 13

4

12/12 9 14

7

4 12/20 12/16

4/13

4

12/12 9 4/14

7

4/4 12/20 12/16

11/13

4

12/12 9 11/14

7/7

4/4 19/20

Gf G

65

(66)

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

L’algorithme d’Edmonds-Karp en action

Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.

s

a

b

c

d

t 16

13

4

12 9 14

7

4 20

13

4

12 9 14

7

4 4

12

128

4

12 9 7

4 4

4 12

128 9 10

4

4

12

9 7

4 11

4 12

191 2 3

11

s

a

b

c

d

t

16 13

4

12 9 14

7

4 20

12/16 13

4

12/12 9 14

7

4 12/20

12/16 4/13

4

12/12 9 4/14

7

4/4 12/20 12/16

11/13

4

12/12 9 11/14

7/7

4/4 19/20

Gf G

(67)

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

L’algorithme d’Edmonds-Karp en action

Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.

s

a

b

c

d

t

16 13

4

12 9 14

7

4 20

13

4

12 9 14

7

4 4

12

128

4

12 9 7

4 4

4 12

128 9 10

4

4

12

9 7

4 11

4 12

191 2 3

11

s

a

b

c

d

t

16 13

4

12 9 14

7

4 20

12/16 13

4

12/12 9 14

7

4 12/20

12/16 4/13

4

12/12 9 4/14

7

4/4 12/20 12/16

11/13

4

12/12 9 11/14

7/7

4/4 19/20

Gf G

67

(68)

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

L’algorithme d’Edmonds-Karp en action

Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.

s

a

b

c

d

t

16 13

4

12 9 14

7

4 20

13

4

12 9 14

7

4 4

12

128

4

12 9 7

4 4

4 12

128 9 10

4

4

12

9 7

4 11

4 12

191 2 3

11

s

a

b

c

d

t

16 13

4

12 9 14

7

4 20

12/16 13

4

12/12 9 14

7

4 12/20

12/16 4/13

4

12/12 9 4/14

7

4/4 12/20 12/16

11/13

4

12/12 9 11/14

7/7

4/4 19/20

Gf G

(69)

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

L’algorithme d’Edmonds-Karp en action

Examinons les ´etapes de l’algorithme d’Edmonds-Karp sur un exemple.

s

a

b

c

d

t

16 13

4

12 9 14

7

4 20

13

4

12 9 14

7

4 4

12

128

4

12 9 7

4 4

4 12

128 9 10

4

4

12

9 7

4 11

4 12

191 2 3

11

s

a

b

c

d

t

16 13

4

12 9 14

7

4 12/16 20

13

4

12/12 9 14

7

4 12/20

12/16 4/13

4

12/12 9 4/14

7

4/4 12/20

12/16 11/13

4

12/12 9 11/14

7/7

4/4 19/20

Gf G

69

Références

Documents relatifs

• 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

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

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

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