Problemi di Localizzazione - Massimo Paolucci
Problemi di Localizzazione - Massimo Paolucci
Problemi di Localizzazione - Massimo Paolucci
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