12.07.2015 Views

Modelli decisionali su grafi - Problemi di ... - Massimo Paolucci

Modelli decisionali su grafi - Problemi di ... - Massimo Paolucci

Modelli decisionali su grafi - Problemi di ... - Massimo Paolucci

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Modelli</strong> <strong>decisionali</strong> <strong>su</strong> <strong>grafi</strong>-<strong>Problemi</strong> <strong>di</strong> Localizzazione<strong>Massimo</strong> <strong>Paolucci</strong>(paolucci@<strong>di</strong>st.unige.it)DIST – Università <strong>di</strong> GenovaPercorso Minimo tra tutte le coppie <strong>di</strong> verticiSi può applicare n volte Dijkstra oppure il più convenientealgoritmo <strong>di</strong> Floyd-Warshall2Algoritmo (Floyd-Warshall)1. Porre k=1, c ii =0 ∀i, c ij =∞ se (i,j)∉E2. ∀ i≠k : c ik ≠∞ e ∀ j≠k : c kj ≠∞ calcola c ij =min[c ij ,(c ik + c kj )]3. Se ∃ i con c ii < 0 ⇒ ∃ un ciclo negativo passante per i, non esistesoluzione finita e l’algoritmo termina.Se ∀ i, c ii ≥ 0e k=n ⇒ trovata la soluzione. La matrice [c ij ] fornisce le<strong>di</strong>stanze minime da ogni nodo i ad ogni nodo j. L’algoritmo termina.Se ∀ i, c ii ≥ 0e k≠n, k=k+1 e torna al passo (2).


Percorso Minimo tra tutte le coppie <strong>di</strong> vertici3• L’algoritmo <strong>di</strong> Floyd-Warshall si può applicare anche inpresenza <strong>di</strong> costi negativi.• Al passo k-mo la matrice [c ij ] fornisce le <strong>di</strong>stanze minimetra ogni coppia <strong>di</strong> no<strong>di</strong> considerando solo l’insieme{1,2,...,k} <strong>di</strong> possibili no<strong>di</strong> interme<strong>di</strong>.• Per determinare i percorsi si può usare il metodo,proposto da Hu, per conservare l’informazione dellasequenza <strong>di</strong> no<strong>di</strong> da seguire: ....Percorso Minimo tra tutte le coppie <strong>di</strong> vertici4Il metodo <strong>di</strong> Hu• Si definisce la matrice [p ij ] tale che p ij è il nodoimme<strong>di</strong>atamente precedente j nel percorso minimo tra i e j.• Si inizializza p ij =i• Si aggiorna ad ogni passo (2) la matrice [p ij ] come segue:pij=⎧pkj⎨⎩pijsesecik+ ckj< cijcij≤ cik+ ckjAlla fine il percorso minimo tra i e j si può trovare seguendo aritroso la sequenza p ij =w, p iw =z, p iz =k, .... , p ih =i.


Percorso Minimo tra tutte le coppie <strong>di</strong> vertici5Se si inizializza con c ii = ∞, nella soluzione c ii rappresenta ilcosto (lunghezza) del più breve ciclo che passa per il nodo i.(esempio)Location Problems: : modelli ed applicazioni6 Decisioni a me<strong>di</strong>o e lungo termine (pianificazione) Caratteristiche dei modelli:• Orizzonte temporale (mono-periodo, multi-periodo)• Omogeneità dei flussi (single-commo<strong>di</strong>ty, multi-commo<strong>di</strong>ty)• Livelli dei flussi (singolo livello, due livelli) Imprese logistiche e <strong>di</strong> servizi:• Localizzare no<strong>di</strong> logistici (centri <strong>di</strong> produzione, magazzini, centri <strong>di</strong><strong>di</strong>stribuzione)• Dimensionare i flussi logistici (trasporti)• Dimensionare le capacità dei no<strong>di</strong>• Localizzare servizi (ospedali, protezione civile)


