1 - Descrizione: Descrizione: Descrizione: Descrizione - Università ...
1 - Descrizione: Descrizione: Descrizione: Descrizione - Università ...
1 - Descrizione: Descrizione: Descrizione: Descrizione - Università ...
Trasformi i suoi PDF in rivista online e aumenti il suo fatturato!
Ottimizzi le sue riviste online per SEO, utilizza backlink potenti e contenuti multimediali per aumentare la sua visibilità e il suo fatturato.
<strong>Università</strong> degli Studi di Modena e Reggio Emilia<br />
Facoltà di Ingegneria di Reggio Emilia<br />
Corso di Laurea Specialistica in Ingegneria Gestionale<br />
Un approccio Matheuristic per il<br />
caricamento e l’instradamento di<br />
una flotta di bisarche<br />
M. Iori, S. Falavigna, M. Dell’Amico
Argomenti trattati<br />
• Introduzione<br />
• <strong>Descrizione</strong> del problema<br />
• Iterated Local Search<br />
• Risultati computazionali<br />
• Conclusioni
Il Gruppo Mercurio S.p.A.<br />
Il Gruppo Mercurio è leader in Europa nel trasporto di veicoli
Il Gruppo Mercurio S.p.A.<br />
Il Gruppo Mercurio è leader in Europa nel trasporto di veicoli<br />
Principali attività:<br />
• Ricezione dei veicoli solitamente via<br />
treno<br />
• Stoccaggio dei veicoli nei Parchi<br />
• Consegna ai concessionari
I Parchi Mercurio<br />
• Piazzali adibiti allo stoccaggio dei veicoli per un<br />
periodo variabile da pochi giorni fino a qualche mese
Sette Parchi in Italia<br />
• San Polo di Torrile (PR)<br />
• Bologna<br />
• Livorno<br />
• Civitavecchia (RM)<br />
•Salerno<br />
•Palermo<br />
• Catania
Come si trasportano i veicoli?<br />
• La capacità di carico è variabile e dipende dalla tipologia<br />
• Per aumentare la capacità:<br />
– Piccoli pianalini che permettono la rotazione dei veicoli<br />
– Pianali superiori mobili<br />
– Estensioni anteriori e posteriori
La flotta Mercurio<br />
Mercurio Padroncini<br />
Forbice 111 113<br />
Pesante 36 ---<br />
Motrice 5 12<br />
Centina 5 ---<br />
• Forbice: indicata per il trasporto di automobili. Composta da<br />
motrice e rimorchio
La flotta Mercurio<br />
Mercurio Padroncini<br />
Forbice 111 113<br />
Pesante 36 ---<br />
Motrice 5 12<br />
Centina 5 ---<br />
• Pesante: indicata per il trasporto dei camion. Composta da<br />
motrice e rimorchio
La flotta Mercurio<br />
Mercurio Padroncini<br />
Forbice 111 113<br />
Pesante 36 ---<br />
Motrice 5 12<br />
Centina 5 ---<br />
• Motrice: indicata per il trasporto di automobili. Ha una<br />
capacità di carico ridotta
La flotta Mercurio<br />
Mercurio Padroncini<br />
Forbice 111 113<br />
Pesante 36 ---<br />
Motrice 5 12<br />
Centina 5 ---<br />
• Centina: indicata per trasporti speciali. Dotata di copertura<br />
per proteggere i veicoli
Il problema in sintesi<br />
Data una flotta eterogenea di veicoli basati su di un deposito<br />
centrale e un insieme di concessionari che richiedono un determinato<br />
insieme di veicoli, il problema richiede di assegnare i veicoli alle<br />
bisarche e di instradare tali bisarche attraverso la rete stradale al fine di<br />
servire i concessionari con costo minimo. Il problema ammette split<br />
delivery e i carichi devono rispettare il vincolo LIFO.
Il trasporto<br />
• Il trasporto effettuato con bisarche si realizza:<br />
–Da Punti di prelievo<br />
Parchi Mercurio oppure stabilimenti del Gruppo Fiat<br />
–A Punti di consegna<br />
Concessionari oppure Parchi Mercurio<br />
• 1500/2000 veicoli trasportati ogni giorno
Caricamento<br />
• Caricamento: stabilire quanti e quali veicoli caricare<br />
su ogni bisarca disponibile<br />
• Elenco veicoli sbloccati<br />
• Per ogni veicolo è noto:<br />
– Data di sbloccaggio<br />
– Data di consegna<br />
– Punto di prelievo<br />
– Punto di consegna<br />
• Numero e tipologia delle<br />
bisarche disponibili<br />
• Liste dei carichi<br />
relative ai diversi<br />
punti di prelievo<br />
– Impiego massimo<br />
della capacità delle<br />
bisarche<br />
– Attenzione alle<br />
anzianità
Instradamento<br />
• Instradamento: determinare il percorso effettuato<br />
dalle bisarche e il loro riposizionamento<br />
Bisarche<br />
disponibili in un<br />
determinato<br />
punto di prelievo<br />
• È necessario stabilire:<br />
Assegnazione<br />
– L’ordine con cui i concessionari sono visitati<br />
– Il punto di riposizionamento<br />
Lista dei carichi<br />
relativa al punto di<br />
prelievo considerato
Ipotesi applicate<br />
• Considerato solo il Parco di San Polo di Torrile<br />
• Considerato l’intero mese di luglio 2009<br />
• Pianificazione delle spedizioni<br />
– Giornaliera<br />
– Non considerati i riposizionamenti<br />
• Mezzi considerati: forbice e motrice<br />
Media Totale %<br />
Forbice 90 2070 91%<br />
Motrice 7 171 7%<br />
Pesante 2 36 2%<br />
Centina 0 6 0%<br />
Totale 99 2283 100%
Sezione 2<br />
• Introduzione<br />
• <strong>Descrizione</strong> del problema
Input del problema<br />
• un grafo completo G = (N,E)<br />
• un insieme N = {0, …, n}di vertici<br />
il vertice 0 corrisponde al deposito<br />
l’insieme {1, …, n} corrisponde all’insieme dei concessionari<br />
• un costo c ij associato all’arco (i,j)<br />
• una matrice simmetrica che soddisfa la disuguaglianza<br />
trinagolare<br />
• una domanda per ogni concessionario i che consiste in<br />
un insieme di m i veicoli
Input del problema: bisarche<br />
E’ data un flotta eterogenea<br />
di bisarche:<br />
• T tipi differenti di bisarca<br />
• Ogni tipo di bisarca t ha:<br />
un numero Kt di bisarche disponibili<br />
Pt pianali di carico<br />
una capacità di carico Wt (in kg)
Input del problema: veicoli<br />
E’ dato un insieme di veicoli:<br />
• Ogni veicolo k richiesto dal concessionario i:<br />
Peso w ik, lunghezza l ik e altezza h ik<br />
Una forma particolare
Auto-Carrier Transportation Problem<br />
Si definisce una route con una tripletta (R, S, t):<br />
• R è una sequenza di concessionari da visitare<br />
• S i è l’insieme dei veicoli da spedire al concessionario i<br />
• t è la tipologia di bisarca<br />
Il problema (A-CTP) richiede la determinazione di un<br />
insieme di route tali che:<br />
• ogni route abbia un carico ammissibile<br />
• la richiesta dei concessionari sia completamente soddisfatta<br />
• al massimo Kt bisarche siano utilizzate<br />
• la distanza percorsa sia minima
Controllo dell’ammissibilità – Step I<br />
Per determinare l’ammissibilità di una route è proposto<br />
un algoritmo in 3 step che restituisce:<br />
• 1 il carico assegnato alla route è ammissibile<br />
• 0 altrimenti<br />
Step 1<br />
Semplice controllo basato sul peso dei veicoli:<br />
• se la somma dei pesi dei veicoli è più alta della capacità di<br />
una bisarca il carico non è ammissibile
Controllo dell’ammissibilità – Step II<br />
E’ necessario definire:<br />
• omogeneo, un carico che coinvolge modelli identici<br />
• eterogeneo, un carico che coinvolge modelli differenti<br />
• per ogni veicolo k, richiesto dal concessionario i, che deve essere<br />
caricato su una bisarca del tipo t, l’azienda ha fornito:<br />
indice di carico d ikt: numero massimo di modelli identici che possono<br />
essere caricati su di una bisarca
Controllo dell’ammissibilità – Step II<br />
Step 2<br />
Il controllo è basato sugli indici di carico:<br />
if (il carico è omogeneo)<br />
if (la somma degli indici di carico > 1) non ammissibile<br />
else il carico è ammissibile<br />
else (il carico è eterogeneo)<br />
if (la somma degli indici di carico > 1.2) non ammissibile<br />
else è necessario risolvere un modello ILP
I pianali delle bisarche<br />
Ogni pianale di carico p appartenente alla bisarca di tipo t:<br />
• ha una lunghezza L pt e una possibile estensione massima A pt<br />
• ha un pianale h(p) posto a fianco orizzontalmente<br />
• ha un pianale v(p) posto verticalmente al di sotto/sopra<br />
Matrice delle precedenze B tra i pianali<br />
• b pq = 1 se il pianale p precede q<br />
• b pq = 0 altrimenti
Lunghezze dei veicoli<br />
Ogni veicolo k:<br />
• appartiene ad una classe c(k) a seconda della altezza, lunghezza<br />
e forma
Lunghezze dei veicoli<br />
Ogni veicolo k:<br />
• quando caricato sul pianale p della bisarca t ha una lunghezza<br />
equivalente
Lunghezze dei veicoli<br />
Ogni veicolo k:<br />
• appartiene ad una classe c(k) a seconda della altezza, lunghezza<br />
e forma<br />
• quando caricato sul pianale p della bisarca t ha una lunghezza<br />
equivalente<br />
• quando caricato sul pianale p della bisarca t ha una impatto<br />
verticale equivalente
Controllo dell’ammissibilità – Step III (ILP)
Controllo dell’ammissibilità – Step III (B&B)<br />
• I veicoli sono caricati secondo l’ordine di visita dei<br />
concessionari<br />
• Ad ogni livello k, è creato un nodo assegnando il veicolo k<br />
ad un pianale<br />
• L’albero è esplorato con la tecnica depth-first<br />
• 3 differenti versioni del Branch-and-Bound:<br />
1) senza alcun lower bound, enumerazione completa<br />
2) lower bound aggregato su tutti i concessionari<br />
3) lower bound calcolato per ogni concessionario
Sezione 3<br />
• Introduzione<br />
• <strong>Descrizione</strong> del problema<br />
• Iterated Local Search
ILS – Pseudocodice<br />
input: un’istanza I dell’ACT-P<br />
output: miglior soluzione trovata<br />
x = Randomized Closest Neighbor(I)<br />
x best = x<br />
repeat<br />
x’ = Perturbation Heuristic(x)<br />
x’’ = Local Search(x’)<br />
if f(x’’) < f(x best) then<br />
end-if<br />
x = xbest until time limit<br />
return xbest x best = x’’
Randomized Closest Neighbor<br />
• Costruisce una prima soluzione ammissibile<br />
• Riceve in input<br />
– Ordini di consegna<br />
– Numero di bisarche disponibili<br />
– Matrice delle distanze<br />
• Considerando una bisarca alla volta:<br />
– Assegna casualmente il primo concessionario alla route<br />
– Si basa sul criterio closest neighbor<br />
• Reitera finché gli ordini da assegnare oppure le bisarche<br />
disponibili sono esaurite
Local Search<br />
• Ottimizza la soluzione ottenuta dall’euristico iniziale<br />
• Sono state implementate 8 ricerche locali:<br />
• Move 1-0<br />
•Swap 1-1 concessionari<br />
•Swap 2-1<br />
•Swap 1-1<br />
modelli uguali stesso concessionario<br />
•Swap 2-1<br />
• Customer relocation<br />
• Auto-carrier interchange<br />
• Route addition
Move 1-0 – Concessionari<br />
Situazione<br />
iniziale<br />
Risparmioj<br />
1<br />
Bisarca<br />
j<br />
4<br />
= c(<br />
i −1,<br />
i)<br />
+<br />
+ c(<br />
i,<br />
i + 1)<br />
7<br />
Bisarca<br />
j2<br />
9<br />
Risparmioj2<br />
= c(<br />
i2<br />
−1,<br />
i2)<br />
+<br />
+ c(<br />
i,<br />
i2<br />
+ 1)<br />
2<br />
3<br />
8<br />
i=3<br />
i2=2<br />
Situazione<br />
finale<br />
1<br />
Bisarca<br />
j<br />
4<br />
CostoAggj = c(<br />
i −1,<br />
i + 1)<br />
7<br />
Bisarca<br />
j2<br />
9<br />
CostoAggj 2 = c(<br />
i2<br />
−1,<br />
i)<br />
3<br />
2<br />
8<br />
Se l’inserimento è<br />
vantaggioso:<br />
CostoAggj + CostoAggj2<br />
<<br />
Risparmioj + Risparmioj2<br />
Situazione finale iniziale<br />
Bisarca j<br />
1 2 3 4<br />
i2=2<br />
Bisarca j2 7 8 9<br />
i=3
Swap 1-1 – Concessionari<br />
Situazione<br />
iniziale<br />
1<br />
Bisarca<br />
j<br />
4<br />
2<br />
3<br />
Risparmioj = c(<br />
i −1,<br />
i)<br />
+ CostoAggj = c(<br />
i − 1,<br />
i2)<br />
+<br />
+ c(i,i + 1)<br />
+ c(<br />
i2,<br />
i + 1)<br />
7<br />
Bisarca<br />
j2<br />
9<br />
8<br />
i=3<br />
i2=2<br />
Risparmioj2<br />
= c(<br />
i2<br />
−1,<br />
i2)<br />
+<br />
+ c(<br />
i2,<br />
i2<br />
+ 1)<br />
CostoAggj<br />
Situazione<br />
finale<br />
1<br />
Bisarca<br />
j<br />
4<br />
7<br />
Bisarca<br />
j2<br />
9<br />
2<br />
8<br />
3<br />
2 = c(<br />
i2<br />
− 1,<br />
i)<br />
+<br />
+ c(<br />
i,<br />
i2<br />
+ 1)<br />
Se l’inserimento è<br />
vantaggioso:<br />
CostoAggj + CostoAggj2<br />
<<br />
Risparmioj + Risparmioj2<br />
Situazione finale iniziale<br />
Bisarca j<br />
1 2 3 4<br />
i2=2<br />
Bisarca j2 7 8 9<br />
i=3
Swap 2-1 – Concessionari<br />
Situazione<br />
iniziale<br />
1<br />
Bisarca<br />
j<br />
4<br />
7<br />
Bisarca<br />
j2<br />
9<br />
2<br />
3<br />
8<br />
i=2<br />
i3=3<br />
Risparmioj = c(<br />
i −1,<br />
i)<br />
+<br />
+ c(i,i 3 ) + c(i3,i3<br />
+ 1)<br />
i2=2<br />
Risparmioj2<br />
= c(<br />
i2<br />
−1,<br />
i2)<br />
+<br />
+ c(<br />
i2,<br />
i2<br />
+ 1)<br />
CostoAggj<br />
Situazione<br />
finale<br />
1<br />
Bisarca<br />
j<br />
4<br />
7<br />
Bisarca<br />
j2<br />
9<br />
2<br />
3<br />
8<br />
= c(<br />
i − 1,<br />
i2)<br />
+<br />
+ c(<br />
i2,<br />
i3<br />
+ 1)<br />
CostoAggj 2 = c(<br />
i2<br />
− 1,<br />
i)<br />
+<br />
+ c(<br />
i,<br />
i3)<br />
+ c(<br />
i3,<br />
i2<br />
+ 1)<br />
Se l’inserimento è<br />
vantaggioso:<br />
CostoAggj + CostoAggj2<br />
<<br />
Risparmioj + Risparmioj2<br />
Situazione finale iniziale<br />
Bisarca j<br />
i=2<br />
1 2 3 4<br />
i2=2<br />
Bisarca j2 7 8 9<br />
i3=3
Perturbation Heuristic<br />
E’ stata implementata una procedura formata da 4 step<br />
per perturbare la soluzione:<br />
1. selezione casuale di un<br />
concessionario i<br />
2. selezione di tutti i<br />
concessionari situati entro<br />
un certo raggio da i<br />
3. distruzione completa di tutte<br />
le route in cui tali<br />
concessionari compaiono<br />
4. ricostruzione della soluzione<br />
con il Randomized Closest<br />
Neighbor
Step 4<br />
• Introduzione<br />
• <strong>Descrizione</strong> del problema<br />
• Iterated Local Search<br />
• Risultati computazionali
Dimensione del problema<br />
• Circa 1.000 concessionari<br />
situati in Italia<br />
• Più di 700 modelli<br />
differenti di veicoli<br />
trasportati<br />
• Dimensione media delle<br />
istanze molto grande<br />
800 veicoli<br />
200 concessionari
Istanze ed implementazione<br />
• L’algoritmo è stato testato su 23 istanze fornite<br />
dall’operatore logistico<br />
Luglio 2009<br />
• La matrice delle distanze fa riferimento a distanze<br />
stradali e non in linea d’aria<br />
• Tutte le procedure sono implementate in C++ e testate<br />
su di un Pentium Dual-Core 2.7 Ghz<br />
• Time limit dell’algoritmo = 1500 sec = 25 min
Miglior solutore del problema di caricamento<br />
Sono state comparate le 4 procedure sviluppate per<br />
risolvere il problema di caricamento:<br />
• enumerazione completa (B&B1)<br />
• B&B con lower bound aggregato (B&B2)<br />
• B&B con lower bound per ogni concessionario (B&B3)<br />
• modello matematico risolto con IBM ILOG CPLX
ILS vs Operatore Logistico<br />
•L’approccio ILS migliora attuale in tutte dell’operatore le istanze la logistico: soluzione dell’azienda<br />
• non risolve il problema di caricamento, ma si basa solo sugli<br />
indici di carico<br />
• In media è possibile una riduzione dell’11% del<br />
• clusterizza in concessionari in aree specifiche<br />
numero di km percorsi<br />
• implementa solamente un greedy euristico iniziale
Rimuovendo il problema di caricamento<br />
Si è cercato di imitare l’approccio dell’operatore logistico:<br />
• se la somma degli indici di carico è
ILS vs Multi-Start<br />
• In 20 istanze su 23 la soluzione trovata dall’ILS è<br />
migliore rispetto all’approccio Multi-Start<br />
• In media la riduzione si aggira intorno a 140km per<br />
ogni istanza
Impatto dello split delivery<br />
Lo split delivery è ammesso, ma si è provato ad introdurre una<br />
penalità (in km) ogni volta che un concessionario è visitato<br />
• ↑ numero totale di bisarche<br />
• ↑ distanza percorsa<br />
• ↓ numero di split delivery
Step 5<br />
• Introduzione<br />
• <strong>Descrizione</strong> del problema<br />
• Iterated Local Search<br />
• Risultati computazionali<br />
• Conclusioni
Conclusioni<br />
• Risparmi importanti in un’applicazione reale:<br />
Circa 40km risparmiati per bisarca/giorno<br />
Riduzione delle emissioni CO 2<br />
• Combinazione efficace di algoritmi esatti ed euristici<br />
(matheuristic approach):<br />
modello accurato per la risoluzione del problema di caricamento<br />
buone euristiche per la parte di routing<br />
• A-CTP è molto complesso e lo studio può essere esteso<br />
in molti modi interessanti:<br />
• Multi-deposito con riposizionamenti<br />
• Multi-periodo<br />
• Pickup and delivery