27.10.2014 Views

Problemi di Localizzazione - Massimo Paolucci

Problemi di Localizzazione - Massimo Paolucci

Problemi di Localizzazione - Massimo Paolucci

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Modelli decisionali su grafi<br />

-<br />

<strong>Problemi</strong> <strong>di</strong> <strong>Localizzazione</strong><br />

<strong>Massimo</strong> <strong>Paolucci</strong><br />

(paolucci@<strong>di</strong>st.unige.it)<br />

DIST – Università <strong>di</strong> Genova<br />

Location Problems: modelli ed applicazioni<br />

2<br />

Decisioni a me<strong>di</strong>o e lungo termine (pianificazione)<br />

Caratteristiche dei modelli:<br />

• Orizzonte temporale (mono-periodo, multi-periodo)<br />

• Omogeneità dei flussi (single-commo<strong>di</strong>ty, multi-commo<strong>di</strong>ty)<br />

• Livelli dei flussi (singolo livello, due livelli)<br />

Imprese logistiche e <strong>di</strong> servizi:<br />

• Localizzare no<strong>di</strong> logistici (centri <strong>di</strong> produzione, magazzini, centri <strong>di</strong><br />

<strong>di</strong>stribuzione)<br />

• Dimensionare i flussi logistici (trasporti)<br />

• Dimensionare le capacità dei no<strong>di</strong><br />

• Localizzare servizi (ospedali, protezione civile)


Modello singolo prodotto a un livello<br />

3<br />

Un livello: costo trasporto a monte ed a valle del sistema<br />

trascurabile<br />

• Esempio: localizzazione <strong>di</strong> centri <strong>di</strong> <strong>di</strong>stribuzione<br />

V 2<br />

V 1<br />

siti potenziali<br />

punti <strong>di</strong> domanda<br />

• G = (V 1 ∪V 2 , A)<br />

• ipotesi: domanda frazionabile, costi lineari<br />

Modello singolo prodotto a un livello<br />

4<br />

Formulazioni<br />

• d j , j∈V 2 livello <strong>di</strong> domanda in j<br />

(dato)<br />

• q i , i∈V 1 capacità del sito i (dato)<br />

• u i , i∈V 1 livello <strong>di</strong> attività del sito i<br />

(var. decisionale)<br />

• s ij , i∈V 1 j∈V 2 quantità <strong>di</strong> prodotto<br />

inviata da i a j (var. decisionale)<br />

• c ij , i∈V 1 j∈V 2 costo del trasporto<br />

tra i e j (dato)<br />

• f i , i∈V 1 costo della produzione nel<br />

sito i (dato)<br />

∑<br />

∑<br />

∑<br />

min cijsij<br />

+ fu i i<br />

i∈V<br />

1j∈V2<br />

i∈V<br />

1<br />

∑ sij<br />

= ui<br />

i∈V1<br />

j∈V<br />

2<br />

∑ sij<br />

= dj<br />

j∈V2<br />

i∈V<br />

1<br />

ui<br />

≤ qi<br />

i∈V1<br />

sij<br />

≥ 0 i∈V 1,j<br />

∈V2<br />

ui<br />

≥ 0 i∈V1<br />

• Cosa rappresentano i vincoli?


Modello singolo prodotto a un livello<br />

5<br />

Formulazioni<br />

• Costo della produzione con set-up (attivazione)<br />

f i set-up , g i costo marginale per la produzione nel sito i:<br />

⎧fi<br />

+ gu i i<br />

F(u i i)<br />

= ⎨<br />

⎩0<br />

ui<br />

ui<br />

≥ 0<br />

= 0<br />

• y i i∈V 1 var.binaria (1= sito i attivato, 0 = sito i non attivato)<br />

• la formulazione si mo<strong>di</strong>fica<br />

∑ fiui<br />

i∈V1<br />

→<br />

∑<br />

i<br />

i∈V1<br />

( f y + g u )<br />

i<br />

i<br />

i<br />

ui<br />

≤<br />

qi<br />

→<br />

ui<br />

≤<br />

