Gestone della produzone e della supply chan Logstca dstrbutva Paolo Dett Dpartmento d Ingegnera dell Informazone Unverstà d Sena
Struttura delle ret logstche Sstem produttv multstado Struttura logstca lneare Sst. prod. / Forntore Sst. prod. / Forntore Sst. prod. / Forntore
Struttura delle ret logstche Struttura logstca ad assemblaggo 7 8 6
Struttura delle ret logstche Struttura logstca arborescente (rete d dstrbuzone) 8 7 6
Cost n logstca Costo per l acquszone de materal (soggetto a scont e ncertezze sul valore futuro) Cost d ordnazone Cost d mantenmento o perdta del valore delle scorte Cost fss e varabl d trasporto Cost per la realzzazone d mpant e centr d dstrbuzone Cost legat alla movmentazone de materal ne magazzn
Progetto d ret logstche e trasport Determnare la struttura d una rete logstca sgnfca dmensonare mpant d produzone, centr d dstrbuzone, punt vendta, fluss de materal. Il problema s pone ad un lvello strategco. Tuttava, l problema può pors ad un lvello tattco, nel caso n cu sa possble acqusre rsorse (mezz d trasporto, st d stoccaggo, ecc ) n afftto da forntor d servz logstc.
Teora de graf La Teora de Graf costtusce, al par della Programmazone Matematca, un corpo metodologco per la modellazone e soluzone d problem decsonal Molt problem d ottmzzazone hanno una naturale rappresentazone grafca. Sono note effcent tecnche rsolutve basate su Graf.
Orgn La Teora de Graf è stata ntrodotta dal matematco svzzero Eulero (77-78) che formulò utlzzando graf l problema de pont d Könsberg (cttà Prussana): C Fume Pregel A D Partendo da una qualsas area d terra è possble tornare al punto d partenza attraversando tutt pont una ed una sola volta? B
Se s assocano alle zone d terra de punt (nod o vertc) e a pont de tratt d lnea (arch o spgol) l problema de pont d Könsberg è modellato dal Grafo C A D B Eulero s servì d questo grafo per stablre che era mpossble trovare l percorso rchesto, con pont così dstrbut. E nvece possble se l numero d arch ncdente n ogn nodo è par.
Defnzon Un grafo G=(V,E) è defnto da: un nseme V d nod; un nseme E d arch. Un grafo s dce orentato se gl arch hanno un orentamento altrment s dce non orentato C C A D A D B B
Defnzon (graf non orentat) Dato l arco e=(a, b) a a, b sono dett nod estrem d e e è detto arco ncdente n a e b a, b sono dett nod adacent b due arch s dcono adacent se hanno un nodo n comune Dato l nodo a d G l Intorno d a, ndcato con N(a), è l nseme de nod adacent ad a la stella d a, ndcata con δ(a), è l nseme degl arch ncdent n a N() = {, } δ() = {(,), (,), (,)}
Defnzon (graf orentat) Dato un arco orentato e=(a, b) e è detto arco uscente da a (nodo coda) e è detto arco entrante n b (nodo testa) a s dce predecessore dretto d b b s dce successore dretto d a a b Dato un nodo a d un grafo orentato G δ + (a) è l nseme degl arch uscent da a δ - (a) è l nseme degl arch entrant n a un nodo con sol arch entrant è detto pozzo un nodo con sol arch uscent è detto sorgente δ + () = {(,), (,)} δ - () ={(,), (,)}
Defnzon Dato un Grafo G=(V, E) con V={v,, v n } ed E={e,, e m } un cammno è una sequenza d arch p={e h, e h,, e hq }, tal che ogn due arch consecutv sono adacent
Defnzon Un cammno è detto semplce se gl arch e nod del cammno sono tutt dstnt altrment s dce non semplce un cammno è orentato se per ogn arco e=(, j) del cammno, l nodo è la coda d e ed l nodo j è la testa d e
Defnzon Un cammno è detto chuso se nod estrem del cammno concdono Un cammno semplce e chuso è detto cclo Un Grafo G s dce connesso se per ogn coppa d nod a e b esste un cammno da a a b
Defnzon Un cclo orentato Un cclo non orentato
Defnzon Un cammno chuso n un grafo è detto cclo Eulerano se passa una ed una sola volta su tutt gl arch del grafo. Un cclo Eulerano può non esstere n un grafo. Grafo non Eulerano Grafo Eulerano C A D B
Defnzon Un cclo n un grafo è detto cclo Hamltonano se passa una ed una sola volta su tutt nod del grafo. Un cclo Hamltonano può non esstere n un grafo. Graf Hamltonan C A D B
Defnzon Dato un grafo non orentato G=(V,A) e un sottonseme S d V Taglo n un grafo Una taglo δ (S) è l nseme d arch con un estremo n S e l altro n V\S S= {, } δ(s) = {(,), (,), (,)}
Defnzon Dato un grafo G=(V,A) orentato e un sottonseme S d V Taglo n un grafo Il taglo δ + (S) è l nseme d arch con coda n S e testa n V\S Il taglo δ - (S) è l nseme d arch con testa n S e coda n V\S S ={,,} δ + (S) = {(,),(,),(,)} δ - (S) ={(,)}
Grafo bpartto G=(V, V, A) Defnzon L nseme de nod V è dvsble n due sottonsem V e V Non c sono arch n A che collegano due nod d V o due nod d V
Defnzon Una foresta è un grafo senza ccl
Defnzon Un Albero T=(V,A) è un grafo che soddsfa una delle seguent defnzon: è una foresta conessa è connesso e non contene ccl è connesso ed ha V - arch per ogn coppa d nod esste un solo cammno che l connette è connesso e la rmozone d un arco lo rende dsconnesso
Defnzon Dato un grafo G=(V,A) una foresta rcoprente F =(V,A ) d G è una foresta tale che V =V
Defnzon Dato un grafo G=(V,A) albero rcoprente T =(V,A )d G è un albero tale che V =V
Il Problema del Flusso su Ret a Costo Mnmo (Mnmum Cost Network Flow) Il problema d Flusso a Costo Mnmo consste nel determnare l modo pù convenente per trasportare una determnata quanttà d bene da uno o pù punt d produzone o mmagazznamento ad uno o pù punt d consumo, attraverso una rete d trasporto data. Esstono algortm d soluzone estremamente effcent per l calcolo della soluzone d Problem d Flusso a Costo Mnmo (pù effcent de metod utlzzat per la soluzone d problem d PL generc).
Il Modello del Flusso su Ret a Costo Mnmo (Mnmum Cost Network Flow) Dat Il grafo G=(V, E) della rete Un nseme d nod forntor S V e la quanttà d bene dsponble a() per ogn S Un nseme d nod domanda D V e la quanttà d bene rchesta b() per ogn D I cost untar d trasporto c, le capactà superor u e nferor l ad ogn arco (,j) d E
Il Modello del Flusso su Ret a Costo Mnmo (Mnmum Cost Network Flow) Il Problema Decdere quanto flusso nvare su cascun arco n modo tale che le capactà sugl arch sano rspettate ad ogn nodo sa soddsfatto l blancamento del flusso: Flusso uscente da Flusso entrante n = a( ) se è un nodo forntore b( ) se è un nodo domanda altrment l costo totale del flusso sulla rete sa mnmo
Il Modello del Flusso su Ret a Costo Mnmo (Mnmum Cost Network Flow) Un esempo ed una soluzone ammssble ( cost degl arch non sono rportat) a()= Nod forntor Nod domanda 6 b(6)= a()= a()= l, u, c j 7 b(7)= l = u = +
Il Modello del Flusso su Ret a Costo Mnmo : Una formulazone d PL Defnzone delle varabl: x la quanttà d flusso che scorre nell arco (,j), per ogn (,j) E Funzone obettvo: mn (, j ) E c x
Upper bound sulle varabl: x u (,j) E Lower bound sulle varabl: x l (,j) E
Vncolo sul blancamento del flusso: = + altrment ) ( ) ( ) ( ), ( ) ( ), ( D b S a x x j j j δ δ Condzone: affnché l problema abba una soluzone ammssble deve essere: = D S b a ) ( ) (
(, j ) δ + x ( ) x Formulazone complessva mn l ( j, ) δ (, j ) E x j ( ) c x a( ) S = b( ) D altrment (,j) E x u (,j) E Propretà: La matrce de coeffcent è Totalmente Unmodulare (matrce d ncdenza d un grafo dretto e matrc denttà) Se le quanttà a ( ), b( ), l, u sono ntere allora esste un flusso ottmo x* ntero (calcolable).
Il Modello del Flusso su Ret a Costo Mnmo (Mnmum Cost Network Flow) In pratca, un problema d flusso su ret a costo mnmo può essere rsolto con algortm combnator estremamente effcent (polnomal), che sfruttano la struttura della rete. Inoltre, esste una versone del metodo del smplesso, nota con l nome d smplesso su ret, messa a punto propro per la soluzone d problem d flusso su ret a costo mnmo.
Ottmzzazone de cost d trasporto e dmensonamento della capactà produttva Descrzone del problema Un ndustra almentare produce alment n dvers mpant. Gl alment una volta prodott possono essere trasportat drettamente a dvers clent, oppure trasportat e stoccat n magazzn e po consegnat a clent. Dat Il costo d produzone è lo stesso per ogn mpanto. Il costo d stoccaggo è lo stesso per ogn magazzno. Ogn mpanto ha una capactà produttva lmtata. E nota la domanda d alment d ogn clente. Sono dat cost d trasporto e produzone/stoccaggo, per tonnellata d alment, tra ogn coppa d punt. Possono essere trasportate al pù tonnellate d alment tra ogn coppa d punt. Obettvo L ndustra vuole decdere quanto produrre n ogn mpanto e quanto stoccare n ogn magazzno, n modo tale che l costo totale d trasporto dagl mpant verso clent sa mnmo e la domanda de clent sa soddsfatta.
Ottmzzazone de cost d trasporto e dmensonamento della capactà produttva Impant Clent Capactà (ton per anno) 8 Domande (ton per anno) Cost d trasporto e produzone/stoccaggo (mglaa d Euro per ton) Magazzno Magazzno Clente Clente Impanto,,,, Impanto,, 8, 9, Impanto,,, 8, Magazzno - -,, Magazzno - -, 7,
Ottmzzazone de cost d trasporto e dmensonamento della capactà produttva Il problema può essere modellato con un grafo orentato, assocando un nodo ad ogn mpanto, magazzno e clente. Un arco orentato esprme l fatto che può essere trasportata una certa quanttà d alment tra due nod estrem dell arco. Impant Magazzn Clent 6 Capactà (ton per anno) 7 8 Domande (ton per anno) Ad ogn nodo mpanto è assocato un valore par alla capactà produttva Ad ogn nodo clente è assocato un valore par alla domanda
Ottmzzazone de cost d trasporto e dmensonamento della capactà produttva Ad ogn arco (,j) del grafo sono assocat una capactà u, un costo d trasporto e produzone c per tonnellata (per gl arch uscent dagl mpant) ed un costo d trasporto e stoccaggo c per tonnellata (per gl arch uscent da magazzn). u, c u = per ogn arco j Cost d trasporto e produzone/stoccaggo (mglaa d Euro per ton) Magazzno Magazzno Clente Clente Impanto,,,, Impanto,, 8, 9, Impanto,,, 8, Magazzno,, Magazzno, 7,
Ottmzzazone de cost d trasporto e dmensonamento della capactà produttva Condzone d ammssbltà La somma delle capactà produttve (6) eccede la somma delle domande (8) Impant Magazzn Clent 6 7 8 8 Capactà (ton per anno) Domande (ton per anno) S ntroduce un nodo domanda fttzo con valore 6-8= connesso a nod forntor con arch d capactà par a e costo nullo
Formulazone con Excel
Soluzone ottma del Problema Impant Magazzn Clent 8 8 6 7 8 8 Capactà (ton per anno) Domande (ton per anno) Costo d trasporto complessvo: mla Euro
Il problema del Cammno d costo mnmo su graf Sano dat un grafo orentato G=(V, E) un costo c assocato ad ogn arco (, j) una coppa d nod s e t l problema consste nel trovare un cammno semplce orentato da s a t la cu somma de cost degl arch ha valore mnmo. s t
Il problema del Cammno d costo mnmo modellato come problema d Flusso su ret a costo mnmo Se s assoca: un valore a(s)= al nodo s; un valore b(t)= al nodo t; una capactà nferore par a ad ogn arco d E; una capactà superore par a ad ogn arco d E. Il problema d trovare un cammno mnmo da s a t può essere vsto come caso partcolare d problema d Flusso a costo mnmo, con un solo nodo forntore (s) ed un solo nodo domanda (t). a(s)= s b(t)= t
Il problema de trasport Sano dat un grafo orentato bpartto G=(A,B,E) A, nseme de nod forntor B, nseme de nod domanda una quanttà dsponble b per ogn nodo forntore n A una quanttà rchesta d per ogn nodo domanda n B un costo untaro d trasporto c assocato ad ogn arco (, j) d E Il problema Il problema consste nel determnare quanto trasportare su cascun arco n modo da soddsfare la domanda e mnmzzare cost d trasporto.
Il problema de trasport Defnzone delle varabl: x la quanttà d flusso che scorre nell arco (,j), per ogn (,j) E j B A x x mn (, j ) E c x b A d j j B x (,j) E
Nod domanda Il problema de trasport Nod forntore b d b b mn c x (,j ) E x b A j B x d j j B A x (, j) E Propretà: La matrce de coeffcent è Totalmente Unmodulare (matrce d ncdenza d un grafo bpartto) Se le quanttà b e d j sono ntere allora esste un flusso ottmo x* ntero. d
E j c x ), ( mn E (,j) u x E (,j) l x = + altrment ) ( ) ( ) ( ), ( ) ( ), ( D b S a x x j j j δ δ Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Idea: A partre da un flusso ammssble sulla rete, l dea alla base del smplesso su ret è quella d mglorare la soluzone d partenza aumentando l flusso n ccl con costo untaro negatvo, o dmnuendo l flusso n ccl con costo untaro postvo. Cclo con costo negatvo: -++-= - Cclo con costo postvo: -++-= (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (x, c ) j (x, c ) j
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Defnzon Dato un flusso ammssble x sulla rete G, un arco (,j) è detto lbero se l < x < u vncolato se x = l oppure x = u
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Defnzon Dato un flusso ammssble x sulla rete G, un arco (,j) è detto lbero se l < x < u vncolato se x = l oppure x = u Soluzone senza ccl (cycle free soluton): un flusso ammssble x tale che n ogn cclo (non orentato) della rete esste almeno un arco vncolato Soluzone ad albero rcoprente (spannng tree soluton): dato un albero rcoprente T d G, un flusso ammssble x tale che ogn arco che non appartene a T è vncolato (gl arch d G che appartengono a T possono essere lber o vncolat)
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Soluzone senza ccl (cycle free soluton): un flusso ammssble x tale che n ogn cclo della rete esste almeno un arco vncolato Soluzone ad albero rcoprente (spannng tree soluton): dato un albero rcoprente T d G, un flusso ammssble x tale che ogn arco che non appartene a T è vncolato (gl arch d G che appartengono a T possono essere lber o vncolat) È possble mostrare che un problema d flusso a costo mnmo ammette sempre una soluzone ottma senza ccl e ad albero rcoprente.
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret E sempre possble trasformare una soluzone ammssble n una soluzone senza ccl Esempo: Cclo con costo negatvo Tutt gl arch con capactà massma nfnta e capactà mnma Costo del cclo per flusso untaro D: -++-= - (,) (,) (,) (,) (x, c ) j (,) +a -a -a +a +a
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Aumentando a l costo nel cclo dmnusce. a può essere aumentato fn quando fluss sugl arch s mantengono postv (non negatvtà del flusso) (e non eccedono la capactà massma): a -a a +a 8 +a a -a +a 7 Il flusso è ancora ammssble, un arco è vncolato (ha ora flusso nullo), ed l costo della soluzone è dmnuto
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Esempo: Cclo con costo postvo Tutt gl arch con capactà massma nfnta e mnma Costo del cclo per flusso untaro D: -++-= (,) (,) (,) (,) (x, c ) j (,) +a -a -a +a +a
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Poché dmnuendo l flusso nel cclo dmnusce l costo, l valore d a può essere dmnuto l pù possble a condzone che fluss sugl arch non dventno negatv (e che le capactà massme degl arch sano rspettate): + + + a -a +a +a a a a -a +a Il flusso è ancora ammssble, un arco ha ora flusso nullo (è vncolato), ed l costo della soluzone è dmnuto 6
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Dato un flusso ammssble sulla rete, l procedmento sopra descrtto s può applcare a tutt ccl della rete, anche a ccl con costo untaro nullo (n questo caso non avremo nessun mgloramento della soluzone), per portare l flusso d un arco del cclo al valore, ottenendo qund una soluzone ammssble senza ccl. Se assumamo lower bound dvers da ed upper bound fnt sulle varabl x, è possble con ragonament analogh modfcare fluss sugl arch n modo da non peggorare la soluzone, mantenere l ammssbltà e portare l flusso su un arco del cclo al suo valore mnmo (l ) o massmo (u ) Applcando l ragonamento a tutt ccl della rete s ottene l seguente rsultato. Teorema Se la funzone obettvo d un problema d flusso a costo mnmo non è llmtata nferormente, esste sempre una soluzone ottma senza ccl.
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret È possble convertre una soluzone senza ccl n una soluzone ad albero rcoprente Infatt, data una soluzone senza ccl, possono accadere due cose:. Il grafo che s ottene elmnando da ogn cclo un arco vncolato è connesso: soluzone ad albero rcoprente. Il grafo che s ottene elmnando da ogn cclo un arco vncolato non è connesso: foresta rcoprente Nel caso, è possble aggungere arch vncolat alla foresta ed ottenere una soluzone ad albero rcoprente
Nel caso, è possble aggungere arch vncolat alla foresta ed ottenere un soluzone ad albero rcoprente Soluzone senza ccl Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret (,) (,) (,) (,) (,6) (,) (,) j (x, u ), l = Soluzon ad alber rcoprent
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret S ottene qund l seguente rsultato. Teorema Se la funzone obettvo d un problema d flusso a costo mnmo non è llmtata nferormente, esste sempre una soluzone ottma ad albero rcoprente per l problema.
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Data una soluzone ad albero rcoprente, gl arch n A della rete G possono suddvders n tre categore:. Gl arch appartenent all albero T. Gl arch non appartenent all albero l cu flusso è par alla capactà mnma (nseme L). Gl arch non appartenent all albero l cu flusso è par alla capactà massma (nseme U) E possble ottenere una (unca) soluzone ad albero rcoprente conoscendo la struttura T,L,U (ammssble). Basta porre x =l per ogn (,j) n L x =u per ogn (,j) n U calcolare l flusso sugl altr arch d T attraverso le condzon d blancamento de nod
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Dremo che la struttura d un albero rcoprente T,L,U è ammssble se la relatva soluzone ad albero rspetta bound d cascun arco della rete G Data una soluzone ad albero rcoprente, dremo che l albero relatvo T è non degenere se tutt gl arch n T sono lber, altrment l albero s dce degenere
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Data una struttura ad albero rcoprente T,L,U L algortmo calcola un flusso ammssble sugl arch d T Per semplctà, assumamo che tutt gl arch abbano upper bound nfnto e lower bound (gl arch non n T sono n L e qund hanno flusso ). Dato un arco, sano T e T due sottoalber ottenut elmnando l arco. a()= b()= a()= a()=b()= S not che deve essere: b()= ( a() b() ) + ( a() b() ) = T T T a()= T a()= x = a()=b()= b()= b()=
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret In modo smle è possble calcolare l flusso anche nel caso n cu la capactà massma degl arch sa fnta (supponamo che gl arch (,) e (,) sano n U) a()= u = u = b()= a()= a()=b()= b()= a()= T b()= T a()= x = a()=b()= b()=
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Test d ottmaltà per una soluzone ad albero rcoprente Defnamo per ogn arco d G un costo rdotto nel seguente modo: c' = c π( ) + π( j) (, j) Dove π() è detto potenzale al nodo Teorema La struttura d un albero rcoprente T,L,U è ottma per l problema d flusso a costo mnmo se è ammssble e se esste una scelta de potenzal de nod π() tale che: c' c' c' = (, (, (, j) T j) L j) U A
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Teorema La struttura d un albero rcoprente T,L,U è ottma per l problema d flusso a costo mnmo se è ammssble e se esste una scelta de potenzal de nod π() tale che:. c' = (, j) T. c' (, j) L. c' (, j) U Dm Sa x* la soluzone assocata alla struttura T,L,U e supponamo che esstano de potenzal a nod che soddsfano le condzon -. S not che mn c x equvale a (,j ) A mn c ' x = mn (c π() + π( j))x = (,j ) A (,j ) A $ ' mn c x + π()x + π()x j & ) (,j ) A V % (,j ) δ( ) + ( j, ) δ( ) ( π ( ) a( ) se π ( ) b( ) se se nodo forntore nodo domanda nodo d transto costante
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Dm (segue) Dalle condzon S ha mn... c' c' c' = (, j) T (, j) L (, j) U c ' x = mn c ' x c ' x (,j ) A (,j ) L (,j ) U Consderamo una qualsas soluzone ammssble x per l problema. Dalla defnzone d x* s ha e qund: c' (, j ) A x c' (, j ) A x x x * x x * * = = l u (, (, c (, j ) A x j) L j) U c (, j ) A x * c.d.d.
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Idea dell algortmo: Il smplesso su ret è un algortmo teratvo che passa da una struttura ad albero rcoprente ad un altra, e termna quando vene ndvduata una struttura ottma. Ad ogn terazone l algortmo sosttusce un arco dell albero rcoprente con un altro non appartenente all albero: L arco che entra a far parte dell albero è un arco che vola la condzone d ottmaltà. Il cclo che s vene a formare ha costo untaro negatvo (cclo negatvo). Il flusso lungo l cclo vene aumentato fnché qualche arco non raggunge la sua capactà mnma o massma. Uno d quest arch con capactà mnma o massma è rmosso, producendo una nuova struttura ad albero.
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Data una struttura ad albero rcoprente T,L,U l algortmo calcola come prma cosa potenzal a nod n modo da soddsfare la condzone Come? c' = (, j) T S not che aggungere una costante k a tutt potenzal non modfca cost rdott c' = c π( ) + π( j) = c [ π( ) + k] + [ π( j) + k] Al nodo può essere assegnato un potenzale I potenzal d tutt gl altr nod sono calcolat n modo tale che c' = c π( ) + π( j) = (, j) T
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Esempo: calcolo de potenzal a nod a partre da una struttura ad albero rcoprente T,L,U, n modo tale che: c j c' = c π( ) + π( j) = (, j) T π() = c c π() + π() = + π () = π() = π() + π() = + + π () = π() =... Teorema Se nel problema d flusso a costo mnmo tutt cost degl arch sono nter allora esste una soluzone ottma n cu potenzal de nod π() sono tutt nter.
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Algortmo: smplesso su ret calcola una struttura ad albero T,L,U ammssble calcola l relatvo potenzale a nod π ed l flusso x su ogn arco della rete Calcola la condzone d ottmaltà whle (esste un arco non n T che vola la condzone d ottmaltà) begn selezona un arco che vola la condzone d ottmaltà, da far entrare nell albero determna l arco da rmuovere dall albero aggorna la struttura T,L,U e calcola l relatvo potenzale a nod, π, ed l flusso x su ogn arco della rete Calcola la condzone d ottmaltà end
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Calcolo d una struttura ad albero ammssble nzale T,L,U (arch tutt con capactà mnma ) Supponamo che fra ogn coppa d nod essta un cammno dretto n cu ogn arco ha capactà nfnta Data una rete G=(V,A) è sempre possble rspettare questa condzone aggungendo degl arch fttz (,j) e (j,) per ogn nodo j d V\{}, con capactà massma nfnta e costo nfnto (d fatto non saranno ma scelt n una soluzone ottma) Una struttura ad albero nzale è ottenble aggungendo n T l arco (j,) se l nodo j è un nodo forntore (a(j)>) o d transto a(j)=b(j)= con un flusso par a a(j) aggungendo n T l arco (,j) se l nodo j è un nodo domanda (b(j)>) con un flusso par a b(j) tutt gl altr arch sono nsert nell nseme L (a flusso nullo) l nseme U è vuoto
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Controllo dell ottmaltà della struttura ad albero T,L,U Dopo aver calcolato potenzal a nod π() Possamo controllare le condzon d ottmaltà:... c' c' c' = (, j) T (, j) L (, j) U Se la struttura ad albero non rspetta queste condzon, gl arch che possono essere scelt per entrare nell albero sono: (,j) L con (,j) U con c' c' < > Dvers sono crter d selezone dell arco entrante (pvot rule), e.g., Dantzg rule: selezona l arco con l massmo c
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Calcolo dell arco uscente dall albero Sa (k,l) l arco selezonato per entrare nell albero Aggungendo l arco (k,l) all albero s vene a creare esattamente un cclo (pvot cycle) W Defnamo l orentamento del cclo W concorde con l arco se (k,l) è n L e dscorde se (k,l) è n U (x, u ) j (,) (,) (,) (,6) (,) 6 (,) (,) 7 8 (,6) (,) 9 (,) k l
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Calcolo dell arco uscente dall albero Il flusso del cclo è aumentato (l flusso aumenta sugl arch concord con l orentamento del cclo e dmnusce sugl arch dscord) fn quando l flusso su uno o pù arch raggunge l relatvo lower o upper bound (blockng arcs). L arco uscente è selezonato tra gl arch blockng. Dvers sono crter d selezone dell arco uscente, e.g., selezona l prmo arco blockng ncontrato scandendo la lsta degl arch, oppure l arco con costo max. (,6) (,) (,) (x, u ) j (,) (,) (,) 6 (,) 7 8 (,6) (,) 9 k (,) l Cclo d pvot arch blockng: (,), (7,) e (6,)
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Esempo a()=9, b(6)=9, tutt gl altr nod sono d transto (,8) (,) (,7) (,) (,) (,) j (,) (,) (,6) 6 Sano dat T, L, U: calcolo de potenzal e fluss L={(,), (,)} U={(,), (,6)} (c, u ), l = π() = c c c π() + π() = + π() = π () = π() + π() = + π() = π () = π() + π() = + + π () = π() = 8... 6 π() - - x π(j) j -8 - -9 6
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret - -8 6 π() - - π(j) x L={(,), (,)} U={(,), (,6)} j -9 6 6 Calcolo arco entrante: c =+-=>, (,) n U, l massmo ncremento sul cclo è, l arco (,) dventa blockng ed esce (entra n U) - - -8 - -9 6 c' c' c' c' 6 = c = c = c = c 6 π() + π() = + > π() + π() = + 8 > π() + π() = + = > π() + π(6) = + 8 9 = > π() x π(j) j
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Esempo Nuovo albero rcoprente - -8 7 π() - -6 π(j) x L={(,), (,)} U={(,), (,6)} j - 6 c c 6 c' c' c' c' Calcolo de potenzal: c' = c π( ) + π( j) = (, j) T π() + π() = + + π() = π() = 6 π() + π(6) = + 6 + π(6) = π(6) = Test d ottmaltà: 6 = c = c = c = c 6 π() + π() = + > π() + π() = + 6 8 > π() + π() = + 6 < π() + π(6) = + 8 >
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret (,8) (,) (,) (,7) (,) (c, u ), l = (,) j (,) (,) (,6) 6 Nuovo arco entrante: c 6 =+8-=>, l massmo ncremento sul cclo è, Gl arch (,) e (,) dventano blockng Sceglamo l arco (,) che esce da T 7 π() - - x π(j) j -8-6 - 6
Un algortmo per l problema del flusso su ret a costo mnmo: l smplesso su ret Esempo Nuovo albero rcoprente π() 6 - - x π(j) j -8-7 L={(,), (,)} U={(,), (,)} Trovata una soluzone ottma - 6 Calcolo de potenzal: c' π() = c c c c c 6 6 = c π( ) + π( j) = (, j) T π() + π() = + π() = π() = π() + π() = + π() = π() = π() + π() = + + π() = π() = 8 π() + π(6) = + 8 + π(6) = π(6) = π() + π() = π() = π() = 7 Test d ottmaltà: c' c' c' c' = = = = c c c c π() + π() π() + π() π() + π() π() + π() = + > = + 7 < = + 7 < = + 7 8 >