Modello singolo prodotto a un livello7 Un livello: costo trasporto a monte ed a valle del sistematrascurabile• Esempio: localizzazione <strong>di</strong> centri <strong>di</strong> <strong>di</strong>stribuzioneV 2V 1siti potenzialipunti <strong>di</strong> domanda• G = (V 1 ∪V 2 , A)• ipotesi: domanda frazionabile, costi lineariModello singolo prodotto a un livello8 Formulazioni• d j, j∈V 2livello <strong>di</strong> domanda in j (dato)• q i, i∈V 1capacità del sito i (dato)• u i, i∈V 1livello <strong>di</strong> attività del sito i (var.decisionale)• s ij, i∈V 1j∈V 2quantità <strong>di</strong> prodottoinviata da i a j (var. decisionale)• c ij, i∈V 1j∈V 2costo del trasporto tra ie j (dato)• f i, i∈V 1costo della produzione nel sitoi (dato)• Cosa rappresentano i vincoli?min ∑ ∑ cijsij+ ∑ fu i ii∈V1j∈V2i∈V1∑ sij= uii∈V1j∈V2∑ sij= djj∈V2i∈V1ui≤ qii∈V1sij≥ 0 i∈V 1,j∈V2ui≥ 0 i∈V1


Modello singolo prodotto a un livello9 Formulazioni• Costo della produzione con set-up (attivazione)f i set-up , g i costo marginale per la produzione nel sito i:⎧fi+ gu i iF(u i i)= ⎨⎩0ui≥ 0ui= 0• y i i∈V 1 var.binaria (1= sito i attivato, 0 = sito i non attivato)• la formulazione si mo<strong>di</strong>fica∑ fiui→ ii∈V1i∈V1∑ ( f y + g u )iiiui≤ qi→ ui≤ yiqii ∈ V1Modello singolo prodotto a un livello10 Formulazioni• Imporre un numero prefissato p <strong>di</strong> no<strong>di</strong> da introdurre:∑ y i = pi∈V 1• Variazione: in<strong>di</strong>viduare tra n possibili località quelle in cui ospitare pcentri <strong>di</strong> smistamento minimizzando la <strong>di</strong>stanza totale• Tutti i no<strong>di</strong> in V possono ospitare i centri• Non è importante la capacità produttiva• Non ci sono costi <strong>di</strong> set-up• ...• Come si può formulare?


Modello singolo prodotto a un livello11 Formulazioni• Capacità minima q i- e massima q i+ <strong>di</strong> un sito: q i- y i ≤ u i ≤ q i+ y i• Costi <strong>di</strong> esercizio lineari a tratti e concavi⎧fi' + g i'uif i ”⎪F i(u i)= ⎨ fi" + g i"uif i ’⎪ ⎩ 0u’ iSi sostituisce i con due no<strong>di</strong> i’ e i”0 ≤ ui≤ u i'ui≥ u i'ui= 0Minimizzando solo uno dei due (quello a costo minore per la u iottima) sarà selezionatoModello multi prodotto a due livelli12 Formulazioni• K prodotti <strong>di</strong>versi ma <strong>di</strong> classe omogenea• V 1insieme impianti produttivi• V 2insieme centri <strong>di</strong> <strong>di</strong>stribuzione potenziali (<strong>di</strong> cui attivarne p)• V 3insieme dei punti <strong>di</strong> domanda• p k i , i∈V 1k∈K massima quantità <strong>di</strong> k realizzabile in i (cap. impianto)• d k r , r∈V 3k∈K livello <strong>di</strong> domanda <strong>di</strong> k in r non frazionabile• q j-, q j+j∈V 2capacità min e max del centro j• c k ijr , i∈V 1 j∈V 2 r∈V 3k∈K costo trasporto <strong>di</strong> k da i a r via j• f j, g jj∈V 2costi fissi e marginali del centro j (dato)• z j, j∈V 2var. binaria associata alla selezione del centro j• y jr, j∈V 2r∈V 3var. binaria associata alla assegnazione <strong>di</strong> r a j• s k ijr , i∈V 1 j∈V 2 r∈V 3k∈K quantità <strong>di</strong> k inviata da i a r via j


