La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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 par rapport à un flot f. Algorithme de Ford et Fulkerson. Théorème dinté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 dun flot réalisable.

2 Problème de flot maximal2 Une compagnie possède 6 postes T 1, T 2, T 3, T 4, T 5 et T 6 de retransmission des appels téléphoniques des Laurentides vers les Cantons de lEst. T1T1 T2T2 T4T4 T3T3 T5T5 T6T6 Laurentides Cantons de lEst Les capacités maximales en milliers dappels par minute. Introduction

3 3 Ce réseau de communication a été construit de telle façon quil satisfasse aux conditions suivantes : Chaque poste intermédiaire T 2, T 3, T 4, T 5 conserve les appels i.e. tout appel arrivant à lun de ces postes est immédiatement acheminé vers un autre poste (il ne se perd pas dappels à un poste donné). Le # dappels 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 T 1 qui les achemine vers les autres postes. Les appels arrivant au poste T 6 sont tous acheminés dans les Cantons de lEst. Problème: Soit v le # dappels passant dans le réseau de T 1 (la source) à T 6 (la destination), comment répartir les appels dans le réseau de façon à maximiser v ?

4 4 É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 lensemble des arcs. Le problème avec une source s et une destination d sénonce alors comme 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)(P) On désigne aussi par K(x, y) : capacité maximale de larc (x, y), (x, y) A, f(x, y) : quantité de flot passant par larc (x, y), (x, y) A. Note : Sauf avis contraire par la suite, L(x, y) = 0 (x, y) A.

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

6 Problème de flot maximal6 Exemple : T1T1 T2T2 T4T4 T3T3 T5T5 T6T6 (12, 12) (8, 8) (3, 9) (6, 11) (6, 6) (0, 3) 0, 4 (6, 6) (8, 8) (9, 9) (0, 4) 29 (f(x, y), K(x, y)) La valeur du flot passant dans ce réseau est v = 29.

7 Problème de flot maximal7 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ère une coupe C [X, X ] = (X, X) (X, X ) séparant la source s de la destination d.

8 Problème de flot maximal8 Définition : La capacité de la coupe C [X, X ] est égale à K(X, X) – L(X, X). s Exemple : 1 3d 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 arc dans chaque coupe [X, X ].

9 Problème de flot maximal9 Note : Si lon 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é quune coupe bloque toutes les chaînes reliant s à d, il sensuit que la valeur du flot f passant dans le réseau ne peut pas excéder la capacité dune coupe, quelque soit celle-ci. 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). La valeur v dun flot quelconque de s à d est inférieure ou égale à la capacité de toute coupe séparant s et d.

10 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) = 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

11 Problème de flot maximal11 Corollaire du lemme : v max =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 cest-à-dire, que la valeur maximale du flot est toujours inférieure ou égale à la coupe minimale des capacités.

12 Problème de flot maximal12 Exemple : sd 1 2 2,3 0,1 1,1 2,3 3 3 (f(x, y), K(x, y)) L(x, y) = 0 (x, y) A. v = 3. X X La coupe C = {(s, 1), (2, 1), (2, d), (1, 2)} a aussi une capacité égale à = 3. Daprès ce qui précède, le flot est maximal et la coupe est minimale.

13 Problème de flot maximal13 Théorème (flot max – coupe min) : Pour nimporte 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.

14 Problème de flot maximal14 Définition : Une chaîne W reliant la source s à la destination d est dite une chaîne daugmentation 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.

15 Problème de flot maximal15 sd 1 2 0,3 1,1 0,3 1 1 (f(x, y), K(x, y)) Exemple : Il existe une chaîne daugmentation : (s,2) - (1,2) – (1,d). On peut faire passer une unité de flot à travers cette chaîne. sd 1 2 1,3 0,1 1,1 1,3 2 2

16 Problème de flot maximal16 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 nexiste pas de chaîne daugmentation 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 à lexemple suivant où à chaque itération, nous tenterons de construire une chaîne daugmentation.

