Flusso a costo mnmo Consderamo un grafo G=(N, A), con capactà u sugl arch. Il problema: mn c (, j) A x s.t. (, j) δ + x ( ) ( j, ) δ x j ( j) = b( ) N x u (, j) A s dce problema d flusso a costo mnmo. Assumamo c e b(n) =. Progetto e Ottmzzazone d Ret 5-6
Osservazon Osservazone Supponamo che le capactà sugl arch abbano valore nfnto e che esstano un nodo s e un nodo t tal che: b(s) = b(t) = - Se b() = per ogn V, s, t, l problema d flusso a costo mnmo dventa l problema del cammno mnmo da s a t Progetto e Ottmzzazone d Ret 5-6
Osservazon Osservazone Supponamo che. b() = per ogn N;. c = per ogn arco (, j) V. Sceglamo nod d G, s e t e aggungamo l arco (t, s) d capactà nfnta e costo c ts = - l problema d flusso a costo mnmo dventa l problema d determnare l massmo flusso da s a t. Progetto e Ottmzzazone d Ret 5-6 3
Condzon d ottmaltà Assocamo ad ogn vncolo d conservazone una varable y e ad ogn vncolo d capactà una varable z mn s.t. c (, j) A x y z x : + (, j) δ ( ) : x x u x j ( j, ) δ ( j) = b( ) N (, j) A Progetto e Ottmzzazone d Ret 5-6 4
Progetto e Ottmzzazone d Ret 5-6 5 Problema duale ), ( ), ( s.t. - ) ( max ), ( A j z A j c z y y z u y b j A j N (D) S defnsce costo rdotto la quanttà: j y y c c + =
Condzon d ottmaltà Supponamo che tutte le capactà sano nfnte. Cò sgnfca che nel problema D non compaono le varabl z. Pertanto, una soluzone ammssble y per D ha la propretà d avere che mplca c y y j Se u +, una soluzone ammssble (y, z) d D ha la propretà ma s ha anche In conclusone, z c z z = max, { } c c Progetto e Ottmzzazone d Ret 5-6 6
Condzon d complementartà x > y y j z = c c = z = max {, c } c z > x = u Pertanto, se c < x = u Inoltre, c x = > Teorema (condzon d ottmaltà per l mn cost flow) Una soluzone x ammssble per P è ottma se e solo se esste un vettore y R N tale che, per ogn (, j) A s ha: c = c y + y < x = u (se u + ) c > x = j Progetto e Ottmzzazone d Ret 5-6 7
Percors, cammn e ccl (rcham) Sa G = (N,A) un grafo orentato: Un percorso n G è una sequenza v, a, v, a,, a k, v k n cu ogn v è un nodo, ogn a è un arco e, per ogn k, a = (v -, v ) oppure a = (v,v - ) Un percorso v, a, v, a,, a k, v k, n G è detto orentato se, per ogn k, a = (v -,v ) Un percorso (orentato) senza rpetzone d nod è detto cammno (orentato) Il sottografo composto dal cammno v, a, v, a,, a k, v k dall arco (v k, v ) oppure (v, v k ) è detto cclo e Il sottografo composto dal cammno orentato v, a, v, a,, a k, v k e dall arco (v k, v ) èdettocclo orentato Progetto e Ottmzzazone d Ret 5-6 8
Problema d cammno mnmo Dato un cammno orentato P n un grafo G con pes sugl arch l uv, (u, v) A, defnamo lunghezza del cammno P la somma delle lunghezze de suo arch: l( P) = ( u, v) P luv Sa L =max (l uv : (u,v) A) Istanza: un grafo orentato G = (N, A) con pes (lunghezze) l uv, (u,v) A, assocat agl arch; un nodo r V. Problema: trovare, per ogn v N, un cammno orentato da r a v d lunghezza mnma. Progetto e Ottmzzazone d Ret 5-6 9
Ipotes G contene un cammno orentato da r a cascuno degl altr suo nod In caso contraro, s aggungono al grafo arch del tpo (r,v) per cascun nodo v per cu non esste n G un cammno da r a. Assocando a tal arch (r,v) un peso suffcentemente grande (quanto?), quest saranno contenut n un cammno mnmo se e solo se non esste un cammno da r a v nel grafo orgnaro. Progetto e Ottmzzazone d Ret 5-6
Ipotes G non contene ccl d lunghezza negatva raggungbl da r In questo caso, esste almeno un percorso d lunghezza mnma fra r e v, v V, che è un cammno (coè non rpete nod): P 3 r P u w P 4 v Il cammno P -P -P 4 P ha lunghezza non maggore del percorso (mnmo) P -P -P 3 -P -P 4 Progetto e Ottmzzazone d Ret 5-6
Ipotes (conseguenze) D fatto, gl algortm per l calcolo d cammn mnm determnano percors mnm da r agl altr nod Nel caso n cu G possa contenere ccl negatv raggungbl da r, l percorso mnmo può attraversare un cclo nfnte volte. Per calcolare l cammno mnmo è qund necessaro mporre un vncolo che evt la rpetzone de nod Tale vncolo rende l problema NP-hard. Progetto e Ottmzzazone d Ret 5-6
Struttura della soluzone ottma Propretà. (Eredtaretà della struttura ottma) Se un cammno r, a, v, a,,a k, v k è un cammno mnmo da r a v k, allora per ogn q =,,,k- l cammno r, a, v, a,, a q, v q è un cammno mnmo da r a v q r P P u 3 v P -P 3 cammno mnmo da r a v P cammno mnmo da r a u Progetto e Ottmzzazone d Ret 5-6 3
Struttura della soluzone ottma r P u Hp: P - P 3 P cammno mnmo 3 v P Supponamo che P non sa un cammno mnmo da r a u e rsult l(p ) > l(p ). Allora l percorso (notare che P e P 3 possono essere non dsgunt) P -P 3 ha lunghezza nferore a l(p -P 3 ). Dato che G non contene ccl negatv, P -P 3 almeno un cammno P da r a v con l(p) < l(p -P 3 ) contene Progetto e Ottmzzazone d Ret 5-6 4
Albero de cammn mnm Defnzone. Un albero T = (N, A ) d radce r è detto albero de cammn mnm rspetto alla funzone lunghezza l: A R se A A è tale che, per ogn v V, l cammno da r a v n T è un cammno mnmo da r a v n G. Teorema. Sa G = (N, A) un grafo orentato, r V, e l: A R. Allora esste un albero de cammn mnm (d radce r) rspetto ad l Progetto e Ottmzzazone d Ret 5-6 5
Albero de cammn mnm Dmostrazone Sa A A un nseme mnmale contente per ogn v N, un cammno mnmo da r a v n G, La Propretà mplca che, per cascun nodo v N, A contene, un unco arco entrante. Qund, A =n ed l corrspondente sottografo contene esattamante un cammno da r a v. Progetto e Ottmzzazone d Ret 5-6 6
Esempo 4 r - 3 6 3 5 Albero de cammn mnm Progetto e Ottmzzazone d Ret 5-6 7
Potenzal Una funzone y:v R è detta potenzale se y v -y u l uv, per ogn (u,v) A () Osservazone: y non dpende dal nodo r. Teorema Sa G = (N, A) un grafo orentato, r V, ed l: A R. Allora esste un potenzale se e solo se ogn cclo orentato ha lunghezza non negatva. Inoltre, se l è ntera, esste un potezale ntero. Progetto e Ottmzzazone d Ret 5-6 8
Dmostrazone Necesstà Sa y un potenzale e C = v,a,v,a,,a k,v k = v un cclo orentato. Allora: l k ( C) l( a ) ( y ) y = = k = v v = Suffcenza Ogn cclo orentato ha lunghezza non negatva. Per ogn v V, sa y v la lunghezza mnma d un percorso (data l potes è un cammno) che termna n v (ed nza n un nodo d V qualsas). La relatva funzone y è un potenzale. Infatt, se non lo fosse, essterebbe un arco (u,v) per cu y v - y u > l uv. Indcando con P l percorso mnmo entrante n u, s ha che P -{(u,v)} sarebbe un percorso d lunghezza nferore a y v, contraddzone. Progetto e Ottmzzazone d Ret 5-6 9
Costruzone d un potenzale La dmostrazone fornsce una regola d costruzone d un potenzale n assenza d ccl negatv. Esempo: - 4 3 3 y 6 3 5-4 5 - Progetto e Ottmzzazone d Ret 5-6
Osservazone In presenza d ccl negatv, la regola (ovvamente) fallsce. Esempo: - - r - - y r - - - - < - (-) = l arco (r,) vola la condzone Progetto e Ottmzzazone d Ret 5-6
Costruzone d un potenzale (II) Sa r un nodo d G. Per ogn v N, sa y v la lunghezza mnma d un percorso da r a v. La funzone y è un potenzale. Se non lo fosse, essterebbe un arco (u,v) per cu y v > y u +l uv. Allora, concatenando l arco (u,v) con l cammno P ru s ottene un nuovo cammno da r a v d lunghezza nferore a y v P ru u r v P rv Progetto e Ottmzzazone d Ret 5-6
Costruzone d un potenzale (II) Esempo 3 4 y r= y r - 3 3 6 3 5 4 3 5 - Osservare che y' v y v, per ogn v V Domanda: è possble aumentare y' v per qualche v? Progetto e Ottmzzazone d Ret 5-6 3
Costruzone d un potenzale (II) Istanza: un grafo orentato G=(V,A) con pes (lunghezze) l uv, (u,v) A, assocat agl arch; un nodo r V. Problema: determnare un potenzale y tale che y v y r sa massmo, per cascun v V. Progetto e Ottmzzazone d Ret 5-6 4
Propretà de potenzal Dato un potenzale y, sottraendo y r a cascun y v, v N, s ottene un nuovo potenzale per cu y r =. Un qualsas potenzale (con y r = ) fornsce lmtazon nferor delle lunghezze de cammn mnm: Lemma. Sa y potenzale e P =r=v,a,v,a,, a k,v un cammno da r a v. Allora l(p) y v Dmostrazone. Vale la seguente dsuguaglanza: k k l P = ( ) ( ) a v v v v v = l = y y = y Progetto e Ottmzzazone d Ret 5-6 5 k y = y
Relazone mn-max Teorema (max potenzale mn lavoro). Dato un grafo orentato G = (N, A), una coppa d suo nod r e v ed una qualunque funzone lunghezza l: A R, la massma dfferenza d potenzale y v y r è par alla mnma lunghezza d un cammno da r a v. Inoltre, se le lunghezze sono ntere, tale potenzale è ntero. Progetto e Ottmzzazone d Ret 5-6 6
Relazone mn-max Dmostrazone Dal lemma precedente, sappamo che l potenzale fornsce una lmtazone nferore della lunghezza del cammno mnmo da r a v, v N. Inoltre, ponendo y v par alla lunghezza d un cammno mnmo da r a v, s ottene un potenzale. Tale potenzale è qund tale da massmzzare y v y r per ogn v N. Progetto e Ottmzzazone d Ret 5-6 7
Algortmo d Ford Idea chave Calcolare un potenzale e contemporaneamente un cammno P da r a v d lunghezza par a y v, v N (dal teorema precedente derva che P è un cammno da r a v d lunghezza mnma). Algortmo d dscesa duale In una generca terazone s mantene un vettore d dstanze y che non è un potenzale. In partcolare, y v è la lunghezza d un qualche cammno da r a v. S usa un vettore de predecessor p, n cu p v contene l predecessore d v nel cammno d lunghezza y v ndvduato. Progetto e Ottmzzazone d Ret 5-6 8
Algortmo d Ford Inzalzzazone y r =, y v = per ogn v V, v r. whle (esste un arco per cu y v - y u > l uv ){ y v := y u + l uv ; p v := u; } Progetto e Ottmzzazone d Ret 5-6 9
Esempo Inzalzzazone r 6 3 4-3 5 y p r - 3-4 - 5 - Progetto e Ottmzzazone d Ret 5-6 3
Esempo Iterazone arco scelto: (r,3) 4 r y p r - 3 3-6 r 6 3 6 5 4-5 - Progetto e Ottmzzazone d Ret 5-6 3
Esempo Iterazone arco scelto: (3,5) y p 4 r r - 3 3-6 r 6 3 5 6 7 4-5 7 3 Progetto e Ottmzzazone d Ret 5-6 3
Esempo Iterazone 3 arco scelto: (5,4) y p 4 r r - 3 3-6 r 6 3 5 6 7 4 5 5 7 3 Progetto e Ottmzzazone d Ret 5-6 33
Esempo Iterazone 4 arco scelto: (r,) y p 4 r r - 3 3 r 6 r 6 3 5 6 7 4 5 5 7 3 Progetto e Ottmzzazone d Ret 5-6 34
Esempo Iterazone 5 arco scelto: (,5) r 6 3-4 5 6 3 r 3 y p 4 5 5 r 6 r Osservazone l arco (3,5) esce dall albero ed è sosttuto da (,5), mentre l arco (5,4) dventa volato (!!) Progetto e Ottmzzazone d Ret 5-6 35
Esempo Iterazone 6 arco scelto: (,4) r 3 4-3 r 3 y p r 6 r 6 3 5 6 4 3 5 Progetto e Ottmzzazone d Ret 5-6 36
Esempo Iterazone 7 arco scelto: (,3) r 3 4-3 r y p r 6 3 5 3 3 3 4 3 5 Stop: non esstono arch volat Progetto e Ottmzzazone d Ret 5-6 37
Anals Proposzone. Per ogn arco del grafo de predecessor G p, rsulta y v - y u l uv Dm: Quando un arco (u,v) vene nserto, s esegue y v =y u +l uv. Nelle terazon successve: y u può dmnure, e causare y v -y u > l uv (arco (5,4) all ter. 3) y v può dmnure, ma n questo caso (u,v) esce da G p Progetto e Ottmzzazone d Ret 5-6 38
Progetto e Ottmzzazone d Ret 5-6 39 Anals Proposzone. Ad una generca terazone l grafo G p, contene un cammno P v da r a cascun v per cu y v d lunghezza l(p v ) y v Infatt, sa P v l cammno r=v,a,v,a,, a k,v. Dalla Proposzone s ha che: ( ) ( ) v v v k v v k a v y y y y y l P l k = = = = =
Complesstà Se la funzone lunghezza l:a Z è ntera, l algortmo d Ford converge n O(n L). Infatt: la dstanza d un nodo da r è lmtata superormente da nl, n quanto un cammno contene al pù n- arch cascuno d lunghezza non superore a L. Analogamente, la mnma dstanza d un nodo da r è nl. Data l potes d nterezza, la dstanza s rduce almeno d una untà ad ogn aggornamento. Qund l massmo numero d aggornament per un nodo è nl e, complessvamente, n L. Dato che ogn terazone esegue un aggornamento, l algortmo converge n O(n L) terazon Progetto e Ottmzzazone d Ret 5-6 4
Valdtà Teorema L algortmo d Ford termna resttuendo l albero de cammn mnm da r a v, v N. La termnazone dell algortmo è dmostrata. La condzone d arresto e la Proposzone mplcano che l algortmo resttusce un grafo de predecessor G p n cu cascun arco soddsfa y v - y u = l uv. Qund, G p, contene un cammno P v da r a v per cu d lunghezza l(p v ) = y v Il teorema del max potenzale-mn lavoro mplca l ottmaltà d tal cammn Progetto e Ottmzzazone d Ret 5-6 4
Indvduazone d ccl negatv Cosa succede se G può contenere ccl orentat d lunghezza negatva? L algortmo d Ford può essere modfcato n modo da arrestars resttuendo un cclo negatvo se l grafo ne contene almeno uno. Esstono due crter per l ndvduazone:. Basato sulle dstanze y. Basato sulla struttura del grafo de predecessor Progetto e Ottmzzazone d Ret 5-6 4
Crtero Se G contene un cclo orentato d lunghezza negatva, allora non esste un potenzale. Qund, l algortmo d Ford contnua a dmnure le dstanze ndefntamente. Ma nl è una lmtazone nferore della lunghezza d un qualunque cammno quando G non contene ccl negatv. Qund, se una dstanza y v dventa mnore d nl esste un cclo negatvo. Esso è contenuto nel grafo de predecessor G p. Progetto e Ottmzzazone d Ret 5-6 43
Esempo Applchamo l algortmo al grafo ed alla funzone lunghezza d fgura r - 4-3 y p r= - 3-4 - Progetto e Ottmzzazone d Ret 5-6 44
Esempo Iter. arco scelto (r,) r - 4-3 y p r= r 3-4 - Progetto e Ottmzzazone d Ret 5-6 45
Esempo Iter. arco scelto (,3) r - 4-3 y p r= r 3 4 - Progetto e Ottmzzazone d Ret 5-6 46
Esempo Iter 3. arco scelto (3,4) r - 4-3 y p r= r 3 4 3 Progetto e Ottmzzazone d Ret 5-6 47
Esempo Iter 4. arco scelto (4,) r - 4-3 y p r= - 4 3 4 3 Iter 5. arco scelto (,3) r - 4-3 y p r= - 4 3-4 3 Progetto e Ottmzzazone d Ret 5-6 48
Esempo Iter 6. arco scelto (3,4) r - 4 Iter 7. arco scelto (4,) r - 4 - - 3 3 y p r= - 4 3-4 - 3 y p r= -3 4 3-4 - 3 Progetto e Ottmzzazone d Ret 5-6 49
Esempo Iter 8. arco scelto (,3) r - 4-3 y p r= -3 4 3-3 4-3 Iter 9. arco scelto (3,4) r - 4-3 y p r= -3 4 3-3 4-4 3 Progetto e Ottmzzazone d Ret 5-6 5
Esempo Iter. arco scelto (4,) r -5-4 - 3 y p r= -5 4 3-3 4-3 y = -5 < -nl e G p resttusce l cclo negatvo. Progetto e Ottmzzazone d Ret 5-6 5
Crtero Il numero d terazon dpende da L, qund la convergenza del crtero è n genere molto lenta. All terazone 4, l arco (r,) vene sosttuto dall arco (4,) generando un cclo n G p. Iter 4. arco scelto (4,) r In generale, questo può accadere se e solo se G contene un cclo orentato d lunghezza negatva. - 4-3 Progetto e Ottmzzazone d Ret 5-6 5
Crtero Qund, un secondo crtero d ndvduzone d ccl negatv n G consste nel verfcare (con frequenza fssata) se G p contene un cclo. r Dopo l aggornamento d un arco (u,v) [(,4)] s percorrono predecessor d u[4]. Se s ncoltra v[] allora G p contene un cclo. - 4-3 Progetto e Ottmzzazone d Ret 5-6 53
Anals Il secondo crtero è, n generale, molto pù effcente del prmo. Nell esempo, un cclo n G p appare alla terazone 4, mentre l crtero non ndvdua l cclo negatvo prma d terazon. Percorrere a rtroso predecessor d u ha complesstà lneare. La complesstà asntotca dell algortmo d Ford non camba se ad ogn passo, s aggunge la vsta a rtroso de predecessor del nodo u. Progetto e Ottmzzazone d Ret 5-6 54
Crcut ncrementant d costo negatvo Consderamo n G un cammno (non necessaramente orentato) ncrementante: v 3 6 ε ε ε w Se aumentamo l flusso d ε lungo l cammno (v, w) l costo vara del valore 3ε + ε 6ε. Il valore (3+-6) = - s dce costo del cammno. Se esste n G un crcuto x-ncrementante d costo negatvo posso, ncrementando d ε l flusso lungo l crcuto, dmnure l valore della soluzone corrente. Progetto e Ottmzzazone d Ret 5-6 55
Esempo,4,, 3, 5 3,, 4, 3, 3, 6, -4 - -3 - Notazone: (c, u, x ) 6 Grafo auslaro G(x) Un crcuto x-ncrementante d costo negatvo corrsponde ad un crcuto orentato d peso negatvo sul grafo auslaro Progetto e Ottmzzazone d Ret 5-6 56
Teorema (ottmaltà per assenza d crcut d costo negatvo) Una soluzone ammssble x è ottma se e solo se non esstono crcut x-ncrementant d costo negatvo. Dmostrazone Se G(x) ammette un cclo negatvo, ovvamente x non è ottma. Dmostramo l vceversa. Sa G (x) l grafo ottenuto aggungendo a G(x) un nodo r e collegando r a tutt nod n N, con costo c r =. Cerchamo un cammno mnmo da r a tutt gl altr nod. Se non esste un cclo negatvo n G (x), l algortmo d Ford rtorna un potenzale che soddsfa l seguente sstema Progetto e Ottmzzazone d Ret 5-6 57
Dmostrazone d dsequazon y' j y ' c' (, j) A( G'( x)) Ora, ponendo y =-y e rcordando che se x =u s ha c j =-c s ottene: c c y y + y + y j j se se x x = u Dalle condzon d ottmaltà segue la tes. Progetto e Ottmzzazone d Ret 5-6 58
Esempo Trovare l flusso d costo mnmo sul grafo d fgura a partre dalla soluzone ammssble rportata (d valore 4) 5,4,3,3,3,5,,6,3 +6-6,3,3,5,,6,3 Notazone: (c, u, x ) 5,4,3 Progetto e Ottmzzazone d Ret 5-6 59
Esempo Il grafo auslaro G (x) contene un cclo negatvo d valore -8: 5 - -5 - -6-5 - -5 Progetto e Ottmzzazone d Ret 5-6 6
Esempo Posso varare d 3 untà l flusso lungo questo cclo, ottenendo la soluzone seguente, d valore 8 5,4,,3,3,5,3,6,3 +6-6,3,3,5,3,6,3 5,4, Progetto e Ottmzzazone d Ret 5-6 6
Esempo Il grafo auslaro dventa: 5 - - - - - - -6 Questo grafo ammette l seguente potenzale: 5 Progetto e Ottmzzazone d Ret 5-6 6
Esempo - - r -3 - Pertanto, per l teorema precedente la soluzone d valore 8 è ottma - Progetto e Ottmzzazone d Ret 5-6 63
Progetto e Ottmzzazone d Ret 5-6 64 Un applcazone del mn cost flow Consderamo l seguente problema d PL: La matrce de A de coeffcent ha le seguent propretà:. I coeffcent sono o. Gl appaono sulle colonne n modo consecutvo (consecutve s property) 7 4 4 mn x x cx
Progetto e Ottmzzazone d Ret 5-6 65 Consecutve s property [ ] [ ] 7 4 4 mn = x y x cx Portamo l problema n forma standard e ntroducamo una rga rdondante x+y= A questo punto, sottraamo la rga dalla rga +, per = m, m-,,, ottenendo l nuovo problema
Progetto e Ottmzzazone d Ret 5-6 66 Consecutve s property 7 7 4 6 4 mn = x y x cx a b c d e e d c b a y y y 3 y 4 Rsolvere l problema d PL equvale a determnare l flusso a costo mnmo sul grafo d fgura x x 5 x 4 x x 3
Progetto e Ottmzzazone d Ret 5-6 67 Smplesso su ret Consderamo l problema d flusso a costo mnmo ), ( (P) ) ( s.t. mn ) ( ), ( ) ( ), ( ), ( A j x N b x x x c j j j j A j = + δ δ su G = (N, A), connesso.
Progetto e Ottmzzazone d Ret 5-6 68 Soluzon albero Poché G è connesso, ammette un albero rcoprente T Defnzone Una soluzone ammssble x per P s dce soluzone albero se, dato un albero rcoprente T d G s ha: ), ( ) ( ) ( ), ( ) ( ), ( = = + T j x N b x x j j j j δ δ
Esempo -4 + 4-6 -4 + 5 5-6 c = 3 3 - + - + Il grafo d snstra ha cost sugl arch. Invece, gl arch blu sul grafo d destra rappresentano una soluzone albero ( valor sugl arch sono fluss). Progetto e Ottmzzazone d Ret 5-6 69
Corrspondenza alber/soluzon Dato un albero T, possamo sceglere un suo nodo r come radce e rferre T come albero con radce n r. Data una soluzone albero, se T ha radce r e sceglamo un arco (, j) d T, s determna una partzone de nod d G n due nsem R e R\N, tal che l flusso tra R e R\N è supportato totalmente dall arco (, j) (nel verso concorde con l verso dell arco). In altre parole, ogn arco dell albero T ha un valore d flusso unvocamente determnato. Pertanto: Lemma Ad un albero T è assocata un unca soluzone albero. Progetto e Ottmzzazone d Ret 5-6 7
Esempo + R\N 5 5-4 -6 R - r + L arco rosso supporta tutto l flusso da R\N verso R. Progetto e Ottmzzazone d Ret 5-6 7
Corrspondenza alber/soluzon Osservazone Ad una soluzone ammssble, n generale, possono corrspondere dverse soluzon albero. Esempo Sa b() =, per ogn N. La soluzone x = è ammssble e ogn albero rcoprente T d G è una soluzone albero assocata alla soluzone x =. Progetto e Ottmzzazone d Ret 5-6 7
Corrspondenza alber/soluzon Teorema Se P ammette una soluzone ammssble, allora ha una soluzone albero ammssble. Se P ha soluzone ottma, allora ha una soluzone albero ottma Dmostrazone Parte Sa x una soluzone ammssble per P. Se x non è una soluzone albero, sgnfca che esste almeno un cclo C con la propretà che x > per ogn (, j) C. C può essere sempre orentato n modo che contenga almeno un arco reverse. Progetto e Ottmzzazone d Ret 5-6 73
Corrspondenza alber/soluzon Sa ε = mn x tale che (,j) è un arco reverse d C. La soluzone x ottenuta da x con la seguente tecnca: x = x + ε se (,j) è un arco forward d C x = x ε se (,j) è un arco reverse d C è ammssble e non contene pù C. Pongo x = x e retero fnché x è prva d ccl. Parte Sa x* una soluzone ottma. Se x* contene un crcuto, questo ha costo zero. Dfatt, x* non può contenere crcut C d costo negatvo (altrment x* non sarebbe ottma). Potendo sceglere l orentazone d C, sgnfca che se x* contene ccl, quest hanno costo zero. È suffcente, qund, applcare la tecnca precedente per ottenere una soluzone ottma albero. Progetto e Ottmzzazone d Ret 5-6 74
Conseguenza Il teorema precedente c consente d poter lmtare la rcerca della soluzone ottma alle sole soluzon albero. Una opportuna tecnca consente d passare da una soluzone albero ad una nuova soluzone albero. Consderamo la soluzone d fgura: -4 - a c + r 5 5 b d -6 + se aggungamo all albero n blu l arco (c, d), ottenamo un cclo C. Ora, sceglendo come orentazone del cclo quella dell arco (c, d), posso nvare 5 untà d flusso lungo l arco (c, d), svuotando l arco (r, b) e ottenendo una nuova soluzone albero. Progetto e Ottmzzazone d Ret 5-6 75
Conseguenza Il valore del flusso nvato lungo l nuovo arco è par al mnmo del flusso sugl arch reverse del cclo C. La nuova soluzone albero è, per costruzone, ammssble. -4 a + r b -6 6 6 - c 5 d + Progetto e Ottmzzazone d Ret 5-6 76
Potenzal d un nodo Data una soluzone albero T con radce n r, defnsco potenzale d un nodo la seguente quanttà: y = ove P è l cammno (unco) n T da r ad h. Osservazone h (, j) arco forward d P Il costo rdotto è stato defnto come c y r + = j ( j, ) arco reverse d P Dalla defnzone segue che l costo rdotto d un arco d T è par a zero. c h r c = c y + y j Progetto e Ottmzzazone d Ret 5-6 77
Esempo Dalle condzon d ottmaltà per l mn cost flow, sappamo che se l costo rdotto è maggore o uguale a zero per ogn arco del grafo T, samo n presenza d una soluzone ottma. Se la soluzone non è ottma, devo selezonare come arco da far entrare nella soluzone albero un arco con costo rdotto negatvo. r - -4 a b c = ( 4) + ( ) = 4 In questa soluzone, d valore 5*5 + 4* + *3 + *3 = 7, l arco selezonato è l arco (b, a). c -3 c = ( 3) + ( ) = d - Progetto e Ottmzzazone d Ret 5-6 78
Esempo La nuova soluzone vale *4 + 5* + * 3 + *3 = 56. I potenzal a nod valgono: + -4 a r b 5-6 c r = + ( 6) = 4-6 a b -4 c d -9 c d - - + c = ( 9) + ( ) = Poché la nuova soluzone ha cost rdott postv per gl arch T, essa è ottma. Progetto e Ottmzzazone d Ret 5-6 79
Algortmo del smplesso su ret Trova una soluzone albero ammssble, T ; Calcola potenzal de nod y ; whle esste un arco (, j) T tale che c y + y j < { sa C l cclo (orentato secondo (, j)) che s ottene aggungendo (, j) a T; f (C non contene arch reverse) then stop; else { ε = mn {x hk, t.c. (h, k) è un arco reverse d C}; scegl un arco reverse (l, m) d C t.c. x lm = ε; aumenta x d ε lungo l cclo C ; T =T (, j)\(l, m); aggorna y ; } } Progetto e Ottmzzazone d Ret 5-6 8
Osservazon Come s determna una soluzone albero nzale? + Metodo (o degl arch artfcal) Scelgo un nodo r. Per ogn nodo r, se b() >, nsersco n T l arco (, r), se b() < nsersco n T l arco (r, ). Se qualcuno d quest arch non esste n G, l aggungo al grafo con un costo M. -4 4 6 M M -6 Se la soluzone ottma non contene arch d costo M, allora l problema orgnaro era ammssble. - + Progetto e Ottmzzazone d Ret 5-6 8
Osservazon s Metodo u = Aggungo due nod s e t e l collego, rspettvamente a nod con b()> e a nod con b(k)<. La capactà u = d un arco (s, ) èpar ab(), la capactà d un arco (k, t) è par a b(k). Qund, calcolo l s-t flusso massmo. u=4 Se l flusso satura tutt gl arch aggunt, l problema orgnaro è ammssble. u= u=6 Termnazone dell algortmo t Per quanto rguarda la convergenza n un numero fnto d terazon del metodo, s rmanda al paragrafo del lbro d testo (pagg. 8/9) Progetto e Ottmzzazone d Ret 5-6 8
Progetto e Ottmzzazone d Ret 5-6 83 Smplesso su ret Come s adatta l algortmo precedente quando rentroducamo le capactà sugl arch? ), ( (P) ) ( s.t. mn ) ( ), ( ) ( ), ( ), ( A j u x N b x x x c j j j j A j = + δ δ
Progetto e Ottmzzazone d Ret 5-6 84 Soluzone albero Defnzone Una soluzone ammssble x per P s dce soluzone albero se, dato un albero rcoprente T d G e una partzone L, U degl arch d G non appartenent a T, s ha: Una soluzone albero s ndca con (T, L, U). U ), ( L ), ( ) ( ) ( ), ( ) ( ), ( = = = + j u x j x N b x x j j j j δ δ
Smplesso su ret Anche n questo caso s può dmostrare l seguente Teorema Se P ammette una soluzone ammssble, allora ha una soluzone albero ammssble. Se P ha soluzone ottma, allora ha una soluzone albero ottma Pertanto, c s può lmtare a esplorare soluzon albero (T, L, U). Progetto e Ottmzzazone d Ret 5-6 85
Smplesso su ret Osservazon. La presenza d capactà sugl arch modfca la modaltà d aggornamento della soluzone albero. Per verfcare l ottmaltà della soluzone bsogna consderare le condzon d ottmaltà anche per gl arch n U L algortmo modfcato è l seguente: Progetto e Ottmzzazone d Ret 5-6 86
Smplesso su ret Trova una soluzone albero ammssble, (T, L, U ); Calcola potenzal de nod y ; whle esste un arco (, j) L tale che c y + y j < or esste un arco (, j) U tale che c y + y j > { } sa C l cclo orentato n cu (, j) è forward se (, j) L oppure è reverse se (, j) U; f (C non contene arch reverse or C non contene arch forward d capactà fnta) then stop; else {ε = mn {x hk, t.c. (h, k) è un arco reverse d C}; ε = mn {u hk -x hk, t.c. (h, k) è un arco forward d C}; ε = mn {ε, ε }; scegl un arco reverse (l, m) d C t.c. x lm = ε oppure un arco forward (l, m) d C t.c. u lm -x lm = ε; aumenta x d ε lungo l cclo C ; T =T (, j)\(l, m); aggorna y ; } Progetto e Ottmzzazone d Ret 5-6 87
Esempo -4 + 4,6 8,,8 +8, 6 3, -6 7, 6,3,4 +5-5 c, u Progetto e Ottmzzazone d Ret 5-6 88
Esempo, 8,8 8, 5,6 6,8,6,,,3 6,6 5,5 x, u 4,4 4,4 5,5 Progetto e Ottmzzazone d Ret 5-6 89
Esempo Struttura (T, L, U) e potenzal a nod -8-5 8 6 c = 5 4 c = 3-5 c = 5-4 Valore della soluzone: 89 Progetto e Ottmzzazone d Ret 5-6 9
Esempo ε = -8 - verso del cclo ε = 5 ε = -4 ε = 4 arco entrante -5 Progetto e Ottmzzazone d Ret 5-6 9
Esempo -8-6 8 6 c = 3-4 c = 5 c = 3-8 Soluzone ottma d valore 66 Progetto e Ottmzzazone d Ret 5-6 9