Inroducion au problème du flo maximum Renaud Sirdey (renaud.irdey@cea.fr) ommiaria à l énergie aomique, Saclay our d opimiaion combinaoire (RO03), UT Objecif de ce cour > Inroduire le noion de réeau de ranpor e de flo. > Inroduire la noion de flo comple ur un réeau de ranpor. > Poer le problème du flo maximum e monrer commen le réoudre à l aide de la programmaion linéaire e de l algorihme de ord-ulkeron. > Le problème de flo (pluô dan leur verion pondérée) on de nombreue applicaion indurielle que nou verron dan un prochain cour. 2 RO03-20
Noion de réeau de ranpor e de --flo > Un réeau de ranpor R=(G,u,,) conie en la donnée : un graphe oriené G=(V,) (an boucle). une foncion de capacié u : R +. e deux omme pariculier e de V (rep. appelé ource e pui). > Soi R=(G,u,,) un réeau de ranpor, on appelle --flo ur R une foncion f : R + elle que : f(a) u(a), pour ou a. a δ (v) f(a) = a δ + (v) f(a), pour ou v V \ {,} (conraine de Kirchoff). On peu poer (,) e u((,)) = pour éendre leur validié à V. On poe valeur(f) = a δ + () f(a) - a δ () f(a). 3 xemple > n roi dépô,,, on dipoe repecivemen de 20, 35 e 0 onne de marchandie. On a de demande de 25, 20 e 20 onne aux deinaion, e. Il exie de poibilié de ranpor à l'aide de camion. e poibilié on rapporée dan le ableau uivan : 5 0 0 5 5 5 5 0 0 4 RO03-20 2
Réeau de ranpor aocié 20 35 0 5 5 5 25 20 0 5 5 20 0 5 Noion de --flo comple, conrucion > Soi R=(G,u,,) un réeau de ranpor, un --flo f ur R e di comple i pour ou P=((,v ),(v,v 2 ),,(v n-,v n ),(v n,)), un -chemin, il exie a P el que f(a) = u(a). uremen di, ou chemin allan de à poède au moin un arc auré par le flo. Un flo comple n e pa néceairemen maximum. > onrucion d un --flo comple : Poer f := 0. Répéer hoiir un --chemin P el que a P on a f(a)<u(a). Si un el chemin n exie pa alor fin. Sinon pour ou a P faire f(a) := f(a) + min a P u(a)-f(a). 6 RO03-20 3
xemple 0/6 0/3 7 xemple 0/6 0/3 P = ((,),(,),(,)), min a P u(a)-f(a)=2 8 RO03-20 4
xemple 2/6 0/3 9 xemple 2/6 0/3 P = ((,),(,),(,)), min a P u(a)-f(a)=3 0 RO03-20 5
xemple 3/7 2/6 3/3 3/5 xemple 3/7 2/6 3/3 3/5 P = ((,),(,),(,)), min a P u(a)-f(a)=2 2 RO03-20 6
xemple 3/7 2/6 3/3 5/5 valeur(f) = 7 3 Le problème du --flo maximum > Soi R=(G,u,,) un réeau de ranpor, le problème du --flo maximum conie à rouver un --flo f* el que valeur(f*) oi maximum. I.e., rouver f*. q. pour ou --flo f ur R on ai valeur(f) valeur(f*). 4 RO03-20 7
pproche par programmaion linéaire > ormulaion du problème : Maximier valeur(f) = a δ + () f(a) - a δ () f(a), ou le conraine, a δ (v) f(a) = a δ + (v) f(a), v V \ {,}, f(a) u(a), a, f(a) 0, a. > Il agi donc d un programme linéaire : min{c T x : x b}. vec c R n, R mxn, b R n. > Remarque : le yème d inégalié linéaire ci-deu poède oujour au moin une oluion. 5 onéquence > Le problème du --flo maximum e un problème polynomial. onéquence direc du héorème de Khachiyan. > On peu uilier n impore quel algorihme pour la programmaion linéaire (par ex. l algorihme du implexe) afin de réoudre ce problème. n erme de complexié nou allon faire mieux à l aide d algorihme «combinaoire». n praique, par conre, ce n e pa forcémen idio, mai cela devien une queion de génie logiciel. 6 RO03-20 8
Noion de graphe réiduel > Soi G=(V,) un graphe oriené (an boucle), on défini G =(V, ) el que i a=(v,w) alor a =(w,v). Remarque : G peu conenir de arc parallèle alor que G n en conien pa. > Soi un réeau de ranpor R=(G,u,,) e un --flo f ur R, on défini la foncion de capacié réiduelle u f : R +. q. : u f (a) = u(a) f(a), pour ou a. u f (a ) = f(a), pour ou a=(v,w) e a =(w,v). > On appelle graphe réiduel aocié à f le graphe G f = (V,{a : u f (a) > 0}). 7 Noion de chemin f-augmenan > Soi R=(G,u,,) un réeau de ranpor, f un --flo ur R, P un chemin (ou un circui) ur G f e γ > 0, augmener f de γ elon P ignifie faire : f(a) := f(a) + γ i a. f(a) := f(a) γ i a. > On appelle chemin f-augmenan, ou --chemin dan le graphe réiduel G f. 8 RO03-20 9
L algorihme de ord-ulkeron > nrée : R=(G,u,,) un réeau de ranpor. > Sorie : un --flo f de valeur maximum. > Énoncé : Poer f := 0. Répéer : hoiir un chemin f-augmenan P. Si un el chemin n exie pa alor fin (f e alor maximum). ugmener f de γ=min a P u f (a) elon P. 9 xemple (précéden) 3/7 2/6 3/3 5/5 20 RO03-20 0
xemple (précéden) 3/7 2/6 3/3 5/5 P = ((,),(,),(,),(,),(,),(,),(,)), min a P u f (a) =2 2 xemple (précéden) 5/7 0/6 2/5 3/3 5/5 2/7 2/8 valeur(f) = 9, f e maximum 22 RO03-20
À vou / / / / 0/ / / 0/ 2 / 0/ 3 / 0/ 0/ 4 5 / / / 0/ / Tranformez le flo comple ci-deu en flo maximum. 23 Reour ur le problème du couplage bipari de cardinalié maximum > Mere ce problème ou la forme d un problème de flo maximum. 24 RO03-20 2
Reour ur le problème du couplage bipari de cardinalié maximum > Mere ce problème ou la forme d un problème de flo maximum. 25 Lemme de conraine de Kirchoff généraliée > Soi R=(G,u,,) un réeau de ranpor e f un --flo ur R alor pour ou X V \ {,} on a : a δ (X) f(a) = a δ + (X) f(a). > Preuve : Pour ou v X on a a δ (v) f(a) - a δ + (v) f(a) = 0, d où v X ( a δ (v) f(a) - a δ + (v) f(a)) =0. Or δ - (v)= δ - (v) δ - (X) δ - (v) \ δ - (X) e δ - (v)= δ + (v) δ + (X) δ + (v) \ δ + (X), v X ( a δ (v) δ (X) f(a) - a δ + (v) δ + (X) f(a)) = a δ (X) f(a) - a δ + (X) f(a) e v X ( a δ (v)\δ (X) f(a) - a δ + (v)\δ + (X) f(a)) = a (X) f(a) - a (X) f(a) = 0. 26 RO03-20 3
Lemme > Soi R=(G,u,,) un réeau de ranpor e f un --flo ur R alor pour ou X V. q. X e X on a : (a) valeur(f) = a δ + (X) f(a) - a δ (X) f(a). (b) valeur(f) a δ + (X) u(a). > Preuve : (a) : analogue à la preuve du lemme de conraine de Kirchoff généraliée. (b) : conéquence riviale de (a) e de 0 f(a) u(a). 27 Théorème > Soi R=(G,u,,) un réeau de ranpor, un --flo f ur R e maximum i e eulemen i il n exie pa de chemin f- augmenan. > Preuve : Néceié : il exie un chemin f-augmenan alor l algorihme de ord- ulkeron fourni un flo de plu grande valeur e donc f n e pa maximum. Suffiance : il n y a pa de chemin f-augmenan n e (par définiion) pa aeignable depui dan G f. Soi Y l enemble de omme aeignable depui dan G f. Par définiion de G f on a f(a)=u(a) (car u f (a)=u(a)-f(a)=0) pour ou a de δ + G (Y) e f(a)=0 (car u f (a )=f(a)=0) pour ou a de δ- G (Y). Le lemme précéden (parie (a)) implique valeur(f) = a δ + (Y) u(a), G e la parie (b) perme de conclure. 28 RO03-20 4
Lien avec le problème de la coupe minimum > Soi G=(V,) un graphe oriené, e une --coupe ur G i G=(V, \ ) ne conien pa de --chemin. On défini égalemen capa() = a u(a). > Théorème : oi R=(G,u,,) un réeau de ranpor, la valeur maximum d un --flo ur R e égal à la capacié minimum d une --coupe. > Preuve : an la preuve du héorème précéden nou avon conrui une --coupe, δ + (Y), don la capacié e égale à la valeur d un flo maximum, f. À oue --coupe minimale on peu aocier X V. q. X, X e =δ + (X) Or (lemme précéden), on a capa(δ + (X)) = a δ + (X) u(a) valeur(f). 29 Remarque ur l inégrié > orollaire : oi R=(G,u,,) un réeau de ranpor avec u : Z +, alor il exie un --flo maximum à valeur enière e l algorihme de ord-ulkeron ermine avec un el flo. > Preuve : Lorque la foncion de capacié e à valeur enière γ=min a P u f (a) e enier. > Remarque : c e aui le ca de oluion du PL précéden car le marice aociée aux problème de flo on oalemen unimodulaire (i.e., ou leur ou-déerminan on 0, + ou -). 30 RO03-20 5
Remarque algorihmique > Pour obenir de algorihme efficace, il convien de ne pa choiir le chemin f-augmenan arbirairemen. Par ex. avec de capacié irraionnelle, l algorihme el que nou l avon décri ne ermine pa forcémen > Par ex. dan l algorihme d dmond-karp on choii le plu cour de chemin f-augmenan. Théorème : l algorihme d dmond-karp réou le problème du --flo maximum en O(m 2 n). > aure algorihme exien, par ex. l algorihme de Golberg- Tarjan qui réou le problème en O(n 3 ). 3 RO03-20 6