Probl me de flot maximal dans un r seau
This presentation is the property of its rightful owner.
Sponsored Links
1 / 61

Problème de flot maximal dans un réseau PowerPoint PPT Presentation


  • 83 Views
  • Uploaded on
  • Presentation posted in: General

Problème de flot maximal dans un réseau. Formulation du problème de flot maximal. Notions de coupe et de chaînes d’augmentation par rapport à un flot f. Algorithme de Ford et Fulkerson. Théorème d’intégrité. Généralisation au cas de

Download Presentation

Problème de flot maximal dans un réseau

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Probl me de flot maximal dans un r seau

Problème de flot maximaldansun réseau

Formulation du problème de flot maximal. Notions de coupe et

de chaînes d’augmentation par rapport à un flot f. Algorithme de

Ford et Fulkerson. Théorème d’intégrité. Généralisation au cas de

plusieurs sources et plusieurs destinations. Présence de contraintes

de capacité sur les arcs et les sommets. Détermination d’un flot

réalisable.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Introduction

Une compagnie possède 6 postes T1, T2, T3, T4, T5 et T6 de

retransmission des appels téléphoniques des Laurentides vers les

Cantons de l’Est.

4

T2

T3

8

12

8

6

Cantons de

l’Est

Laurentides

6

T1

T6

9

6

3

11

9

T4

T5

4

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

Ce réseau de communication a été construit de telle façon qu’il

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

téléphoniques reliant ces 2 postes.

Les appels des Laurentides passent tous par le poste T1 qui les

achemine vers les autres postes.

Les appels arrivant au poste T6 sont tous acheminés dans les

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

réseau de façon à maximiser v ?


Probl me de flot maximal dans un r seau

Énoncé du problème de flot maximal

Soit un réseau R = (N, A) où N représente les sommets du réseau et

A l’ensemble des arcs.

On désigne aussi par

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

Le problème avec une source s et une destination d s’énonce alors

comme suit :

MAX v

v si x = s

 f(x, y)

 f(y, x)

-

=

0 si x  s, d

(P)

-v si x = d

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

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

L(x, y)  f(x, y)  K(x, y), (x, y)  A.

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


Probl me de flot maximal dans un r seau

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)

 f(y, x)

-

=

0 x  N.

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

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

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.


Probl me de flot maximal dans un r seau

Exemple :

(0, 4)

T2

T3

(8, 8)

(12, 12)

(6, 6)

(6, 6)

29

29

(8, 8)

T1

T6

(3, 9)

(6, 6)

(0, 3)

(6, 11)

(9, 9)

T4

T5

0, 4

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

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

Définition de coupe

Notation :

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)

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

une coupe C  [X, X ] = (X, X) (X, X ) séparant la source s de la

destination d.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Définition :

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

Exemple :

1

1

4

1

2

1

s

2

1

1

1

1

3

d

2

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

Toute chaîne reliant s à d doit nécessairement contenir un arc

dans chaque coupe [X, X ].

Note :

Problème de flot maximal


Probl me de flot maximal dans un r seau

Note :

Si l’on enlève du réseau tous les arcs de la coupe [X, X ], il ne peut

y avoir de chaînes reliant s à d.

La valeur du flot pouvant passer dans le nouveau réseau ainsi obtenu

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

excéder la capacité d’une coupe, quelque soit celle-ci.

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.

Lemme :

Soient un flot f de s à d dans le réseau R = (N, A) et v la valeur de

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

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) = 0si 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


Probl me de flot maximal dans un r seau

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.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Exemple :

1

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

2,3

1,1

3

v = 3.

3

0,1

1,1

s

d

1,1

2,3

X

2

X

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

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.

Problème de flot maximal


Probl me de flot maximal dans un r seau

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

Pour n’importe quel réseau donné, la valeur maximale du flot reliant

la source s à la destination d est égale à la capacité minimale des

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

permettre d’élaborer un procédé pour parvenir à un flot maximal.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Définition :

Une chaîne W reliant la source s à la destination d est dite une chaîne

d’augmentation par rapport au flot f si

f(x, y) < K(x, y)(x,y) de cette chaîne tel que (x,y)  A

et

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

Les arcs de W parcourus

dans le sens de leur orientation.

Les arcs de W parcourus

dans le sens inverse de leur orientation.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Exemple :

1

0,3

1,1

Il existe une chaîne

d’augmentation :

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

1

1

1,1

s

d

1,1

0,3

2

On peut faire passer une unité

de flot à travers cette chaîne.

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

