Problemi di Trasporto â Vehicle Routing - Massimo Paolucci
Problemi di Trasporto â Vehicle Routing - Massimo Paolucci
Problemi di Trasporto â Vehicle Routing - Massimo Paolucci
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Problemi</strong> decisionali neitrasporti:<strong>Vehicle</strong> <strong>Routing</strong> Problems<strong>Massimo</strong> <strong>Paolucci</strong>(paolucci@<strong>di</strong>st.unige.it)DIST – Università <strong>di</strong> Genova<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong>2 <strong>Problemi</strong> <strong>di</strong> pianificazione e gestione con elevata incidenzasui costi (totali e logistici in particolare) Logistica• stu<strong>di</strong>o <strong>di</strong> procedure e meto<strong>di</strong> per la pianificazione ed il controllo deiflussi <strong>di</strong> materiali e delle relative informazioni nelle organizzazioni,imprese ed enti erogatori <strong>di</strong> servizi• opera in modo che materiali, materie prime, semilavorati, prodotti finitie servizi pervengano al posto giusto, al momento giusto ed a uncosto ragionevole• Sistema logistico: “è l’insieme delle infrastrutture, attrezzature,persone e politiche operative che permette il flusso <strong>di</strong> beni e dellenecessarie informazioni dall’acquisizione delle materie prime sino alla<strong>di</strong>stribuzione dei prodotti finiti ai consumatori” (J. Heskett, R. Shapiro,Harward Business School)1
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong>3 I problemi <strong>di</strong> trasporto sono associati ad altri problemidecisionali quali:• localizzazione dei centri logistici• allocazione della domanda• gestione delle scorte Una molteplicità <strong>di</strong> problemi decisionali:• composizione delle flotte• turni dei veicoli e del personale• determinazione delle rotte• assegnazione dei carichi e loro composizione• posizionamento dei veicoli vuoti Due classi principali <strong>di</strong> problemi:• problemi <strong>di</strong> trasporto a lunga <strong>di</strong>stanza• problemi <strong>di</strong> trasporto a breve <strong>di</strong>stanza<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong>4 I problemi <strong>di</strong> trasporto a lunga <strong>di</strong>stanza (long-haul, intercityfreight transportation)• Viaggi <strong>di</strong>retti (singola origine-destinazione)• da pochi a molti• realizzati in proprio dalle <strong>di</strong>tte produttrici• Viaggi in<strong>di</strong>retti• da molti a molti• spe<strong>di</strong>zionieri con molteplicità <strong>di</strong> clienti• servizio in linea (orario prestabilito) o su richiesta (allocazione<strong>di</strong>namica dei mezzi)• In questo contesto si utilizzano modelli decisionali per laprogettazione della rete <strong>di</strong> collegamento (Network Design, ND)• ND statico e <strong>di</strong>namico• Modelli (lineari) <strong>di</strong> flusso: Min Cost Flow Prob., Max Flow Prob.2
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong>5 I problemi <strong>di</strong> trasporto a breve <strong>di</strong>stanza (short-haul, localfreight transportation)• Ambito citta<strong>di</strong>no o regionale• Presenza <strong>di</strong> uno o più depositi• Arco temporale giornaliero• Problematiche caratteristiche• <strong>di</strong>stribuzione (delivery)• raccolta (pick-up)• <strong>di</strong>stribuzione e raccolta combinata (pick-up and Delivery)• domanda variabile (giornaliera)• allocazione <strong>di</strong>namica dei veicoli<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>6 Organizzazione dell’attività <strong>di</strong> raccolta e <strong>di</strong>stribuzione: unodei problemi più rilevanti del trasporto a breve <strong>di</strong>stanza <strong>Vehicle</strong> <strong>Routing</strong> Problem (VRP): definizione delle rotte deiveicoli• <strong>Problemi</strong> statici: richieste <strong>di</strong> servizio note a priori• <strong>Problemi</strong> <strong>di</strong>namici: richieste note anche nel corso delleoperazioni (aggiustamento rotte)• Vedremo modelli nell’ipotesi <strong>di</strong> staticità e <strong>di</strong> veicoli omogenei3
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>7 <strong>Vehicle</strong> <strong>Routing</strong> Problem• Formulazione• Dato un grafo G=(V,A) generico determinare l’insieme <strong>di</strong> m cicli(rotte) a costo minimo che comprendano U⊆V no<strong>di</strong> <strong>di</strong> servizio(required vertices) e R⊆A archi <strong>di</strong> servizio (required edges) e chesod<strong>di</strong>sfino ad un insieme dato <strong>di</strong> vincoli operativi.• Costo <strong>di</strong> una rotta = somma costi degli archi che la compongono• Vincoli operativi possibili:– ogni rotta deve passare per uno o più no<strong>di</strong> stabiliti– numero massimo dei veicoli– rispetto della capacità dei veicoli (peso, volume)– durata massima delle rotte– fasce orarie <strong>di</strong> servizio per i clienti (time windows)– richieste <strong>di</strong> servizio dei clienti sod<strong>di</strong>sfatte da un singoli veicolo<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>8 <strong>Vehicle</strong> <strong>Routing</strong> Problem• Localizzazione dei clienti• <strong>di</strong>stribuiti in modo <strong>di</strong>scontinuo lungo le vie• concentrati nelle località associate ai no<strong>di</strong>‣clienti associati ai no<strong>di</strong> <strong>di</strong> servizio U, R=∅‣Node <strong>Routing</strong> Problem (NRP)• <strong>di</strong>stribuiti in modo continuo lungo le vie‣clienti associati agli archi <strong>di</strong> servizio R, U=∅‣Arc <strong>Routing</strong> Problem (ARP)• Senza vincoli operativi:• NRP <strong>di</strong>venta un Traveling Salesman Problem (TSP)• ARP <strong>di</strong>venta un Rural Chinese Postman Problem (RCPP)• ARP con R=A <strong>di</strong>venta un Chinese Postman Problem (CPP)4
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>9 TSP (NRP senza vincoli operativi)• Singolo veicolo• Soluzione: rotta a costo minimo che tocca tutti i no<strong>di</strong> (undeposito) = sequenza <strong>di</strong> no<strong>di</strong>• G=(V,A) → G’=(V’,A’) completo (orientato)• c ij (i,j)∈A’ costo minimo in G per andare da i a j• Soluzione ammissibile: ciclo orientato hamiltoniano in G’• TSP asimmetrico c ij ≠c ji (ATSP)• TSP simmetrico c ij =c ji (STSP)<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>10 Il TSP è un problema NP-hard molto stu<strong>di</strong>ato La più grande istanza risolta: Applegate, Bixby, Chvátal, andCook (2001) 15.112 città in Germania“The solution of the 15,112-citytraveling salesman problem wasaccomplished in several phases in2000/2001, and used a total of 22.6years of computer time, adjusted to a500 MHz, EV6 Alpha processor. Theinitial tour-fin<strong>di</strong>ng and cutting-planephases were run on a cluster ofCompaq ES40 Alphaserversconsisting of 32 EV6 (500 MHz)nodes and 12 EV67 (667 MHz)nodes”(www.math.princeton.edu/tsp/index.html)5
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>11 Le soluzioni al TSP si cercano nella pratica utilizzandoeuristiche La formulazione matematica è utile per determinare dei“lower bound”, quin<strong>di</strong> una stima della bontà delle soluzionisub-ottimeZ − Z*TSP LBZ*LB In genere si usano approcci <strong>di</strong>stinti tra caso simmetrico edasimmetrico<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong> ATSP• Formulazione: G’=(V’,A’) orientato completox ij =1 se il nodo j segue imme<strong>di</strong>atamenteil nodo i nel tourmin ∑ cijxij(i,j) ∈A'∑ xij= 1i∈V'\{j}∑ xij= 1j∈V'\{i}xij∈ XSTExij∈Bj ∈ V'i ∈ V'∀(i,j) ∈ A'alternativi∑ ∑ xij≤|S | −1i∈Sj∈S• due classi <strong>di</strong> subtour elimination constraints4∑ ∑ xij≥ 1i∈Sj∉S532 1S ⊂ V',| S | ≥ 26S ⊂ V',| S | ≥ 2126
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>13 ATSP• Rilassamento: Assigment Problem (AP)2 1min ∑ cijxij(i,j) ∈A'∑ xij= 1i∈V'\{ j}j∈V'4536∑ xij= 1j∈V'\{i}i ∈ V'xij∈ Bse la matrice dei costi èfortemente asimmetricaZ*Z* TSP − AP < 1%Z* TSP<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>14 STSP• Formulazione G’=(V’,A’) non orientato completox ij =1 se l’arco (i, j) è nel tourx ij ∀i,j∈V’ i i∑ xiv+ ∑ xvi= 2i∈V'i∈V'ivxij∈ XSTExij∈ B∀i,j ∈ V'i < jv ∈ V'alternativi∑ ∑ xij+ ∑ ∑ xij≥ 2i∈S j∉Si∉S j∈Si < j i < j∑ ∑ xiji∈S j∈Si < j3241S ⊂ V',2 ≤|S | ≤ ⎡|≤|S | −195678V'| /2⎤S ⊂ V',2 ≤|S | ≤ ⎡|V'| / 2⎤7
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>15 STSP• Rilassamento : Min r-Span. Tree (r-ST)min ∑ ∑ cijxiji∈V'j∈V'i
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>17 Euristiche <strong>di</strong> miglioramento (local search)• 2-OPT (3-OPT)• si migliora il ciclo scegliendo il miglior 2-scambio (si rimovuono 2archi nel ciclo sostituendoli con altri due in modo da ottenere unciclo) (molto valide)• Lin-Kernighan• esegue k-scambi con k variabile sino a che scopre che con k+1scambi non si migliora<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>18 NRP con vincoli operativi514236101179Magazzino B13rete inizialeMagazzino A81212311Magazzino Bsoluzione546107913Magazzino A8129
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>19 NRP con vincoli operativi• M-TSP: M commessi (senza vincoli <strong>di</strong> capacità)• Single Depot Multiple <strong>Vehicle</strong> NRP• Multiple Depot Multiple <strong>Vehicle</strong> NRP• La presenza dei vincoli complica la formulazione• La soluzione è costituita da K tour (K veicoli)• Euristiche:• classiche (’60-’90) - semplici• metaeuristiche (dal ’90) - complicate<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>20 NRP con vincoli operativi - Euristiche classiche• Cluster first, route second• nella prima fase associano ad ogni veicolo un sottinsieme <strong>di</strong> no<strong>di</strong>(clienti) e nella seconda fase risolvono per ogni veicolo un TSPsul sottografo indotto dai no<strong>di</strong> scelti• Route first, cluster second• nella prima fase viene risolto un TSP rilassando i vincoli (ingenere non ammissibile per il NRP) e nella seconda fase il ciclo èdecomposto in k≤K tour ammissibili• Algoritmo dei risparmi• si parte da una serie <strong>di</strong> soluzioni ammissibili per NRP (tour) che sifondono progressivamente per ottenere soluzioni migliori purrestando ammissibili (inizializzazione: ogni cliente è servito da unveicolo <strong>di</strong>verso)10
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>21 NRP con vincoli operativi - Euristiche classiche• Algoritmo dei risparmi• si calcolano i risparmi e si introduce quello più convenienteammissibileirisparmioc 0iic ij0c 0i c i0c j0c 0jj0s ij =c i0 +c 0j -c ij22c j0j• Scambi (local search)• adattamento delle k-OPT al NRP (scambio <strong>di</strong> clienti nella rotta otra rotte) che richiedono le verifiche <strong>di</strong> ammissibilità<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong> NRP con vincoli operativi - Metaeuristiche• Tabù Search• si cerca una soluzione ottima locale, si generano delle soluzioninell’intorno accettando peggioramenti ed anche soluzioni nonammissibili, quin<strong>di</strong> riparte alla ricerca <strong>di</strong> una soluzione localmenteottima ammissibile• per evitare <strong>di</strong> restare bloccati in un ciclo <strong>di</strong> soluzioni si utilizza lalista delle soluzioni tabù• ci si ferma dopo un numero massimo <strong>di</strong> iterazioni o <strong>di</strong> nonmiglioramenti• Simulated annealing• simile alla tabù search, esplora un intorno <strong>di</strong> una soluzioneaccettando anche soluzioni peggiorative.• l’ampiezza dell’esplorazione e la propensione all’accettazione deipeggioramenti si riduce progressivamente (raffreddamento)11
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>23 Il Postino Cinese (CPP) (ARP senza vincoli operativi)• Singolo veicolo• Tutti gli archi richiedono servizio (altrimenti si ha il Rural CPP)• Soluzione: rotta a costo minimo che attraversa tutti gli archialmeno una volta• G=(V,A):• euleriano se esiste un ciclo che passi per tutti gli archi una solavolta → è la soluzione ottima• non euleriano → almeno un arco attraversato due volte• G orientato e connesso è euleriano se ogni nodo ha tanti archientranti quanti uscenti (simmetrico)• G non orientato e connesso è euleriano se ogni nodo ha gradopari• Il CPP è un problema facile (P) se G è orientato o non orientato<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>24 Il Postino Cinese (CPP) (ARP senza vincoli operativi)• G misto (archi sia orientati e non – caso realistico nei centriurbani)• G misto è euleriano se:• il numero totale <strong>di</strong> archi incidenti nei no<strong>di</strong> è pari• per ogni insieme <strong>di</strong> no<strong>di</strong> S⊂V la <strong>di</strong>fferenza tra il numero <strong>di</strong> archiorientati che attraversa il taglio (S, V\S) nei due sensi è minore ouguale al numero <strong>di</strong> archi non orientati del taglio121212V\SV\SV\S535353S4S4S4eulerianoeulerianonon euleriano12
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>25 Il Postino Cinese (CPP) (ARP senza vincoli operativi)• Se G è misto il CPP è NP-hard• La soluzione nel caso <strong>di</strong> G non orientato:• G euleriano: si trova il circuito euleriano partendo da un nodoqualsiasi scegliendo un arco da percorrere che non sia “bridge”(eliminando gli archi percorsi non si <strong>di</strong>sconnette il grafo ancora davisitare)• G non euleriano: si rende il grafo euleriano duplicando alcuniarchi. Prima si determinano i percorsi minimi tra ogni coppia <strong>di</strong>no<strong>di</strong> con grado <strong>di</strong>spari (che sono in numero pari), poi si troval’accoppiamento tra tali no<strong>di</strong> a costo minimo risolvendo unproblema <strong>di</strong> matching binario<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>26 Il Postino Cinese Rurale (RCPP) (ARP senza vincolioperativi)• Alcune strade non debbono essere servite ma sono solo <strong>di</strong>collegamento• Il proce<strong>di</strong>mento <strong>di</strong> soluzione si basa sulla costruzione <strong>di</strong> ungrafo euleriano che comprende gli archi da servire e quelli <strong>di</strong>collegamento necessari a costo minimo quin<strong>di</strong> sullacostruzione del ciclo eulerianoarco <strong>di</strong>servizio5132arco <strong>di</strong>collegamento6 513264413
<strong>Problemi</strong> <strong>di</strong> <strong>Trasporto</strong> – <strong>Vehicle</strong> <strong>Routing</strong>27 Il Postino Cinese Rurale (RCPP) (ARP senza vincolioperativi)• Il RCPP è NP-hard anche per grafi orientati e non orientati (seil numero <strong>di</strong> componenti connesse del sottografo indotto dagliarchi da servire è maggiore <strong>di</strong> 1) ARP con vincoli operativi• Necessari in genere più veicoli• Si usano algoritmi simili a quelli per il NRP, ad esempio:• Route First, Cluster Second• Path Scanning (si procede sino a che la capacità del veicolo loconsente poi si rientra al dep. per il percorso più breve)• Alg. <strong>di</strong> Christofiedes: simile al path scanning ma si procede sino ache è possibile rientrare con un percorso a richiesta minima• Casi più complessi possono richiedere il trasferimento deicarichi tra veicoli (eg. raccolta rifiuti)14