yiqi<br />

i ∈ V1<br />

Modello singolo prodotto a un livello<br />

6<br />

Formulazioni<br />

• Imporre un numero prefissato p <strong>di</strong> no<strong>di</strong> da introdurre:<br />

∑ y i = p<br />

i∈V 1<br />

• Variazione: in<strong>di</strong>viduare tra n possibili località quelle in cui ospitare p<br />

centri <strong>di</strong> smistamento minimizzando la <strong>di</strong>stanza totale<br />

• Tutti i no<strong>di</strong> in V possono ospitare i centri<br />

• Non è importante la capacità produttiva<br />

• Non ci sono costi <strong>di</strong> set-up<br />

• ...<br />

• Come si può formulare?


Modello singolo prodotto a un livello<br />

7<br />

Formulazioni<br />

• Capacità minima q i- e massima q i+ <strong>di</strong> un sito: q i- y i ≤ u i ≤ q i+ y i<br />

• Costi <strong>di</strong> esercizio lineari a tratti e concavi<br />

f i ”<br />

f i ’<br />

⎧fi<br />

' + g i'ui<br />

⎪<br />

F(u i i)<br />

= ⎨ fi<br />

" + g i"ui<br />

⎪ ⎩ 0<br />

u’ i<br />

0 ≤ ui<br />

≤ u i'<br />

ui<br />

≥ u i'<br />

ui<br />

= 0<br />

Si sostituisce i con due no<strong>di</strong> i’ e i”<br />

Minimizzando solo uno dei due (quello a costo minore per la u i<br />

ottima) sarà selezionato<br />

Modello multi prodotto a due livelli<br />

8<br />

Formulazioni<br />

• K prodotti <strong>di</strong>versi ma <strong>di</strong> classe omogenea<br />

• V 1 insieme impianti produttivi<br />

• V 2 insieme centri <strong>di</strong> <strong>di</strong>stribuzione potenziali (<strong>di</strong> cui attivarne p)<br />

• V 3 insieme dei punti <strong>di</strong> domanda<br />

• p k i, i∈V 1 k∈K massima quantità <strong>di</strong> k realizzabile in i (cap. impianto)<br />

• d k r, r∈V 3 k∈K livello <strong>di</strong> domanda <strong>di</strong> k in r non frazionabile<br />

• q j- , q j+ j∈V 2 capacità min e max del centro j<br />

• c k ijr, i∈V 1 j∈V 2 r∈V 3 k∈K costo trasporto <strong>di</strong> k da i a r via j<br />

• f j , g j j∈V 2 costi fissi e marginali del centro j (dato)<br />

• z j , j∈V 2 var. binaria associata alla selezione del centro j<br />

• y jr , j∈V 2 r∈V 3 var. binaria associata alla assegnazione <strong>di</strong> r a j<br />

• s k ijr, i∈V 1 j∈V 2 r∈V 3 k∈K quantità <strong>di</strong> k inviata da i a r via j


Modello multi prodotto a due livelli<br />

min<br />

c<br />

k<br />

s<br />

k<br />

∑ ∑ ∑ ∑ ijr ijr<br />

i∈V1j∈V2r∈V3k<br />

∈K<br />

s<br />

k<br />

∑ ∑ ijr<br />

j∈V2r∈V3<br />

s<br />

k<br />

d<br />

k<br />

∑ = r y jr j ∈ V2,r<br />

∈ V3,k<br />

∈ K<br />

ijr<br />

sod<strong>di</strong>sf. domanda<br />

i∈V1<br />

∑ y jr = 1 r ∈ V3<br />

fornitura non frazionabile<br />

j∈V2<br />

q<br />

−<br />

z<br />

d<br />

k<br />

j j ≤<br />

r y jr ≤ q<br />

+<br />

∑ ∑<br />

z j j ∈ V<br />

j<br />

2<br />

r∈V3<br />

k∈K<br />

∑ z j = p<br />

capacità centri<br />

j∈V2<br />

z j ∈ B j ∈ V2<br />

numero centri da attivare<br />