1

1,3

1,1

2

2

0,1

s

d

1,1

1,3

2

Problème de flot maximal


Probl me de flot maximal dans un r seau

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

d’augmentation par rapport à celui-ci.

Corollaire :

Une coupe [X, X] est minimale si et seulement si, pour tout flot

maximal 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ù à chaque

itération, nous tenterons de construire une chaîne d’augmentation.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Exemple :

0,3

2

3

0,7

0,6

0,6

0,2

0

0

0,2

s

d

0,3

0,1

0,4

0,9

4

Déterminons d’abord un flot au jugé en saturant le plus grand nombre

possible de chemins reliant s à d.

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

3,3

2

3

3,7

3,6

0,6

0,2

3

3

0,2

s

d

0,3

0,1

0,4

0,9

4

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

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

3,3

2

3

5,7

5,6

0,6

2,2

5

5

2,2

s

d

0,3

0,1

0,4

0,9

4

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

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

3,3

2

3

7,7

5,6

2,6

2,2

7

7

2,2

s

d

0,3

0,1

0,4

0,9

4

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

3,3

2

3

7,7

5,6

3,6

2,2

8

8

2,2

s

d

0,3

1,1

0,4

1,9

4

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.

Problème de flot maximal


Probl me de flot maximal dans un r seau

3,3

2

3

7,7

5,6

3,6

2,2

12

12

2,2

s

d

0,3

1,1

4,4

5,9

4

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.


Probl me de flot maximal dans un r seau

3,3

2

3

7,7

5,6

3,6

2,2

12

12

2,2

s

d

0,3

1,1

4,4

5,9

4

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 passer

2 unités de flot. À l’aide de Z, on peut retracer la chaîne d’augmentation.

Problème de flot maximal


Probl me de flot maximal dans un r seau

3,3

2

3

7,7

5,6

5,6

0,2

14

14

2,2

s

d

0,3

1,1

4,4

7,9

4

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.


Probl me de flot maximal dans un r seau

3,3

2

3

7,7

5,6

5,6

0,2

14

14

2,2

s

d

0,3

1,1

4,4

7,9

4

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.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Algorithme de Ford & Fulkerson

Marquage des sommets

Étape A

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 sommet

qui a permis le

le marquage

de x.

La qté de flot supplém.

que l’on peut faire passer

dans la chaîne de s à x.

+ ou – selon que x a été

marqué grâce à l’arc

(pred(x), x) ou (x, pred(x)).

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

Étape B


Probl me de flot maximal dans un r seau

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


Probl me de flot maximal dans un r seau

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 nouveau

sommet marqué et non encore examiné.

Problème de flot maximal


Probl me de flot maximal dans un r seau

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

Construction d’une coupe minimale

À la fin de l’algorithme de Ford & Fulkerson, on peut construire

une coupe minimale comme suit :

PoserU = {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).

Problème de flot maximal


Probl me de flot maximal dans un r seau

Exemple :

3

0,5

0,2

2

0,9

4

0,3

0,8

0,4

0,2

0,10

0,3

0

0,8

0

0,6

8

1

5

0,3

0,8

0,1

0,4

0,16

0,2

0,1

7

0,7

6

Effectuons un premier marquage.

Problème de flot maximal


Probl me de flot maximal dans un r seau

(1,+,10)

3

0,5

0,2

(1,+,4)

2

0,9

4

0,3

0,8

0,4

0,2

0,10

0,3

(1,+,8)

0

0,8

0

0,6

8

1

5

(•,•,)

(5,+,6)

0,3

0,8

0,1

0,4

0,16

0,2

0,1

7

(1,+,3)

0,7

6

(1,+,4)

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


Probl me de flot maximal dans un r seau

3

0,5

0,2

2

0,9

4

0,3

0,8

0,4

0,2

0,10

0,3

6

6,8

6

6,6

8

1

5

0,3

0,8

0,1

0,4

0,16

0,2

0,1

7

0,7

6

Effectuons un 2ième marquage.


Probl me de flot maximal dans un r seau

(1,+,10)

3

0,5

(1,+,4)

0,2

2

0,9

4

0,3

0,8

0,4

0,2

0,10

0,3

(1,+,2)

6

6,8

6

6,6

8

1

5

(•,•,)

(7,+,3)

0,3

0,8

0,1

0,4

0,16

0,2

0,1

7

(1,+,3)

0,7

6

(1,+,4)

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


Probl me de flot maximal dans un r seau

3

0,5

0,2

2

0,9

4