Modello multi prodotto a due livelli⎛⎞minckskf z g dk∑ ∑ ∑ ∑ + j j jr yijr ijr ∑ ⎜ + ∑ ∑ ⎟jri∈V1j∈V2r∈V3k∈Kj∈V⎜2 r V3kK⎟⎝ ∈ ∈ ⎠skpk∑ ∑ ≤ijr ij∈V2r∈V3skdk∑ = r y jr j ∈ V2,r∈ V3,k∈ Kijri∈V1∑ y jr = 1 r ∈ V3j∈V2q−zdkj j ≤r y jr ≤ q+∑ ∑z j j ∈ Vj2r∈V3k∈K∑ z j = pj∈V2z j ∈ B j ∈ V2y jr ∈ B j ∈ V2,r∈ V3i ∈ V1,k∈ Ksk≥ 0 i ∈ V1,j ∈ V2,r∈ V3,k∈ Kijrcapacità impiantisod<strong>di</strong>sf. domandafornitura non frazionabilecapacità centrinumero centri da attivare13Localizzazione: centri e me<strong>di</strong>ane14 I problemi <strong>di</strong> localizzazione possono essere modellaticome problemi <strong>di</strong> centro e <strong>di</strong> me<strong>di</strong>ana <strong>su</strong> <strong>grafi</strong>:• <strong>Problemi</strong> <strong>di</strong> me<strong>di</strong>ana (mini<strong>su</strong>m)minimizzare la me<strong>di</strong>a delle <strong>di</strong>stanze tra gli utenti ed il servizio<strong>di</strong> afferenza• <strong>Problemi</strong> <strong>di</strong> centro (minimax)minimizzare la <strong>di</strong>stanza tra utente e servizio nel casopeggiore (per il cliente più lontano) I problemi <strong>di</strong> centro sono spesso utili nel settore dei servizipubblici


Localizzazione: centri e me<strong>di</strong>ane15 I punti <strong>di</strong> servizio possono essere localizzati <strong>su</strong>i no<strong>di</strong>(problemi <strong>di</strong> vertice) o in un punto qualsiasi degli archi edei no<strong>di</strong> (problemi assoluti) Definizioni• è dato un grafo G=(V,E) generico• è nota d(v i ,v j ) <strong>di</strong>stanza tra due vertici per ogni coppia <strong>di</strong> vertici• è noto w(v i ) peso <strong>di</strong> un vertice per ogni vertice• si in<strong>di</strong>ca con d(x,y) la <strong>di</strong>stanza tra due punti generici del grafo1-me<strong>di</strong>ana (assoluta) <strong>di</strong> G ogni punto x <strong>di</strong> G per cui è minima lafunzionef(x) =1V∑d(x,v) ⋅ w(v )vi∈ViiLocalizzazione: centri e me<strong>di</strong>ane16 Teorema (Hakimi)In un grafo connesso non orientato G esiste almeno unvertice v che è anche 1-me<strong>di</strong>ana Definizioni• dato un grafo G=(V,E) generico e le grandezze prima definitesi <strong>di</strong>ceeccentricità <strong>di</strong> un punto x la <strong>di</strong>stanza pesata <strong>di</strong> x dal verticepiù lontanoe(x)= max { d(x,vi)w(vi)}v i ∈V1-centro (assoluto) <strong>di</strong> G il punto x avente eccentricità minima


Localizzazione: centri e me<strong>di</strong>ane17 Definizioni• dato un grafo G=(V,E) generico e le grandezze prima definite• dato un insieme <strong>di</strong> p punti <strong>di</strong> G=(V,E), X p ={x 1 , x 2 ,...,x p } ed unvertice v, si <strong>di</strong>ce <strong>di</strong>stanza <strong>di</strong> v da X p la quantitàd(v,Xp) = min d(v,xi)xi∈Xp• Nota: se v è un cliente si as<strong>su</strong>me che si serva dal punto più vicinop-me<strong>di</strong>ana (assoluta) <strong>di</strong> G ogni insieme <strong>di</strong> p punti X p <strong>di</strong> G percui è minima la funzionef(Xp)= ∑ d(Xp,vi) ⋅ w(vi)vi∈VLocalizzazione: centri e me<strong>di</strong>ane18 Teorema (Hakimi)In un grafo non orientato e connesso G=(V,E) esiste almenoun insieme <strong>di</strong> p vertici che costituisce una p-me<strong>di</strong>anaassoluta• Difficoltà• Determinare la 1-me<strong>di</strong>ana in <strong>grafi</strong> connessi e non orientati èsemplice• Determinare la p-me<strong>di</strong>ana <strong>su</strong> un grafo qualunque è unproblema NP-hard• Nel caso <strong>di</strong> alberi è un problema polinomiale