y jr ∈ B j ∈ V2,r<br />

∈ V3<br />

s<br />

k<br />

ijr<br />

≤ p<br />

k<br />

i ∈ V1,k<br />

∈ K<br />

i<br />

capacità impianti<br />

≥ 0 i ∈ V1,<br />

j ∈ V2,r<br />

∈ V3,k<br />

∈ K<br />

⎛<br />

⎞<br />

+ f z g d<br />

k<br />

∑ ⎜<br />

j j + j ∑ ∑ r y ⎟<br />

jr<br />

j∈V<br />

⎜<br />

2 r V3k<br />

K<br />

⎟<br />

⎝ ∈ ∈ ⎠<br />

9<br />

<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

10<br />

I problemi <strong>di</strong> localizzazione possono essere modellati<br />

come problemi <strong>di</strong> centro e <strong>di</strong> me<strong>di</strong>ana su grafi:<br />

• <strong>Problemi</strong> <strong>di</strong> me<strong>di</strong>ana (minisum)<br />

minimizzare la me<strong>di</strong>a delle <strong>di</strong>stanze tra gli utenti ed il servizio<br />

<strong>di</strong> afferenza<br />

• <strong>Problemi</strong> <strong>di</strong> centro (minimax)<br />

minimizzare la <strong>di</strong>stanza tra utente e servizio nel caso<br />

peggiore (per il cliente più lontano)<br />

I problemi <strong>di</strong> centro sono spesso utili nel settore dei servizi<br />

pubblici


<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

11<br />

I punti <strong>di</strong> servizio possono essere localizzati sui no<strong>di</strong><br />

(problemi <strong>di</strong> vertice) o in un punto qualsiasi degli archi e<br />

dei no<strong>di</strong> (problemi assoluti)<br />

Definizioni<br />

• è dato un grafo G=(V,E) generico<br />

• è nota d(v i ,v j ) <strong>di</strong>stanza tra due vertici per ogni coppia <strong>di</strong> vertici<br />

• è noto w(v i ) peso <strong>di</strong> un vertice per ogni vertice<br />

• si in<strong>di</strong>ca con d(x,y) la <strong>di</strong>stanza tra due punti generici del grafo<br />

1-me<strong>di</strong>ana (assoluta) <strong>di</strong> G ogni punto x <strong>di</strong> G per cui è minima la<br />

funzione<br />

f(x) =<br />

1<br />

V<br />

∑d(x,vi<br />

) ⋅ w(vi)<br />

vi∈V<br />

<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

12<br />

Teorema (Hakimi)<br />

In un grafo connesso non orientato G esiste almeno un<br />

vertice v che è anche 1-me<strong>di</strong>ana<br />

Definizioni<br />

• dato un grafo G=(V,E) generico e le grandezze prima definite si<br />

<strong>di</strong>ce<br />

eccentricità <strong>di</strong> un punto x la <strong>di</strong>stanza pesata <strong>di</strong> x dal vertice<br />

più lontano<br />

e(x)<br />

= max<br />

v i ∈V<br />

{ d(x,v )w(v ) }<br />

1-centro (assoluto) <strong>di</strong> G il punto x avente eccentricità minima<br />

i<br />

i


<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

13<br />

Definizioni<br />

• dato un grafo G=(V,E) generico e le grandezze prima definite<br />

• dato un insieme <strong>di</strong> p punti <strong>di</strong> G=(V,E), X p ={x 1 , x 2 ,...,x p } ed un vertice<br />

v, si <strong>di</strong>ce <strong>di</strong>stanza <strong>di</strong> v da X p la quantità<br />

d(v,Xp<br />

) = min<br />

xi∈X<br />

d(v,xi<br />

)<br />

• Nota: se v è un cliente si assume che si serva dal punto più vicino<br />

p<br />

p-me<strong>di</strong>ana (assoluta) <strong>di</strong> G ogni insieme <strong>di</strong> p punti X p<br />

<strong>di</strong> G per<br />

cui è minima la funzione<br />

f(Xp)<br />