0,3

0,8

0,4

0,2

0,10

0,3

9

6,8

9

6,6

8

1

5

3,3

0,8

0,1

0,4

3,16

0,2

0,1

7

0,7

6

Effectuons un 3ième marquage.


Probl me de flot maximal dans un r seau

(1,+,10)

3

0,5

(1,+,4)

0,2

2

0,9

4

0,3

0,8

0,4

0,2

0,10

0,3

(1,+,2)

9

6,8

9

6,6

8

1

5

(•,•,)

(7,+,2)

3,3

0,8

0,1

0,4

3,16

0,2

0,1

7

(5,+,2)

0,7

6

(1,+,4)

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


Probl me de flot maximal dans un r seau

3

0,5

0,2

2

0,9

4

0,3

0,8

0,4

0,2

0,10

0,3

11

8,8

11

6,6

8

1

5

3,3

2,8

0,1

0,4

5,16

0,2

0,1

7

0,7

6

Effectuons un 4ième marquage.


Probl me de flot maximal dans un r seau

(1,+,10)

3

0,5

(1,+,4)

0,2

2

(3,+,2)

0,9

4

0,3

0,8

0,4

0,2

0,10

(4,+,2)

0,3

11

8,8

(3,+,9)

11

6,6

8

1

5

(•,•,)

3,3

2,8

0,1

0,4

5,16

0,2

0,1

7

0,7

6

(1,+,4)

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


Probl me de flot maximal dans un r seau

3

0,5

2,2

2

0,9

4

0,3

2,8

0,4

0,2

2,10

0,3

13

8,8

13

6,6

8

1

5

3,3

2,8

0,1

0,4

5,16

0,2

0,1

7

0,7

6

Effectuons un 5ième marquage.


Probl me de flot maximal dans un r seau

3

(1,+,8)

0,5

(1,+,4)

2,2

2

0,9

4

0,3

2,8

0,4

0,2

2,10

0,3

(6,+,2)

13

8,8

13

6,6

8

1

5

(•,•,)

(7,+,4)

3,3

2,8

0,1

0,4

5,16

0,2

0,1

7

(6,+,4)

0,7

6

(1,+,4)

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


Probl me de flot maximal dans un r seau

3

0,5

2,2

2

0,9

4

0,3

2,8

0,4

0,2

2,10

0,3

17

8,8

17

6,6

8

1

5

3,3

2,8

0,1

4,4

9,16

0,2

0,1

7

4,7

6

Effectuons un 6ième marquage.


Probl me de flot maximal dans un r seau

(1,+,8)

3

0,5

(1,+,4)

2,2

2

0,9

4

0,3

2,8

0,4

0,2

2,10

0,3

(2,+,3)

17

8,8

17

6,6

8

1

5

(•,•,)

(7,+,3)

3,3

2,8

0,1

4,4

9,16

0,2

0,1

7

(5,+,3)

4,7

6

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


Probl me de flot maximal dans un r seau

3

0,5

2,2

2

0,9

4

3,3

2,8

3,4

0,2

2,10

0,3

20

8,8

20

6,6

8

1

5

3,3

5,8

0,1

4,4

12,16

0,2

0,1

7

4,7

6

Effectuons un 7ième marquage.


Probl me de flot maximal dans un r seau

(1,+,8)

3

0,5

(1,+,1)

2,2

2

0,9

4

3,3

2,8

3,4

0,2

2,10

0,3

(3,+,8)

20

8,8

20

6,6

8

1

5

(•,•,)

(7,+,3)

3,3

5,8

0,1

4,4

12,16

0,2

0,1

7

(5,+,3)

4,7

6

(5,+,1)

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


Probl me de flot maximal dans un r seau

3

0,5

2,2

2

3,9

4

3,3

2,8

3,4

0,2

5,10

0,3

23

8,8

23

6,6

8

1

5

3,3

8,8

0,1

4,4

15,16

0,2

0,1

7

4,7

6

Effectuons un 8ième marquage.


Probl me de flot maximal dans un r seau

(1,+,5)

3

0,5

(1,+,1)

2,2

2

3,9

4

3,3

2,8

3,4

0,2

5,10

0,3

(3,+,5)

23

8,8

23

6,6

8

1

5

(•,•,)

(7,+,1)

3,3

8,8

0,1

4,4

15,16

0,2

0,1

7

(6,+,1)

4,7

6

(5,+,1)

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


Probl me de flot maximal dans un r seau

3

0,5

2,2

2

4,9

4

3,3

2,8

