Modelli decisionali su grafi - Problemi di Localizzazione Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Percorso Minimo tra tutte le coppie di vertici 2 Si può applicare n volte Dijstra oppure il più conveniente algoritmo di Floyd-Murchland Algoritmo (Floyd-Murchland) 1. Porre 1, c ii 0 i, c ij se (i,j) E 2. i : c i e j : c j calcola c ij min[c ij,(c i +c j )] 3. Se i con c ii < 0 un ciclo negativo passante per i, non esiste soluzione finita e l algoritmo termina. Se i, c ii 0e n trovata la soluzione. La matrice [c ij ] fornisce le distanze minime da ogni nodo i ad ogni nodo j. L algoritmo termina. Se i, c ii 0e n, +1 e torna al passo (2).
Percorso Minimo tra tutte le coppie di vertici 3 L algoritmo di Floyd-Murchland si può applicare anche in presenza di costi negativi. Al passo -mo la matrice [c ij ] fornisce le distanze minime tra ogni coppia di nodi considerando solo l insieme {1,2,...,} di possibili nodi intermedi. Per determinare i percorsi si può usare il metodo, proposto da Hu, per conservare l informazione della sequenza di nodi da seguire:... Percorso Minimo tra tutte le coppie di vertici 4 Il metodo di Hu Si definisce la matrice [p ij ] tale che p ij è il nodo immediatamente 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 pj pij se se ci + cj < cij cij ci + cj Alla fine il percorso minimo tra i e j si può trovare seguendo a ritroso la sequenza p ij w, p iw z, p iz,..., p ih i.
Percorso Minimo tra tutte le coppie di vertici 5 Se si inizializza con c ii, nella soluzione c ii rappresenta il costo (lunghezza) del più breve ciclo che passa per il nodo i. (esempio) Location Problems: modelli ed applicazioni! Decisioni a medio e lungo termine (pianificazione)! Caratteristiche dei modelli: Orizzonte temporale (mono-periodo, multi-periodo) Omogeneità dei flussi (single-commodity, multi-commodity) Livelli dei flussi (singolo livello, due livelli)! Imprese logistiche e di servizi: Localizzare nodi logistici (centri di produzione, magazzini, centri di distribuzione) Dimensionare i flussi logistici (trasporti) Dimensionare le capacità dei nodi Localizzare servizi (ospedali, protezione civile)
Modello singolo prodotto a un livello 7! Un livello: costo trasporto a monte ed a valle del sistema trascurabile Esempio: localizzazione di centri di distribuzione V 2 V 1 siti potenziali punti di domanda G (V 1 V 2, A) ipotesi: domanda frazionabile, costi lineari Modello singolo prodotto a un livello! Formulazioni d j, j V 2 livello di domanda in j (dato) q i, i V 1 capacità del sito i (dato) u i, i V 1 livello di attività del sito i (var. decisionale) s ij, i V 1 j V 2 quantità di prodotto inviata da i a j (var. decisionale) c ij, i V 1 j V 2 costo del trasporto tra i e j (dato) f i, i V 1 costo della produzione nel sito i (dato) min cijsij + fu i i i V 1j V2 i V 1 sij ui i V1 j V 2 sij dj j V2 i V 1 ui qi i V1 sij 0 i V 1,j V2 ui 0 i V1 " Cosa rappresentano i vincoli?
Modello singolo prodotto a un livello 9! 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 i F(u i i) 0 ui ui 0 0 y i i V 1 var.binaria (1 sito i attivato, 0 sito i non attivato) la formulazione si modifica fiui i V1 i i V1 ( f y + g u ) i i i ui qi ui yiqi i V1 Modello singolo prodotto a un livello 10! Formulazioni Imporre un numero prefissato p di nodi da introdurre: y i p i V 1 Variazione: individuare tra n possibili località quelle in cui ospitare p centri di smistamento minimizzando la distanza totale " Tutti i nodi in V possono ospitare i centri " Non è importante la capacità produttiva " Non ci sono costi di set-up "... " Come si può formulare?
Modello singolo prodotto a un livello 11! Formulazioni Capacità minima q i- e massima q i+ di un sito: q i- y i u i q i+ y i Costi di esercizio lineari a tratti e concavi f i f i F(u i i) fi ' + g i'ui fi " + g i"ui 0 0 ui u i' ui u i' ui 0 u i Si sostituisce i con due nodi i e i Minimizzando solo uno dei due (quello a costo minore per la u i ottima) sarà selezionato Modello multi prodotto a due livelli 12! Formulazioni K prodotti diversi ma di classe omogenea V 1 insieme impianti produttivi V 2 insieme centri di distribuzione potenziali (di cui attivarne p) V 3 insieme dei punti di domanda p i, i V 1 K massima quantità di realizzabile in i (cap. impianto) d r, r V 3 K livello di domanda di in r non frazionabile q j-, q j+ j V 2 capacità min e max del centro j c ijr, i V 1 j V 2 r V 3 K costo trasporto di da i a r via j f j, g j j V 2 costi fissi e marginali del centro j (dato) z j, j V 2 var. binaria associata alla selezione del centro j y jr, j V 2 r V 3 var. binaria associata alla assegnazione di r a j s ijr, i V 1 j V 2 r V 3 K quantità di inviata da i a r via j
Modello multi prodotto a due livelli min c s ijr ijr i V1j V2r V3 K s ijr j V2r V3 s d r y jr j V2,r V3, K ijr soddisf. domanda i V1 y jr 1 r V3 fornitura non frazionabile j V2 q z d j j r y jr q + z j j V j 2 r V3 K z j p capacità centri j V2 z j B j V2 numero centri da attivare y jr B j V2,r V3 s ijr p i V1, K i capacità impianti 0 i V1, j V2,r V3, K + f z g d j j + j r y jr j V 2 r V3 K 13 14! I problemi di localizzazione possono essere modellati come problemi di centro e di mediana su grafi: Problemi di mediana (minisum) minimizzare la media delle distanze tra gli utenti ed il servizio di afferenza Problemi di centro (minimax) minimizzare la distanza tra utente e servizio nel caso peggiore (per il cliente più lontano)! I problemi di centro sono spesso utili nel settore dei servizi pubblici
15! I punti di servizio possono essere localizzati sui nodi (problemi di vertice) o in un punto qualsiasi degli archi e dei nodi (problemi assoluti)! Definizioni è dato un grafo G(V,E) generico è nota d(v i,v j ) distanza tra due vertici per ogni coppia di vertici è noto w(v i ) peso di un vertice per ogni vertice si indica con d(x,y) la distanza tra due punti generici del grafo 1-mediana (assoluta) di G ogni punto x di G per cui è minima la funzione f(x) 1 V d(x,vi ) w(vi) vi V 1! Teorema (Haimi) In un grafo connesso non orientato G esiste almeno un vertice v che è anche 1-mediana! Definizioni dato un grafo G(V,E) generico e le grandezze prima definite si dice eccentricità di un punto x la distanza pesata di x dal vertice più lontano e(x) max { d(x,vi)w(vi) } v i V 1-centro (assoluto) di G il punto x avente eccentricità minima
17! Definizioni dato un grafo G(V,E) generico e le grandezze prima definite dato un insieme di p punti di G(V,E), X p {x 1, x 2,...,x p } ed un vertice v, si dice distanza di v da X p la quantità d(v,xp ) min x X i p d(v,xi ) " Nota: se v è un cliente si assume che si serva dal punto più vicino p-mediana (assoluta) di G ogni insieme di p punti X p di G per cui è minima la funzione f(xp) d(xp,vi ) w(vi ) v V i 1! Teorema (Haimi) In un grafo non orientato e connesso G(V,E) esiste almeno un insieme di p vertici che costituisce una p-mediana assoluta Difficoltà " Determinare la 1-mediana in grafi connessi e non orientati è semplice " Determinare la p-mediana su un grafo qualunque è un problema NP-hard " Nel caso di alberi è un problema polinomiale
19 Algoritmo per il calcolo della mediana 1. Calcolare la matrice D(G)[d(v i,v j )] delle distanze fra ogni coppia di vertici e moltiplicare ogni colonna j-ma per il peso w(v j ). Sia D (G) la matrice così ottenuta. 2. Sommare gli elementi di ciascuna riga di D (G) e scegliere la riga h-ma corrispondente alla somma minima. Il vertice v h è la mediana di G. 20 Esempio (con pesi dei vertici unitari) Mediana assoluta V V 2 1 5 4 7 5 V 4 3 V 1 5 5 10 V 7 V 9 V V 3 2
21 Esempio (con pesi dei vertici unitari) somma D(G) V1 0 V 2 11 V3 V 4 4 V5 V M V7 V 15 11 0 5 7 15 5 0 12 19 4 7 12 0 11 7 5 9 3 M 10 2 10 21 9 12 17 5 15 15 19 11 M 0 0 1 72 52 53 71 72 97 V 1 V 2 V 3 V 4 V 5 V V 7 V 22 Mediana di un albero Risultati Dato un albero T, con archi e nodi pesati, se si elimina un arco qualsiasi (u, z) si ottengono due sotto alberi T u e T z. T u u z T z
23 Mediana di un albero U insieme dei nodi di T u Z insieme dei nodi di T z La mediana appartiene ad U se e solo se w(u) w(z). Teorema Posto w(u) w(z) la determinazione della mediana di T è equivalente a quella del sotto-albero T u in cui al posto del peso del vertice u si sostituisce la somma w(u)+w(z). 24 Mediana di un albero Algoritmo per il calcolo della mediana di un albero (1) Scegliere un nodo v i di grado 1. (2) Se w(v i ) w(v)/2 allora v i è la mediana assoluta; se w(v i )<w(v)/2 cancellare v i ed incrementare di w(v i ) il peso del vertice v j adiacente a v i. Tornare al passo 1.
25! Definizioni dato un grafo G(V,E) generico e le grandezze prima definite dato un insieme di p punti di G(V,E), X p {x 1, x 2,...,x p } p-centro (assoluto) di G(V,E) ogni insieme di p punti X p di G per cui è minima la funzione Difficoltà r(x p ) max d(xp,vi) w(vi) v V i " Determinare il 1-centro vertice in grafi connessi è semplice " In grafi non orientati connessi il 1-centro si può determinare con un metodo grafico " Determinare il p-centro di un grafo qualunque è un problema NP-hard 2 Algoritmo per il calcolo del centro vertice (1) Calcolare la matrice D(G)[d ij ] delle distanze fra ogni coppia di vertici (v i,v j ). (2) Moltiplicare ogni colonna j-ma per il peso w(v j ). (3) Determinare il massimo su ogni riga ottenendo e(vi) max v j V { d w(v ) } ij j (4) Il centro vertice x è il vertice a cui corrisponde il valore minimo tra gli e(v i ).
27! Esempio Ipotesi: pesi unitari v 4 v 1 v 3 4 v 5 2 2 v 2 f(v1) f(v2) f(v3) f(v4) f(v5) 24 0 2 30 32 20 2 0 2 10 2 0 12 10 12 0 4 2 e(v 1) e(v2 ) e(v3 ) 4 e(v 4) 0 e(v5 ) 10 12 12 1-mediana 1-centri Vertice 2! Il metodo grafico di Haimi per il 1-centro assoluto Si considera un arco alla volta Per ciascun arco (v i,v j ) determina il punto x ij di eccentricità minima Quindi tra i vari punti x ij determina il punto di eccentricità minima in assoluto v h w(v h ) d(v i,v h ) d(v j,v h ) v i t y l(v i,v h ) l-t v j 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 di y in (v i,v h ) rispetto ad ogni nodo v h quindi si determina l inviluppo massimo di tali grafici Il punto x ij di eccentricità minima per l arco corrisponde ad uno dei minimi dell inviluppo massimo
29! Il metodo grafico di Haimi per il 1-centro assoluto Esempi di andamenti della distanza di y in un arco dai vertici d (y,v h ) d (y,v h ) d (y,v h ) v i y v j v v j i y v v j i y Sovrapponendo i grafici si determina l inviluppo massimo ed il suo minimo d (y,v h ) max d(y,vh ) w(vh) V v h v i x ij y v j 30! Tecniche euristiche per la determinazione della p- mediana (ottimi locali) Approccio 1 1. Scegliere arbitrariamente p vertici u 1,...,u p 2. Assegnare ogni altro vertice ad uno dei p vertici scelti in base alla minima distanza. Sia V i l insieme dei vertici assegnati ad u i. Calcolare la somma S delle distanze 3. Per ogni V i cercarelamediana z i e sostituirla a u i.calcolarela nuova somma S delle distanze. Se S <S tornare al passo 2, altrimenti l algoritmo termina. Approccio 2 Scegliere arbitrariamente p vertici quindi operare degli scambi (un nuovo vertice sostituisce uno tra quelli presenti nell insieme selezionato) in modo che la funzione obiettivo abbia il massimo decremento
Localizzazione: modelli di copertura 31! Si utilizza il modello del Set-Covering Si deve determinare in quali nodi attivare un servizio in modo che gli utenti lo ricevano entro un tempo massimo T G(V 1 V 2, A), V 1 siti potenziali, V 2 siti utenza, t ij tempo (minimo) tra i e j f j, j V 1 costo di attivazione di j p i, i V 2 penalità mancato servizio di i A[a ij ] matrice d incidenza utenti-siti: a ij 1 se t ij T e a ij 0 se t ij >T V 1 siti potenziali j t ij Ta ij 1 i t j >T a j 0 V 2 punti di domanda Localizzazione: modelli di copertura 32! Si utilizza il modello del Set-Covering Variabili decisionali: # y j, j V 1 vettore d incidenza, attivazione siti y j B # z i, i V 2 cliente non servito z j B (slac binaria) min fjyj + pizi j V 1 i V 2 aijyj + zi 1 j V 1 yj B j V1 zi B i V2 i V2 E un problema di set-covering (NP-hard)
Localizzazione: modelli di copertura 33! Si utilizza il modello del Set-Covering Se i costi di attivazione dei siti fossero uguali tra loro ci si può porre il problema di stabilire il numero minimo di siti da attivare per servire 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 sufficientemente grande (big-m) min Myj + tijxij j V 1 i V 2 j V1 aijxij 1 i V2 j V 1 xij yj i V2,j V1 yj B j V1 xij B i V2,j V1