Localizzazione: centri e me<strong>di</strong>ane19Algoritmo per il calcolo della me<strong>di</strong>ana1. Calcolare la matrice D(G)=[d(v i ,v j )] delle <strong>di</strong>stanze fra ognicoppia <strong>di</strong> vertici e moltiplicare ogni colonna j-ma per ilpeso w(v j ). Sia D’(G) la matrice così ottenuta.2. Sommare gli elementi <strong>di</strong> ciascuna riga <strong>di</strong> D’(G) escegliere la riga h-ma corrispondente alla sommaminima. Il vertice v h è la me<strong>di</strong>ana <strong>di</strong> G.Localizzazione: centri e me<strong>di</strong>ane20Esempio (con pesi dei vertici unitari)Me<strong>di</strong>anaassolutaVV 21 566475V 4 3V 165510V 76 V 89V 6V 32


Localizzazione: centri e me<strong>di</strong>ane21Esempio (con pesi dei vertici unitari)sommaD(G) =V1⎡ 0V ⎢2 11⎢V3⎢ 8V ⎢4 4⎢V5⎢V⎢6 M⎢V7⎢V⎢8 ⎣151105715850121947120117593M106621021912175615⎤15⎥⎥19⎥11⎥⎥⎥M⎥⎥⎥0⎥⎦6061725253717297V 1 V 2 V 3 V 4 V 5 V 6 V 7 V 8Localizzazione: centri e me<strong>di</strong>ane22Me<strong>di</strong>ana <strong>di</strong> un alberoRi<strong>su</strong>ltatiDato un albero T, con archi e no<strong>di</strong> pesati, se si elimina unarco qualsiasi (u, z) si ottengono due sotto alberi T u e T z .T uuzT z


Localizzazione: centri e me<strong>di</strong>ane23Me<strong>di</strong>ana <strong>di</strong> un alberoU = insieme dei no<strong>di</strong> <strong>di</strong> T uZ = insieme dei no<strong>di</strong> <strong>di</strong> T zLa me<strong>di</strong>ana appartiene ad U se e solo se w(U)≥w(Z).TeoremaPosto w(U)≥w(Z) la determinazione della me<strong>di</strong>ana <strong>di</strong> T èequivalente a quella del sotto-albero T u in cui al posto delpeso del vertice u si sostituisce la somma w(u)+w(Z).Localizzazione: centri e me<strong>di</strong>ane24Me<strong>di</strong>ana <strong>di</strong> un alberoAlgoritmo per il calcolo della me<strong>di</strong>ana <strong>di</strong> un albero(1) Scegliere un nodo v i <strong>di</strong> grado 1.(2) Se w(v i )≥w(V)/2 allora v i è la me<strong>di</strong>ana assoluta;se w(v i )


Localizzazione: centri e me<strong>di</strong>ane25 Definizioni• dato un grafo G=(V,E) generico e le grandezze prima definite• dato un insieme <strong>di</strong> p punti <strong>di</strong> G=(V,E), X p ={x 1 , x 2 ,...,x p }p-centro (assoluto) <strong>di</strong> G=(V,E) ogni insieme <strong>di</strong> p punti X p <strong>di</strong> Gper cui è minima la funzioner(Xp) = max d(Xp,vi) ⋅ w(vi)vi∈V• Difficoltà• Determinare il 1-centro vertice in <strong>grafi</strong> connessi è semplice• In <strong>grafi</strong> non orientati connessi il 1-centro si può determinare conun metodo <strong>grafi</strong>co• Determinare il p-centro <strong>di</strong> un grafo qualunque è un problemaNP-hardLocalizzazione: centri e me<strong>di</strong>ane26Algoritmo per il calcolo del centro vertice(1) Calcolare la matrice D(G)=[d ij ] delle <strong>di</strong>stanze fra ognicoppia <strong>di</strong> vertici (v i ,v j ).(2) Moltiplicare ogni colonna j-ma per il peso w(v j ).(3) Determinare il massimo <strong>su</strong> ogni riga ottenendoe(vi)= maxv j∈V{ d ⋅ w(v ) }(4) Il centro vertice x è il vertice a cui corrisponde il valoreminimo tra gli e(v i ).ijj