3,4

0,2

6,10

0,3

24

8,8

24

6,6

8

1

5

3,3

8,8

0,1

4,4

16,16

0,2

1,1

7

5,7

6

Effectuons un 9ième marquage.


Probl me de flot maximal dans un r seau

(1,+,4)

3

0,5

(1,+,1)

2,2

2

4,9

4

3,3

2,8

3,4

0,2

6,10

0,3

(3,+,4)

24

8,8

24

6,6

8

1

5

(•,•,)

3,3

8,8

0,1

4,4

16,16

0,2

1,1

7

5,7

6

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.


Probl me de flot maximal dans un r seau

Théorème d’intégrité

Si les capacités K(x, y) et les bornes inférieures L(x, y) sont toutes

entières, il existe toujours un flot maximal à valeurs entières.

Si le flot initial est à valeurs entières et que les capacités le sont

aussi, le flot maximal obtenu de l’algorithme sera aussi à

valeurs entières car la découverte d’une chaîne d’augmentation

entraîne un changement de flot conduisant à un minimum de

nombres entiers.

Problème de flot maximal


Probl me de flot maximal dans un r seau

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

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

f(x, N) – f(N, x) = 0x  X

L(x, y)  f(x, y)  K(x, y) (x, y) A

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

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

Problème de flot maximal


Probl me de flot maximal dans un r seau

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

N = N {s, d},

D = {d},

S = {s},

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.

Problème de flot maximal


Probl me de flot maximal dans un r seau

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 de

notre 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 à des

contraintes de capacité sur ses arcs et sur ses sommets est

équivalent à un problème de flot maximal dans un nouveau

réseau soumis à des contraintes de capacité sur ses arcs

seulement.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Hypothèse non restrictive :

Tous les arcs admettant la source s à une de leurs extrémités sont de

la forme (s, •) uniquement.

Tous les arcs admettant la destination d à une de leurs extrémités

sont de la forme (•, d) uniquement.

Note :S’il en est autrement, il s’agit de considérer 2 sommets

supplé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.

Problème de flot maximal


Probl me de flot maximal dans un r seau

Le problème s’énonce comme suit :

Max f(s, N)

f(x, N) – f(N, x) = 0x N, x  s, d

L(x, y)  f(x, y)  K(x, y)(x, y) A

f(x, N) (x)x N, x  d

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


Probl me de flot maximal dans un r seau

Exemple :

x

x''

x'

s

d

s''

s'

d''

d'

y

y''

y'

Les arcs incidents à x sont maintenant incidents à x'' tandis que

ceux 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  det f(d'', d') = f(N, d).


Probl me de flot maximal dans un r seau

Comment déterminer un flot réalisable initial lorsque les bornes

inférieures ne sont pas toutes nulles ?

Lorsque les bornes inférieures L(x, y) ne sont pas toutes nulles, il

peut 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) = vet f '(x, y) = f(x, y) (x, y) A.

Ainsi, f ' est un flot réalisable sur G ' et la quantité nette de flot

s’écoulant à la source est nulle.

Problème de flot maximal


Probl me de flot maximal dans un r seau

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

circulation réalisable sur G', en enlevant l’arc (d, s) du réseau, on

obtient un flot réalisable sur G.

Transformons maintenant le problème de trouver une circulation

réalisable sur G' en un problème de flot maximal sur un réseau

augmenté G" = (N", A").

Problème de flot maximal


Probl me de flot maximal dans un r seau

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

x tel que (x, y)  A

K"(x, d") = L(x, y) x  N

y tel que (x, y)  A

Problème de flot maximal


Probl me de flot maximal dans un r seau

Il s’agit alors de trouver un flot maximal f" de s" à d" en partant avec

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

G :f(x, y) = f "(x, y) + L(x, y).

Problème de flot maximal


Probl me de flot maximal dans un r seau

Exemple :

2

Note :

0,11

3,6

Les données sur l’arc

(x, y) sont :

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

1

4

1,3

2,4

3,12

2,8

3

Le problème de trouver un flot réalisable sur G est équivalent au

problème de trouver une circulation réalisable sur G' :

2

0,

0,11

3,6

1

4

1,3

2,4

2,8

3,12

Problème de flot maximal

3


Probl me de flot maximal dans un r seau

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

7,

2

4,11

0,3

1,1

5,5

0,2

0,2

1

4

3,3

0,0

2,6

0,0

5,5

s"

0,9

d"

3

3,3

5,5

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 flot

réalisable sur G est :

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


  • Login