17 Problème de flot maximal17 Exemple : s 23 4 d 0,6 0,4 0,3 0,2 0,3 0,2 0,1 0,9 0,7 0 0 Déterminons dabord un flot au jugé en saturant le plus grand nombre possible de chemins reliant s à d. I.s d :3 unités pour obtenir une saturation. 0,6

18 Problème de flot maximal18 s 23 4 d 3,6 0,4 0,3 0,2 3,3 0,2 0,1 0,9 3,7 3 3 II.s d :déjà saturé. III.s d :2 unités pour obtenir une saturation. 0,6

19 Problème de flot maximal19 s 23 4 d 5,6 0,4 0,3 2,2 3,3 2,2 0,1 0,9 5,7 5 5 IV.s d :déjà saturé. V.s d :2 unités pour obtenir une saturation. 0,6

20 Problème de flot maximal20 s 23 4 d 5,6 0,4 0,3 2,2 3,3 2,2 0,1 0,9 7, ,6 VI.s d :1 unité pour obtenir une saturation.

21 Problème de flot maximal21 s 23 4 d 5,6 0,4 0,3 2,2 3,3 2,2 1,1 1,9 7, ,6 VII.s d :déjà saturé. VIII.s d :déjà saturé. IX.s d : 4 unités pour obtenir une saturation.

22 s 23 4 d 5,6 4,4 0,3 2,2 3,3 2,2 1,1 5,9 7,7 12 3,6 Pour déterminer une chaîne daugmentation 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.

23 Problème de flot maximal23 s 23 4 d 5,6 4,4 0,3 2,2 3,3 2,2 1,1 5,9 7,7 12 3,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 daugmentation reliant s à d où lon peut faire passer 2 unités de flot. À laide de Z, on peut retracer la chaîne daugmentation.

24 24 s 23 4 d 5,6 4,4 0,3 2,2 3,3 0,2 1,1 7,9 7,7 14 5,6 Répétons la procédure de marquage : Z = {(s,,+ )} Z = {(s,,+ ), (2, s, 1), (3, s, 1)} Il nest pas possible datteindre la sortie d; par conséquent, le flot est maximal.

25 Problème de flot maximal25 s 23 4 d 5,6 4,4 0,3 2,2 3,3 0,2 1,1 7,9 7,7 14 5,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.

26 26 Algorithme de Ford & Fulkerson Étape A Marquage des sommets Cela conduit soit :à la fin de lalgorithme, à la découverte dune chaîne daugmentation. Un sommet peut être dans lun 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 q té de flot supplém. que lon peut faire passer dans la chaîne de s à x. + ou – selon que x a été marqué grâce à larc (pred(x), x) ou (x, pred(x)). Étape B Modifie le flot le long de la chaîne daugmentation.

27 Description complète de lalgorithme 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é.

28 Problème de flot maximal28 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, cest terminé (il ny a pas de chaînes daugmentation et le flot est maximal). Autrement, répéter cette opération de marquage avec un nouveau sommet marqué et non encore examiné.

29 Problème de flot maximal29 Étape B Changement de flot dans une chaîne daugmentation. 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.

30 Problème de flot maximal30 Construction dune coupe minimale À la fin de lalgorithme 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).

31 Problème de flot maximal31 Exemple : ,4 0,5 0,2 0,8 0,16 0,6 0,1 0,3 0,9 0,3 0,2 0,10 0,8 0,3 0,4 0,2 0,1 0,7 0,8 0 0 Effectuons un premier marquage.

32 ,4 0,5 0,2 0,8 0,16 0,6 0,1 0,3 0,9 0,3 0,2 0,10 0,8 0,3 0,4 0,2 0,1 0,7 0,8 0 0 (,, ) (1,+,4)(1,+,4) (1,+,3)(1,+,3) (1,+,8)(1,+,8) (1,+,10) (1,+,4)(1,+,4) (5,+,6)(5,+,6) Ajoutons 6 unités dans la chaîne daugmentation.