= ∑ d(Xp,vi<br />

) ⋅ w(vi<br />

)<br />

v ∈V<br />

i<br />

<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

14<br />

Teorema (Hakimi)<br />

In un grafo non orientato e connesso G=(V,E) esiste almeno<br />

un insieme <strong>di</strong> p vertici che costituisce una p-me<strong>di</strong>ana<br />

assoluta<br />

• Difficoltà<br />

• Determinare la 1-me<strong>di</strong>ana in grafi connessi e non orientati è<br />

semplice (si sceglie il minimo delle somme pesate delle righe<br />

della matrice delle <strong>di</strong>stanze tra ogni coppia <strong>di</strong> no<strong>di</strong>)<br />

• Determinare la p-me<strong>di</strong>ana su un grafo qualunque è un<br />

problema NP-hard<br />

• Nel caso <strong>di</strong> alberi è un problema polinomiale


<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

15<br />

Definizioni<br />

• dato un grafo G=(V,E) generico e le grandezze prima definite<br />

• dato un insieme <strong>di</strong> p punti <strong>di</strong> G=(V,E), X p ={x 1 , x 2 ,...,x p }<br />

p-centro (assoluto) <strong>di</strong> G=(V,E) ogni insieme <strong>di</strong> p punti X p <strong>di</strong> G<br />

per cui è minima la funzione<br />

• Difficoltà<br />

r(Xp<br />

) = max d(Xp,vi)<br />

⋅ w(vi)<br />

v ∈V<br />

i<br />

• Determinare il 1-centro vertice in grafi connessi è semplice (si<br />

sceglie il minimo del massimo delle <strong>di</strong>stanze pesate estratto da<br />

ogni riga della matrice delle <strong>di</strong>stanze tra ogni coppia <strong>di</strong> no<strong>di</strong>)<br />

• In grafi non orientati connessi il 1-centro si può determinare con<br />

un metodo grafico<br />

• Determinare il p-centro <strong>di</strong> un grafo qualunque è un problema<br />

NP-hard<br />

<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

16<br />

Esempio<br />

• Ipotesi: pesi unitari<br />

v 4<br />

6<br />

4<br />

v 5<br />

v 3<br />

v 1 8<br />

2 2<br />

6 v 2<br />

f(v1)<br />

=<br />

f(v2)<br />

=<br />

f(v3)<br />

=<br />

f(v4)<br />

=<br />

f(v5)<br />

=<br />

24 ⎡0<br />

26<br />

⎢<br />

⎢<br />

8<br />

30⇐⎢8<br />

⎢<br />

32 ⎢6<br />

20 ⎢<br />

⎣2<br />

8<br />

0<br />

2<br />

10<br />

6<br />

8<br />

2<br />

0<br />

12<br />

8<br />

6<br />

10<br />

12<br />

0<br />

4<br />

2⎤<br />

e(v 1)<br />

=<br />

6<br />

⎥<br />

e(v2<br />

) =<br />

⎥<br />

8⎥<br />

⇒e(v3<br />

) =<br />

⎥<br />

4⎥<br />

e(v 4)<br />

=<br />

0⎥<br />

⎦ e(v5<br />

) =<br />

8<br />

10<br />

12<br />

12<br />

8<br />

1-me<strong>di</strong>ana<br />

1-centri Vertice


<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

17<br />

Il metodo grafico <strong>di</strong> Hakimi per il 1-centro assoluto<br />

• Si considera un arco alla volta<br />

• Per ciascun arco (v i ,v j ) determina il punto x ij <strong>di</strong> eccentricità minima<br />

• Quin<strong>di</strong> tra i vari punti x ij determina il punto <strong>di</strong> eccentricità minima in<br />

assoluto<br />

v h w(v h )<br />

d(v i ,v h ) d(v j ,v h )<br />

v i<br />

t<br />

y<br />

l(v i ,v j )<br />

l-t<br />

v j<br />

d(y,v h ) = min { d(v i ,v h ) + t, d(v j ,v h ) + l(v i ,v j ) - t }<br />

