Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot...

61
Problème de flot maximal Problème de flot maximal dans un réseau on du problème de flot maximal. Notions de coupe et s d’augmentation par rapport à un flot f. Algorithm ulkerson. Théorème d’intégrité. Généralisation au c sources et plusieurs destinations. Présence de con té sur les arcs et les sommets. Détermination d’un e.

Transcript of Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot...

Page 1: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal

Problème de flot maximal

dansun réseau

Formulation du problème de flot maximal. Notions de coupe etde chaînes d’augmentation par rapport à un flot f. Algorithme deFord et Fulkerson. Théorème d’intégrité. Généralisation au cas deplusieurs sources et plusieurs destinations. Présence de contraintesde capacité sur les arcs et les sommets. Détermination d’un flotréalisable.

Page 2: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 2

Une compagnie possède 6 postes T1, T2, T3, T4, T5 et T6 deretransmission des appels téléphoniques des Laurentides vers lesCantons de l’Est.

T1

T2

T4

T3

T5

T6Laurentides Cantons de

l’Est

128

9

11

6

3

4

6

6

8

9

4

Les capacités maximales en milliers d’appels par minute.

Introduction

Page 3: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

3

Ce réseau de communication a été construit de telle façon qu’ilsatisfasse aux conditions suivantes :

Chaque poste intermédiaire T2, T3, T4, T5 conserve les appels i.e.tout appel arrivant à l’un de ces postes est immédiatement acheminévers un autre poste (il ne se perd pas d’appels à un poste donné).

Le # d’appels passant entre 2 postes est évidemment une quantiténon négative et est au plus égal à la capacité maximale des lignestéléphoniques reliant ces 2 postes.

Les appels des Laurentides passent tous par le poste T1 qui lesachemine vers les autres postes.

Les appels arrivant au poste T6 sont tous acheminés dans lesCantons de l’Est.

Problème: Soit v le # d’appels passant dans le réseau de T1 (la source)à T6 (la destination), comment répartir les appels dans leréseau de façon à maximiser v ?

Page 4: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

4

Énoncé du problème de flot maximal

Soit un réseau R = (N, A) où N représente les sommets du réseau etA l’ensemble des arcs.

Le problème avec une source s et une destination d s’énonce alorscomme suit :

MAX v

f(x, y)

{y N | (x, y) A}

- f(y, x)

{y N | (y, x) A}

=

v si x = s

0 si x s, d-v si x = d

L(x, y) f(x, y) K(x, y), (x, y) A.

(P)

On désigne aussi parK(x, y) : capacité maximale de l’arc (x, y), (x, y) A,f(x, y) : quantité de flot passant par l’arc (x, y), (x, y) A.

Note : Sauf avis contraire par la suite, L(x, y) = 0 (x, y) A.

Page 5: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

5

Problème de programmation linéaire

En ajoutant un arc fictif (d, s) de capacité infinie, le problème devient :

MAX f(d, s)

f(x, y)