33 ,4 0,5 0,2 0,8 0,16 6,6 0,1 0,3 0,9 0,3 0,2 0,10 6,8 0,3 0,4 0,2 0,1 0,7 0,8 6 6 Effectuons un 2 ième marquage.

34 ,4 0,5 0,2 0,8 0,16 6,6 0,1 0,3 0,9 0,3 0,2 0,10 6,8 0,3 0,4 0,2 0,1 0,7 0,8 6 6 (,, ) (1,+,4)(1,+,4) (1,+,4)(1,+,4) (1,+,3)(1,+,3) (1,+,2)(1,+,2) (1,+,10) (7,+,3)(7,+,3) Ajoutons 3 unités dans la chaîne daugmentation.

35 ,4 0,5 0,2 0,8 3,16 6,6 0,1 0,3 0,9 0,3 0,2 0,10 6,8 3,3 0,4 0,2 0,1 0,7 0,8 9 9 Effectuons un 3 ième marquage.

36 ,4 0,5 0,2 0,8 3,16 6,6 0,1 0,3 0,9 0,3 0,2 0,10 6,8 3,3 0,4 0,2 0,1 0,7 0,8 9 9 (,, ) (1,+,4)(1,+,4) (1,+,2)(1,+,2) (1,+,4)(1,+,4) (1,+,10) (5,+,2)(5,+,2) (7,+,2)(7,+,2) Ajoutons 2 unités dans la chaîne daugmentation.

37 ,4 0,5 0,2 0,8 5,16 6,6 0,1 0,3 0,9 0,3 0,2 0,10 8,8 3,3 0,4 0,2 0,1 0,7 2,8 11 Effectuons un 4 ième marquage.

38 ,4 0,5 0,2 0,8 5,16 6,6 0,1 0,3 0,9 0,3 0,2 0,10 8,8 3,3 0,4 0,2 0,1 0,7 2,8 11 (,, ) (1,+,4)(1,+,4) (1,+,10) (1,+,4)(1,+,4) (3,+,9)(3,+,9) (3,+,2)(3,+,2) (4,+,2)(4,+,2) Ajoutons 2 unités dans la chaîne daugmentation.

39 ,4 0,5 2,2 2,8 5,16 6,6 0,1 0,3 0,9 0,3 0,2 2,10 8,8 3,3 0,4 0,2 0,1 0,7 2,8 13 Effectuons un 5 ième marquage.

40 ,4 0,5 2,2 2,8 5,16 6,6 0,1 0,3 0,9 0,3 0,2 2,10 8,8 3,3 0,4 0,2 0,1 0,7 2,8 13 (,, ) (1,+,4)(1,+,4) (1,+,4)(1,+,4) (1,+,8)(1,+,8) (6,+,4)(6,+,4) (6,+,2)(6,+,2) (7,+,4)(7,+,4) Ajoutons 4 unités dans la chaîne daugmentation.

41 ,4 0,5 2,2 2,8 9,16 6,6 0,1 0,3 0,9 0,3 0,2 2,10 8,8 3,3 4,4 0,2 0,1 4,7 2,8 17 Effectuons un 6 ième marquage.

42 ,4 0,5 2,2 2,8 9,16 6,6 0,1 0,3 0,9 0,3 0,2 2,10 8,8 3,3 4,4 0,2 0,1 4,7 2,8 17 (,, ) (1,+,4)(1,+,4) (1,+,8)(1,+,8) (2,+,3)(2,+,3) (5,+,3)(5,+,3) (7,+,3)(7,+,3) Ajoutons 3 unités dans la chaîne daugmentation.

43 ,4 0,5 2,2 2,8 12,16 6,6 0,1 0,3 0,9 3,3 0,2 2,10 8,8 3,3 4,4 0,2 0,1 4,7 5,8 20 Effectuons un 7 ième marquage.