• Si tracciano gli andamenti delle d(y,v h )w(v h ) al variare <strong>di</strong> y in (v i ,v h )<br />

rispetto ad ogni nodo v h quin<strong>di</strong> si determina l’inviluppo massimo <strong>di</strong><br />

tali grafici<br />

• Il punto x ij <strong>di</strong> eccentricità minima per l’arco corrisponde ad uno dei<br />

minimi dell’inviluppo massimo<br />

<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

18<br />

Il metodo grafico <strong>di</strong> Hakimi per il 1-centro assoluto<br />

• Esempi <strong>di</strong> andamenti della <strong>di</strong>stanza <strong>di</strong> y in un arco dai vertici<br />

d (y,v h ) d (y,v h ) d (y,v h )<br />

v i<br />

y v j v v j<br />

i y v v j<br />

i y<br />

• Sovrapponendo i grafici si determina l’inviluppo massimo ed il suo<br />

minimo<br />

d (y,v h )<br />

max d(y,vh<br />

) ⋅ w(vh)<br />

∈V<br />

v h<br />

v i<br />

x ij<br />

y<br />

v j


<strong>Localizzazione</strong>: centri e me<strong>di</strong>ane<br />

19<br />

Tecniche euristiche per la determinazione della p-<br />

me<strong>di</strong>ana (ottimi locali)<br />

Approccio 1<br />

1. Scegliere arbitrariamente p vertici u 1 ,...,u p<br />

2. Assegnare ogni altro vertice ad uno dei p vertici scelti in base alla<br />

minima <strong>di</strong>stanza. Sia V i l’insieme dei vertici assegnati ad u i .<br />

Calcolare la somma S delle <strong>di</strong>stanze<br />

3. Per ogni V i cercarelame<strong>di</strong>ana z i e sostituirla a u i .Calcolarela<br />

nuova somma S’ delle <strong>di</strong>stanze. Se S’T<br />

V 1<br />

siti potenziali<br />

j<br />

t ij ≤Ta ij =1 i<br />

t kj >T a kj =0<br />

k<br />

V 2<br />

punti <strong>di</strong> domanda


<strong>Localizzazione</strong>: modelli <strong>di</strong> copertura<br />

21<br />

Si utilizza il modello del Set-Covering<br />

• Variabili decisionali:<br />

‣ y j , j∈V 1 vettore d’incidenza, attivazione siti y j ∈B<br />

‣ z i , i∈V 2 cliente non servito z j ∈B (slack binaria)<br />

min ∑ fjyj<br />

+ ∑ pizi<br />

j∈V<br />

1 i∈V<br />

2<br />

∑ aijyj<br />

+ zi<br />

≥ 1<br />

j∈V<br />

1<br />

yj<br />

∈B<br />

j∈<br />

V1<br />

zi<br />

∈B<br />

i∈<br />

V2<br />

i∈<br />

V2<br />

• E’ un problema <strong>di</strong> set-covering (NP-hard)<br />

<strong>Localizzazione</strong>: modelli <strong>di</strong> copertura<br />

22<br />

Si utilizza il modello del Set-Covering<br />

• Se i costi <strong>di</strong> attivazione dei siti fossero uguali tra loro ci si può<br />

porre il problema <strong>di</strong> stabilire il numero minimo <strong>di</strong> siti da attivare per<br />

servire i clienti nel tempo minimo complessivo<br />

• x ij , i∈V 2 , j∈V 1 x ij ∈B cliente i servito dal sito j<br />

• M costante sufficientemente grande (big-M)<br />

min ∑ Myj<br />

+ ∑ ∑ tijxij<br />

j∈V<br />

1 i∈V<br />

2 j∈V1<br />

∑ aijxij<br />

≥ 1 i∈<br />

V2<br />

j∈V<br />

1<br />

xij<br />

≤ yj<br />

i∈<br />

V2,j<br />

∈ V1<br />

yj<br />

∈B<br />

j∈<br />

V1<br />

xij<br />

∈B<br />

i∈<br />

V2,j<br />

∈ V1

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

Saved successfully!

Ooh no, something went wrong!