{y N | (x, y) A'}

- f(y, x)

{y N | (y, x) A'}

= 0 x N.

L(x, y) f(x, y) K(x, y), (x, y) A' où A' = A {(d, s)}.

Note :

Cela nous ramène à un problème de flot à coût minimum.

La méthode du simplexe peut être utilisée :- membre de droite nul,- vecteur de coût nul excepté pour la variable f(d, s).

un algorithme spécialisé plus efficace que la méthode du simplexe.

Page 6: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 6

Exemple :

T1

T2

T4

T3

T5

T6

(12, 12)

(8, 8)(3, 9)

(6, 11)

(6, 6)

(0, 3)

0, 4

(6, 6)

(6, 6)

(8, 8)

(9, 9)

(0, 4)

29 29

(f(x, y), K(x, y))

La valeur du flot passant dans ce réseau est v = 29.

Page 7: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 7

Définition de coupe

Si X et Y sont 2 sous-ensembles de N, (X, Y) désigne {(x, y) A | x X, y Y}.

On peut aussi définir une fonction g sur A et à valeurs réelles,comme suit :

g(X, Y) = g(x, y)(x, y) (X, Y)

Notation :

Définition :

Soit X N, un sous-ensemble de sommets contenant la source s,mais ne contenant pas la sortie d, la partition X, X = N – X génèreune coupe C [X, X ] = (X, X) (X, X ) séparant la source s de ladestination d.

Page 8: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 8

Définition :

La capacité de la coupe C [X, X ] est égale à K(X, X) – L(X, X).

s

Exemple :

1

3 d

2

41

2 1

11

2

11

1

Soit X = {s, 1}, alors C = {(s, 2), (1, 3), (1, d), (1, 2), (3, s), (d, s)}.

Note : Toute chaîne reliant s à d doit nécessairement contenir un arcdans chaque coupe [X, X ].

Page 9: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 9

Note :

Si l’on enlève du réseau tous les arcs de la coupe [X, X ], il ne peuty avoir de chaînes reliant s à d.

La valeur du flot pouvant passer dans le nouveau réseau ainsi obtenuest nulle.

Étant donné qu’une coupe bloque toutes les chaînes reliant s à d,il s’ensuit que la valeur du flot f passant dans le réseau ne peut pasexcéder la capacité d’une coupe, quelque soit celle-ci.

Lemme :

Soient un flot f de s à d dans le réseau R = (N, A) et v la valeur dece flot. Si [X, X ] est une coupe dans R séparant s et d, alors

v = f(X, X) – f(X, X) K(X, X) – L(X, X).

La valeur v d’un flot quelconque de s à d est inférieure ouégale à la capacité de toute coupe séparant s et d.

Page 10: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

10

Démonstration du lemme :

Étant donné que f est un flot, f satisfait les équations :

f(s, N) – f(N, s) = v

f(d, N) – f(N, d) = - v

f(x, N) – f(N, x) = 0 si x s et x d.

Additions ces équations pour x X, vu que s X et d X, on a :

v = (f(x, N) – f(N, x) ) = f(X, N) – f(N, X).x X

Sachant que N = X X, on obtient :

v = f(X, X X) – f(X X, X)

v = f(X, X) + f(X, X) – f(X, X) – f(X, X) = f(X, X)– f(X, X).

Puisque f(X, X) L(X, X) et f(X, X) K(X, X), alors v = f(X, X) – f(X, X) K(X, X) – L(X, X).

CQFD

Page 11: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 11

Corollaire du lemme :

vmax = Max v(f) Min K(X, X) – L(X, X){f est un flot réalisable de s à d} X N

s X, d X

c’est-à-dire, que la valeur maximale du flot est toujours inférieure ouégale à la coupe minimale des capacités.

Page 12: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 12

Exemple :

s d

1

22,3

0,1

1,1

1,1

1,1

2,3

33

(f(x, y), K(x, y))

L(x, y) = 0 (x, y) A.

v = 3.

XX

La coupe C = {(s, 1), (2, 1), (2, d), (1, 2)} a aussi une capacité égaleà 1 + 1 + 1 - 0 = 3.

D’après ce qui précède, le flot est maximal et la coupe est minimale.

Page 13: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 13

Théorème (flot max – coupe min) :

Pour n’importe quel réseau donné, la valeur maximale du flot reliantla source s à la destination d est égale à la capacité minimale descoupes séparant s et d dans le réseau.

Démonstration :

Laissée en exercice.

Les définitions suivantes et les corollaires de ce théorème vont nouspermettre d’élaborer un procédé pour parvenir à un flot maximal.

Page 14: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 14

Définition :

Une chaîne W reliant la source s à la destination d est dite une chaîned’augmentation par rapport au flot f si

f(x, y) < K(x, y) (x,y) de cette chaîne tel que (x,y) Aet

f(x, y) > L(x, y) (x,y) de cette chaîne tel que (y,x) A.

Les arcs de W parcourusdans le sens de leur orientation.

Les arcs de W parcourusdans le sens inverse de leur orientation.

Page 15: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 15

s d

1

20,3

1,1

1,1

1,1

0,3

11

(f(x, y), K(x, y))

Exemple :

Il existe une chaîned’augmentation :

(s,2) - (1,2) – (1,d).

On peut faire passer une unitéde flot à travers cette chaîne.

s d

1

21,3

0,1

1,1

1,1

1,3

22

Page 16: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 16

Définition :

Un arc (x, y) est saturé par rapport à f si f(x, y) = K(x, y).

Un arc (u, v) est dit minimal par rapport à f si f(u, v) = L(u, v).

Corollaire :

Un flot f est maximal si et seulement si il n’existe pas de chaîned’augmentation par rapport à celui-ci.

Corollaire :

Une coupe [X, X] est minimale si et seulement si, pour tout flotmaximal f, les arcs de (X, X) sont saturés par rapport à f et ceux de(X, X) sont minimaux par rapport à f.

Appliquons maintenant ces résultats à l’exemple suivant où à chaqueitération, nous tenterons de construire une chaîne d’augmentation.

Page 17: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 17

Exemple :

s

2 3

4

d

0,6

0,4

0,30,2

0,3

0,20,1

0,9

0,7

0 0

Déterminons d’abord un flot au jugé en saturant le plus grand nombrepossible de chemins reliant s à d.

I. s - 2 - 3 - d : 3 unités pour obtenir une saturation.

0,6

Page 18: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 18

s

2 3

4

d

3,6

0,4

0,30,2

3,3

0,20,1

0,9

3,7

3 3

II. s - 2 - 3 - 4 - d : déjà saturé.

III. s - 2 - 4 - 3 - d : 2 unités pour obtenir une saturation.

0,6

Page 19: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 19

s

2 3

4

d

5,6

0,4

0,32,2

3,3

2,20,1

0,9

5,7

5 5

IV. s - 2 - 4 - d : déjà saturé.

V. s - 3 - d : 2 unités pour obtenir une saturation.

0,6

Page 20: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 20

s

2 3

4

d

5,6

0,4

0,32,2

3,3

2,20,1

0,9

7,7

7 72,6

VI. s - 3 - 4 - d : 1 unité pour obtenir une saturation.

Page 21: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 21

s

2 3

4

d

5,6

0,4

0,32,2

3,3

2,21,1

1,9

7,7

8 83,6

VII. s - 4 - 2 - 3 - d : déjà saturé.

VIII. s - 4 - 3 - d : déjà saturé.

IX. s - 4 - d : 4 unités pour obtenir une saturation.

Page 22: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

s

2 3

4

d

5,6

4,4

0,32,2

3,3

2,21,1

5,9

7,7

12 123,6

Pour déterminer une chaîne d’augmentation reliant s à d (si elle existe),on doit opter pour une procédure de marquage :

Soit Z = {(s, pred(s) = •, = +)},pour chaque sommet (x, pred(x), ) Z non traité,

si f(x, y) < K(x, y)ajouter (y, x, min{, K(x, y) – f(x, y)}) à Z

sinon si f(y, x) > L(y, x)ajouter (y, x, min{, f(y, x) – L(y, x)}) à Z.

Page 23: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 23

s

2 3

4

d

5,6

4,4

0,32,2

3,3

2,21,1

5,9

7,7

12 123,6

Z = {(s, •,+)}

Z = {(s, •,+), (2, s, 1), (3, s, 3)}

Z = {(s, •,+), (2, s, 1), (3, s, 3), (4, 3, 2)}

Z = {(s, •,+), (2, s, 1), (3, s, 3), (4, 3, 2), (d, 4, 2)}

Il existe une chaîne d’augmentation reliant s à d où l’on peut faire passer2 unités de flot. À l’aide de Z, on peut retracer la chaîne d’augmentation.

Page 24: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

24

s

2 3

4

d

5,6

4,4

0,32,2

3,3

0,21,1

7,9

7,7

14 145,6

Répétons la procédure de marquage :

Z = {(s, •,+)}

Z = {(s, •,+), (2, s, 1), (3, s, 1)}

Z = {(s, •,+), (2, s, 1), (3, s, 1)}

Il n’est pas possible d’atteindre la sortie d;par conséquent, le flot est maximal.

Page 25: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 25

s

2 3

4

d

5,6

4,4

0,32,2

3,3

0,21,1

7,9

7,7

14 145,6

X = {s, 2, 3}

(X, X) = {(s, 4), (2, 4), (3, 4), (3, d)}(X, X) = {(4, 2), (4, 3)}

v = 14 = f (X, X) - f (X, X) = K(X, X) – L(X, X).

Donc, le flot est optimal.

Page 26: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

26

Algorithme de Ford & Fulkerson

Étape A Marquage des sommets

Cela conduit soit : à la fin de l’algorithme,à la découverte d’une chaîne d’augmentation.

Un sommet peut être dans l’un des 3 états suivants :non marquémarqué et examinémarqué et non encore examiné

À chaque sommet x marqué est associé un quadruplet(x, pred(x), m(x), p(x)).

Le sommetqui a permis le

le marquagede x.

La qté de flot supplém.que l’on peut faire passerdans la chaîne de s à x.

+ ou – selon que x a étémarqué grâce à l’arc(pred(x), x) ou (x, pred(x)).

Étape B Modifie le flot le long de la chaîne d’augmentation.

Page 27: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Description complète de l’algorithme de Ford & Fulkerson

Étape A

1. Initialisation.

La source s est marquée et non encore examinée : (s, •, •, ).

Les autres sommets sont non marqués.

2. Marquage.

Choisir un sommet x marqué et non encore examiné :(x, pred(x), m(x), p(x)).

sommet y non marqué tel que (x, y) A,si f(x, y) < K(x, y), alors marquez y non encore examiné :

(y, x, +, min{p(x), K(x, y) – f(x, y)})

sommet y non marqué tel que (y, x) A,si f(y, x) > L(y, x), alors marquez y non encore examiné :

(y, x, -, min{p(x), f(y, x) – L(y, x)})x est maintenant marqué et examiné.

Page 28: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 28

Si la destination d est marquée et non encore examinée,aller à l’étape B.

Si tous les sommets marqués ont été examinés, c’est terminé(il n’y a pas de chaînes d’augmentation et le flot est maximal).

Autrement, répéter cette opération de marquage avec un nouveausommet marqué et non encore examiné.

Page 29: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 29

Étape B Changement de flot dans une chaîne d’augmentation.

La destination d a été marquée : (d, pred(d), m(d), p(d)).

Si m(d) = + alors f(pred(d), d) = f(pred(d), d) + p(d)sinon f(d, pred(d)) = f(d, pred(d)) – p(d).

Posons y = pred(d).

Tant et aussi longtemps que y est différent de s{ soit le quadruplet associé à y : (y, pred(y), m(y), p(y)),

si m(y) = + alors f(pred(y), y) = f(pred(y), y) + p(d)sinon f(y, pred(y)) = f(y, pred(y)) – p(d);

poser y = pred(y).}.

On efface les marques des sommets et on retourne à l’étape A.

Page 30: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 30

Construction d’une coupe minimale

À la fin de l’algorithme de Ford & Fulkerson, on peut construireune coupe minimale comme suit :

Poser U = {i N| le sommet i est marqué},V = {j N| le sommet j est non marqué},

Alors la coupe minimale est [U, V] et v = K(U, V) – L(V, U).

Page 31: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 31

Exemple :

1

2

3

4

85

7

6

0,4

0,50,2

0,8

0,16

0,6

0,1

0,3

0,90,3

0,20,100,8

0,3

0,40,2 0,1

0,7

0,8

0 0

Effectuons un premier marquage.

Page 32: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

32

1

2

3

4

85

7

6

0,4

0,50,2

0,8

0,16

0,6

0,1

0,3

0,90,3

0,20,100,8

0,3

0,40,2 0,1

0,7

0,8

0 0

(•,•,)

(1,+,4)

(1,+,3)

(1,+,8)

(1,+,10)

(1,+,4)

(5,+,6)

Ajoutons 6 unités dans la chaîne d’augmentation.

Page 33: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

33

1

2

3

4

85

7

6

0,4

0,50,2

0,8

0,16

6,6

0,1

0,3

0,90,3

0,20,106,8

0,3

0,40,2 0,1

0,7

0,8

6 6

Effectuons un 2ième marquage.

Page 34: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

34

1

2

3

4

85

7

6

0,4

0,50,2

0,8

0,16

6,6

0,1

0,3

0,90,3

0,20,106,8

0,3

0,40,2 0,1

0,7

0,8

6 6

(•,•,)

(1,+,4)

(1,+,4)

(1,+,3)

(1,+,2)

(1,+,10)

(7,+,3)

Ajoutons 3 unités dans la chaîne d’augmentation.

Page 35: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

35

1

2

3

4

85

7

6

0,4

0,50,2

0,8

3,16

6,6

0,1

0,3

0,90,3

0,20,106,8

3,3

0,40,2 0,1

0,7

0,8

9 9

Effectuons un 3ième marquage.

Page 36: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

36

1

2

3

4

85

7

6

0,4

0,50,2

0,8

3,16

6,6

0,1

0,3

0,90,3

0,20,106,8

3,3

0,40,2 0,1

0,7

0,8

9 9

(•,•,)

(1,+,4)

(1,+,2)

(1,+,4)

(1,+,10)

(5,+,2)

(7,+,2)

Ajoutons 2 unités dans la chaîne d’augmentation.

Page 37: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

37

1

2

3

4

85

7

6

0,4

0,50,2

0,8

5,16

6,6

0,1

0,3

0,90,3

0,20,108,8

3,3

0,40,2 0,1

0,7

2,8

11 11

Effectuons un 4ième marquage.

Page 38: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

38

1

2

3

4

85

7

6

0,4

0,50,2

0,8

5,16

6,6

0,1

0,3

0,90,3

0,20,108,8

3,3

0,40,2 0,1

0,7

2,8

11 11

(•,•,)

(1,+,4)

(1,+,10)

(1,+,4)

(3,+,9)

(3,+,2)

(4,+,2)

Ajoutons 2 unités dans la chaîne d’augmentation.

Page 39: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

39

1

2

3

4

85

7

6

0,4

0,52,2

2,8

5,16

6,6

0,1

0,3

0,90,3

0,22,108,8

3,3

0,40,2 0,1

0,7

2,8

13 13

Effectuons un 5ième marquage.

Page 40: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

40

1

2

3

4

85

7

6

0,4

0,52,2

2,8

5,16

6,6

0,1

0,3

0,90,3

0,22,108,8

3,3

0,40,2 0,1

0,7

2,8

13 13

(•,•,)

(1,+,4)

(1,+,4)(1,+,8)

(6,+,4)

(6,+,2)

(7,+,4)

Ajoutons 4 unités dans la chaîne d’augmentation.

Page 41: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

41

1

2

3

4

85

7

6

0,4

0,52,2

2,8

9,16

6,6

0,1

0,3

0,90,3

0,22,108,8

3,3

4,40,2 0,1

4,7

2,8

17 17

Effectuons un 6ième marquage.

Page 42: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

42

1

2

3

4

85

7

6

0,4

0,52,2

2,8

9,16

6,6

0,1

0,3

0,90,3

0,22,108,8

3,3

4,40,2 0,1

4,7

2,8

17 17

(•,•,)

(1,+,4)

(1,+,8)

(2,+,3)

(5,+,3)

(7,+,3)

Ajoutons 3 unités dans la chaîne d’augmentation.

Page 43: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

43

1

2

3

4

85

7

6

3,4

0,52,2

2,8

12,16

6,6

0,1

0,3

0,93,3

0,22,108,8

3,3

4,40,2 0,1

4,7

5,8

20 20

Effectuons un 7ième marquage.

Page 44: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

44

1

2

3

4

85

7

6

3,4

0,52,2

2,8

12,16

6,6

0,1

0,3

0,93,3

0,22,108,8

3,3

4,40,2 0,1

4,7

5,8

20 20

(•,•,)

(1,+,1)

(1,+,8)

(3,+,8)

(5,+,3)

(5,+,1)

(7,+,3)

Ajoutons 3 unités dans la chaîne d’augmentation.

Page 45: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

45

1

2

3

4

85

7

6

3,4

0,52,2

2,8

15,16

6,6

0,1

0,3

3,93,3

0,25,108,8

3,3

4,40,2 0,1

4,7

8,8

23 23

Effectuons un 8ième marquage.

Page 46: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

46

1

2

3

4

85

7

6

3,4

0,52,2

2,8

15,16

6,6

0,1

0,3

3,93,3

0,25,108,8

3,3

4,40,2 0,1

4,7

8,8

23 23

(•,•,)

(1,+,5)

(1,+,1)

(3,+,5)

(5,+,1)

(6,+,1)

(7,+,1)

Ajoutons 1 unité dans la chaîne d’augmentation.

Page 47: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

47

1

2

3

4

85

7

6

3,4

0,52,2

2,8

16,16

6,6

0,1

0,3

4,93,3

0,26,108,8

3,3

4,40,2 1,1

5,7

8,8

24 24

Effectuons un 9ième marquage.

Page 48: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

1

2

3

4

85

7

6

3,4

0,52,2

2,8

16,16

6,6

0,1

0,3

4,93,3

0,26,108,8

3,3

4,40,2 1,1

5,7

8,8

24 24

(•,•,)

(1,+,1)

(1,+,4)

(3,+,4)

Il n’est pas possible d’atteindre le sommet 8; le flot est donc optimal.En prenant X = {1, 2, 3, 5}, la coupe minimale des capacités est [X, X]et la valeur du flot est 24.

Page 49: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 49

Théorème d’intégrité

Si les capacités K(x, y) et les bornes inférieures L(x, y) sont toutesentières, il existe toujours un flot maximal à valeurs entières.

Si le flot initial est à valeurs entières et que les capacités le sontaussi, le flot maximal obtenu de l’algorithme sera aussi àvaleurs entières car la découverte d’une chaîne d’augmentationentraîne un changement de flot conduisant à un minimum denombres entiers.

Page 50: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 50

Extension au cas de plusieurs sources et / ou destinations

On peut toujours se ramener au cas d’une source et d’une destination.

Supposons que les sommets N du réseau R = (N, A) sont partitionnéscomme suit :

S : l’ensemble des sources,

D : l’ensemble des destinations,

X : l’ensemble des sommets intermédiaires.

Le problème s’énonce comme suit :

Max vf(x, N) – f(N, x) = 0 x XL(x, y) f(x, y) K(x, y) (x, y) Af(S, N) – f(N, S) = vf(D, N) – f(N, D) = - v

Page 51: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 51

Prolongeons le réseau R = (N, A) en un réseau R = (N, A) où

N = N {s, d},

S = {s}, D = {d},

X = N,

A = A tous les arcs correspondants à (s, S) tous les arcs correspondants à (D, d).

De plus,

L(s, x) = 0 et K(s, x) = x S

L(x, d) = 0 et K(x, d) = x D

L(x, y) = L(x, y) et K(x, y) = K(x, y) (x, y) A.

Théorème :Le problème de flot maximal de S à D dans le réseau R estéquivalent au problème de flot maximal de s à d dans R.

Page 52: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 52

Extension au cas où chaque sommet x est soumis à une capacitémaximale (x)

Exemple :

Il est naturel et même nécessaire pour le réseau téléphonique denotre exemple d’introduction de supposer que chaque poste Ti

de retransmission des appels ne peut pas traiter plus de (Ti)appels par minute.

Théorème :

Le problème de flot maximal dans un réseau soumis à descontraintes de capacité sur ses arcs et sur ses sommets estéquivalent à un problème de flot maximal dans un nouveauréseau soumis à des contraintes de capacité sur ses arcsseulement.

Page 53: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 53

Hypothèse non restrictive :

Tous les arcs admettant la source s à une de leurs extrémités sont dela forme (s, •) uniquement.

Tous les arcs admettant la destination d à une de leurs extrémitéssont de la forme (•, d) uniquement.

Note : S’il en est autrement, il s’agit de considérer 2 sommetssupplémentaires s et d de même que les arcs (s , s) et(d, d).

s et d joueront le rôle de source et de destination resp.

Page 54: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

54

Le problème s’énonce comme suit :

Max f(s, N) f(x, N) – f(N, x) = 0 x N, x s, dL(x, y) f(x, y) K(x, y) (x, y) Af(x, N) (x) x N, x df(N, d) (d).

Pour ramener ce problème au cas de capacités maximales associées àdes arcs seulement, définissons un nouveau réseau R = (N, A).

x N, on fait correspondre 2 sommets x' et x'' N.

(x', y'') A (x, y) A.

(x'', x') A x N.

L(x', y'') = L(x, y), K(x', y'') = K(x, y), (x, y) A.

L(x'', x') = 0, K(x'', x') = (x), x N.

Page 55: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Exemple :

s

x

y

d s'

x''

y''

d''

x'

y'

d's''

Les arcs incidents à x sont maintenant incidents à x'' tandis queceux issus de x sont maintenant issus de x'.

La capacité maximale (x) est imposée comme une capacitémaximale sur l’arc reliant x'' à x'.

Tout flot f satisfaisant , conduit à un flot équivalent f de s'' à d'dans R = (N, A) en définissant :

f(x', y'') = f(x, y) (x, y) A,

f(x'', x') = f(x, N) x d et f(d'', d') = f(N, d).

Page 56: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 56

Comment déterminer un flot réalisable initial lorsque les bornesinférieures ne sont pas toutes nulles ?

Lorsque les bornes inférieures L(x, y) ne sont pas toutes nulles, ilpeut y avoir un sérieux problème pour déterminer un flot au jugépuisque le flot nul n’est pas admissible comme flot de départ.

Pour déterminer un flot réalisable initial, s’il existe,

on ajoute un arc « artificiel » (d, s) avec L(d, s) = 0, K(d, s) = .

on obtient le graphe G' = (N, A') où A' = A {(d, s)}.

Si f est un flot réalisable pour G avec une valeur de flot v, posons :

f '(d, s) = v et f '(x, y) = f(x, y) (x, y) A.

Ainsi, f ' est un flot réalisable sur G ' et la quantité nette de flots’écoulant à la source est nulle.

Page 57: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 57

Définition :

f ' est une circulation réalisable sur G' si la qté nette de flot s’écoulantà n’importe quel sommet du réseau est nulle.

Rechercher un flot réalisable de départ sur G est donc équivalent àrechercher une circulation réalisable sur G' car, étant donné unecirculation réalisable sur G', en enlevant l’arc (d, s) du réseau, onobtient un flot réalisable sur G.

Transformons maintenant le problème de trouver une circulationréalisable sur G' en un problème de flot maximal sur un réseauaugmenté G" = (N", A").

Page 58: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 58

Procédé :

Ajoutons une nouvelle source s" et une nouvelle destination d" :

N" = N {s", d"}.

Ajoutons les arcs (s", x) et (x, d") x N :

A" = A' (s", N) (N, d").

Ajoutons des bornes inférieures nulles :

L"(x, y) = 0 (x, y) A".

Ajoutons un nouveau vecteur de capacités :

K"(x, y) = K(x, y) – L(x, y) (x, y) A'

K"(s", y) = L(x, y) y Nx tel que (x, y) A

K"(x, d") = L(x, y) x Ny tel que (x, y) A

Page 59: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 59

Il s’agit alors de trouver un flot maximal f" de s" à d" en partant avecle flot nul comme flot au jugé.

Soit la valeur de flot v" du flot f" sur G",

v" < L(x, y)(x, y) A

Il n’existe pas de flot réalisable sur G.

v" = L(x, y)(x, y) A

Le vecteur f suivant est réalisable surG : f(x, y) = f "(x, y) + L(x, y).

Page 60: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

Problème de flot maximal 60

Exemple :

1

2

3

4

0,11

3,122,8

3,6

2,41,3

Note :

Les données sur l’arc(x, y) sont :

L(x, y), K(x, y).

Le problème de trouver un flot réalisable sur G est équivalent auproblème de trouver une circulation réalisable sur G' :

1

2

3

4

0,11

3,122,8

3,6

2,41,3

0,

Page 61: Problème de flot maximal Problème de flot maximal dans un réseau Formulation du problème de flot maximal. Notions de coupe et de chaînes daugmentation.

61

Sur le réseau augmenté G", le flot maximal f" de s" à d" est :

1

2

3

4

4,11

0,9

2,6

0,3

0,20,2

7,

s" d"

0,0

5,5

3,35,5

5,50,0

3,3

1,1

Réseau G" avec sur chaque arc : f"(x, y), K"(x, y).

Tous les arcs issus de s" sont saturés; alors, v" = L(x, y) = 11.(x, y) A

Le problème initial est réalisable et un vecteur de flotréalisable sur G est :

(f12, f13, f23, f32, f24, f34) = (3, 4, 1, 2, 4, 3).