44 ,4 0,5 2,2 2,8 12,16 6,6 0,1 0,3 0,9 3,3 0,2 2,10 8,8 3,3 4,4 0,2 0,1 4,7 5,8 20 (,, ) (1,+,1)(1,+,1) (1,+,8)(1,+,8) (3,+,8)(3,+,8) (5,+,3)(5,+,3) (5,+,1)(5,+,1) (7,+,3)(7,+,3) Ajoutons 3 unités dans la chaîne daugmentation.

45 ,4 0,5 2,2 2,8 15,16 6,6 0,1 0,3 3,9 3,3 0,2 5,10 8,8 3,3 4,4 0,2 0,1 4,7 8,8 23 Effectuons un 8 ième marquage.

46 ,4 0,5 2,2 2,8 15,16 6,6 0,1 0,3 3,9 3,3 0,2 5,10 8,8 3,3 4,4 0,2 0,1 4,7 8,8 23 (,, ) (1,+,5)(1,+,5) (1,+,1)(1,+,1) (3,+,5)(3,+,5) (5,+,1)(5,+,1) (6,+,1)(6,+,1) (7,+,1)(7,+,1) Ajoutons 1 unité dans la chaîne daugmentation.

47 ,4 0,5 2,2 2,8 16,16 6,6 0,1 0,3 4,9 3,3 0,2 6,10 8,8 3,3 4,4 0,2 1,1 5,7 8,8 24 Effectuons un 9 ième marquage.

48 ,4 0,5 2,2 2,8 16,16 6,6 0,1 0,3 4,9 3,3 0,2 6,10 8,8 3,3 4,4 0,2 1,1 5,7 8,8 24 (,, ) (1,+,1)(1,+,1) (1,+,4)(1,+,4) (3,+,4)(3,+,4) Il nest pas possible datteindre 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.

49 Problème de flot maximal49 Théorème dinté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 lalgorithme sera aussi à valeurs entières car la découverte dune chaîne daugmentation entraîne un changement de flot conduisant à un minimum de nombres entiers.

50 Problème de flot maximal50 Extension au cas de plusieurs sources et / ou destinations On peut toujours se ramener au cas dune source et dune destination. Supposons que les sommets N du réseau R = (N, A) sont partitionnés comme suit : S : lensemble des sources, D : lensemble des destinations, X : lensemble 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

51 Problème de flot maximal51 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.

52 Problème de flot maximal52 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 dintroduction de supposer que chaque poste T i de retransmission des appels ne peut pas traiter plus de (T i ) 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.

53 Problème de flot maximal53 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 :Sil en est autrement, il sagit 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.

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

55 Exemple : s x y ds's' x'' y'' d'' x'x' y'y' d'd's'' 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 larc 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).

56 Problème de flot maximal56 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 nest pas admissible comme flot de départ. Pour déterminer un flot réalisable initial, sil 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.

57 Problème de flot maximal57 Définition : f ' est une circulation réalisable sur G' si la q té nette de flot sécoulant à nimporte 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 larc (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").

58 Problème de flot maximal58 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

59 Problème de flot maximal59 Il sagit 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 nexiste 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).

60 Problème de flot maximal60 Exemple : ,11 3,12 2,8 3,6 2,4 1,3 Note : Les données sur larc (x, y) sont : L(x, y), K(x, y). Le problème de trouver un flot réalisable sur G est équivalent au problème de trouver une circulation réalisable sur G' : ,11 3,12 2,8 3,6 2,4 1,3 0,

61 61 Sur le réseau augmenté G", le flot maximal f" de s" à d" est : ,11 0,9 2,6 0,3 0,2 7, s"s" d"d" 0,0 5,5 3,3 5,5 0,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 flot réalisable sur G est : (f 12, f 13, f 23, f 32, f 24, f 34 ) = (3, 4, 1, 2, 4, 3).


Télécharger ppt "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."

Présentations similaires


Annonces Google