Localizzazione: centri e me<strong>di</strong>ane27 Esempio• Ipotesi: pesi unitariv 464v 5v 3v 1 82 26 v 2f(v1)=f(v2)=f(v3)=f(v4)=f(v5)=24 ⎡026⎢⎢830⇐⎢8⎢32 ⎢620 ⎢⎣280210682012861012042⎤e(v1) =6⎥e(v2) =⎥8⎥⇒e(v3) =⎥4⎥e(v4) =0⎥⎦ e(v5) =810121281-me<strong>di</strong>ana1-centri VerticeLocalizzazione: centri e me<strong>di</strong>ane28 Il metodo <strong>grafi</strong>co <strong>di</strong> Hakimi per il 1-centro assoluto• Si considera un arco alla volta• Per ciascun arco (v i,v j) determina il punto x ij<strong>di</strong> eccentricità minima• Quin<strong>di</strong> tra i vari punti x ijdetermina il punto <strong>di</strong> eccentricità minima inassolutov h w(v h )v id(v i ,v h ) d(v j ,v h )tyl(v i ,v h )d(y,v h ) = min { d(v i ,v h ) + t, d(v j ,v h ) + l(v i ,v h ) - t }• Si tracciano gli andamenti delle d(y,v h)w(v h) al variare <strong>di</strong> y in (v i,v h) rispettoad ogni nodo v hquin<strong>di</strong> si determina l’inviluppo massimo <strong>di</strong> tali <strong>grafi</strong>ci• Il punto x ij<strong>di</strong> eccentricità minima per l’arco corrisponde ad uno dei minimidell’inviluppo massimol-tv j


Localizzazione: centri e me<strong>di</strong>ane29 Il metodo <strong>grafi</strong>co <strong>di</strong> Hakimi per il 1-centro assoluto• Esempi <strong>di</strong> andamenti della <strong>di</strong>stanza <strong>di</strong> y in un arco dai verticid (y,v h ) d (y,v h ) d (y,v h )v iy v j v v ji y v v ji y• Sovrapponendo i <strong>grafi</strong>ci si determina l’inviluppo massimo ed il <strong>su</strong>ominimod (y,v h )max d(y,vh) ⋅ w(vh)v h ∈Vv iyv jx ij30Localizzazione: centri e me<strong>di</strong>ane Tecniche euristiche per la determinazione della p-me<strong>di</strong>ana (ottimi locali)Approccio 11. Scegliere arbitrariamente p vertici u 1 ,...,u p2. Assegnare ogni altro vertice ad uno dei p vertici scelti in base allaminima <strong>di</strong>stanza. Sia V i l’insieme dei vertici assegnati ad u i .Calcolare la somma S delle <strong>di</strong>stanze3. Per ogni V i cercare la me<strong>di</strong>ana z i e sostituirla a u i . Calcolare lanuova somma S’ delle <strong>di</strong>stanze. Se S’


Localizzazione: modelli <strong>di</strong> copertura33 Si utilizza il modello del Set-Covering• Se i costi <strong>di</strong> attivazione dei siti fossero uguali tra loro ci si puòporre il problema <strong>di</strong> stabilire il numero minimo <strong>di</strong> siti da attivare perservire i clienti nel tempo minimo complessivo• x ij , i∈V 2 , j∈V 1 x ij ∈B cliente i servito dal sito j• M costante <strong>su</strong>fficientemente grande (big-M)min ∑ Myj+ ∑ ∑ tijxijj∈V1 i∈V2 j∈V1∑ aijxij≥ 1 i∈V2j∈V1xij≤ yji∈V2,j∈ V1yj∈Bj∈V1xij∈Bi∈V2,j∈ V1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!