Vehicle routing problem: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Creata dalla traduzione della pagina "Vehicle routing problem"
Riga 1: Riga 1:
[[File:Figure_illustrating_the_vehicle_routing_problem.png|thumb|Immagine che illustra il vehicle routing problem]]
[[File:Figure_illustrating_the_vehicle_routing_problem.png|miniatura| Una figura che illustra il problema del percorso del veicolo]]
Il '''problema del percorso del veicolo''' ( '''VRP''' ) è un problema di ottimizzazione combinatoria e programmazione intera che chiede "Qual è l'insieme ottimale di percorsi che una flotta di veicoli deve attraversare per consegnare a un dato insieme di clienti?" Generalizza il [[problema del commesso viaggiatore]] (TSP). Apparve per la prima volta in un articolo di [[George Dantzig]] e John Ramser nel 1959, <ref name="DantzigRamser1959">{{Cite journal|volume=6|url=http://andresjaquep.files.wordpress.com/2008/10/2627477-clasico-dantzig.pdf|doi=10.1287/mnsc.6.1.80}}</ref> in cui fu scritto il primo approccio algoritmico applicato alle consegne di benzina. Spesso il contesto è quello della consegna di merci situate in un deposito centrale a clienti che hanno effettuato ordini per tali merci. L'obiettivo del VRP è ridurre al minimo il costo totale del percorso. Nel 1964, Clarke e Wright migliorarono l'approccio di Dantzig e Ramser utilizzando un efficace [[algoritmo greedy]] chiamato algoritmo di risparmio.
Il '''Vehicle routing problem''' (VRP) è una classe di problemi nell'ambito della [[ricerca operativa]]. Questi problemi trattano tutti gli aspetti della gestione di una flotta dei veicoli nell'ambito della [[logistica]].


Determinare la soluzione ottimale per VRP è [[NP-difficile|NP-hard]], <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}</ref> quindi la dimensione dei problemi che possono essere risolti in modo ottimale utilizzando [[Ottimizzazione (matematica)|la programmazione matematica]] o l'ottimizzazione combinatoria può essere limitata. Pertanto, i risolutori commerciali tendono a utilizzare le euristiche a causa delle dimensioni e della frequenza dei VRP del mondo reale che devono risolvere.
== Generalità del VRP ==


Il VRP ha molte applicazioni dirette nell'industria. I fornitori di strumenti di routing VRP spesso affermano di poter offrire risparmi sui costi dal 5% al 30%. <ref name="Springer Verlag">{{Cita libro|url=https://books.google.com/books?id=UMI5GzcNd8wC&q=%22vendors+of+routing+tools%22|pp=397–398|ISBN=978-3-540-68783-2}}</ref>
Il VRP tratta la gestione di veicoli idealmente da ogni punto di vista. Questa classe di problemi comprende una casistica molto varia: questo motivo fa sì che tali problemi siano difficilmente risolubili all'ottimo. Il caso più generale prevede la pianificazione del percorso di veicoli in presenza di:
*consegne multiple
*più veicoli.
Ogni veicolo:
*può avere più clienti.
*ha capacità di trasporto illimitata
Ogni cliente:
*ha una domanda di un certo prodotto.


== Impostazione del problema ==
Obiettivo:
Il VRP riguarda il servizio di una società di consegna. Come le cose vengono consegnate da uno o più ''depositi'' che hanno un insieme dato di ''veicoli'' e sono gestiti da un insieme di ''autisti'' che possono muoversi su una data ''rete stradale'' verso un insieme di ''clienti''. Richiede la determinazione di un insieme di ''percorsi'', ''S'', (un percorso per ogni veicolo che deve partire e terminare al proprio deposito) in modo che siano soddisfatte tutte le esigenze dei clienti e i vincoli operativi e il ''costo globale di trasporto'' sia minimizzato. Questo costo può essere monetario, di distanza o altro. <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>
* minimizzare un costo associato al percorso del veicolo (distanza, tempo, ecc.)
* massimizzare il profitto.
Questi metodi devono:
*assegnare un certo insieme di clienti ad ogni veicolo.
*elaborare per ogni veicolo un percorso.


La rete stradale può essere descritta utilizzando un [[Grafo|grafico]] in cui gli [[Digrafo (matematica)|archi]] sono strade e i vertici sono incroci tra di loro. Gli archi possono essere orientati o non orientati per la possibile presenza di sensi unici o costi diversi in ogni direzione. Ogni arco ha un costo associato che è generalmente la sua lunghezza o il tempo di percorrenza che può dipendere dal tipo di veicolo. <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>
== Problema del commesso viaggiatore ==
Un caso particolare di VRP è il famoso [[problema del commesso viaggiatore]]. In questo caso si ipotizza:
*un solo veicolo
*capacità infinita del veicolo


Per conoscere il costo globale di ogni tratta, è necessario conoscere il costo del viaggio e il tempo di viaggio tra ciascun cliente e il deposito. Per fare questo il nostro grafo di origine viene trasformato in uno in cui i vertici sono i clienti e il deposito, e gli archi sono le strade tra di loro. Il costo su ciascun arco è il costo più basso tra i due punti sulla rete stradale originaria. Questo è facile da fare poiché [[Cammino minimo|i problemi di cammino minimo]] sono relativamente facili da risolvere. Questo trasforma il grafo originale sparso in un [[grafo completo]] . Per ogni coppia di vertici ''i'' e ''j'', esiste un arco ''(i,j)'' del grafo completo il cui costo si scrive come <math>C_{ij}</math> ed è definito come il costo del cammino minimo da ''i'' a ''j'' . Il tempo di viaggio <math>t_{ij}</math> è la somma dei tempi di percorrenza degli archi sul percorso più breve da ''i'' a ''j'' sul grafico stradale originale.
È possibile:
*estendere i metodi di soluzione del TSP al VRP
*decomporre il VRP in più sottoproblemi TSP


A volte è impossibile soddisfare tutte le richieste di un cliente e in tali casi i risolutori possono ridurre le richieste di alcuni clienti o lasciare alcuni clienti non serviti. Per far fronte a queste situazioni può essere introdotta una variabile di priorità per ciascun cliente o associate penali per il servizio parziale o mancato per ciascun cliente dato <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>
Il problema è risolvibile in tempi polinomiali solamente per un massimo di due nodi, uno di partenza e uno di destinazione.


La funzione obiettivo di un VRP può essere molto diversa a seconda della particolare applicazione del risultato, ma alcuni degli obiettivi più comuni sono: <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>
Se si chiede al calcolatore l'itinerario più breve/economico per collegare numerose località, la soluzione non può arrivare in tempi umani, causa l'assenza di un algoritmo per risolvere efficacemente il problema.


* Ridurre al minimo il costo di trasporto globale in base alla distanza globale percorsa, nonché i costi fissi associati ai veicoli e ai conducenti usati
== Metodi euristici per il VRP ==
* Ridurre al minimo il numero di veicoli necessari per servire tutti i clienti
La grande complessità dei problemi di VRP rende molto difficile, o al limite impossibile, il calcolo della soluzione ottima. Perciò, si usa procedere attraverso euristiche, proprio come nel più semplice caso del TSP. È possibile applicare al VRP:
* Minima variazione nel tempo di viaggio e nel carico del veicolo
*''euristiche costruttive'': costruiscono un set valido di soluzioni ampliato ad ogni passo dell'algoritmo
* Ridurre al minimo le sanzioni per un servizio di bassa qualità
*''euristiche iterative'': costruiscono un set completo di soluzioni che viene migliorato iterativamente ad ogni passo dell'algoritmo
* Massimizza un profitto/punteggio raccolto.


== Varianti VRP ==
=== Algoritmo di Clarke & Wright ===
[[File:Map_of_vrp_subproblems.jpg|destra|miniatura| Una mappa che mostra la relazione tra sottoproblemi VRP comuni.]]
È un metodo costruttivo per la soluzione di VRP base; esso è chiamato anche ''metodo dei risparmi'' (savings), proprio perché l'obiettivo è massimizzare il risparmio dei costi ottenuto dal collasso di più percorsi.
Esistono diverse varianti e specializzazioni del problema del Vehicle Routing:


* Vehicle Routing Problem with Profits (VRPP): un problema di massimizzazione in cui non è obbligatorio visitare tutti i clienti. L'obiettivo è visitare una volta i clienti massimizzando la somma dei profitti raccolti rispettando un limite di tempo del veicolo. I veicoli devono iniziare e finire al deposito. Tra i VRPP più conosciuti e studiati, citiamo:
== Bibliografia ==
** Il Team Orienteering Problem (TOP) che è la variante più studiata del VRPP, <ref>{{Cite journal|volume=88|doi=10.1016/0377-2217(94)00289-4}}</ref> <ref>{{Cita libro|autore=Archetti, C.|edizione=Second|anno=2014|pp=273–297|DOI=10.1137/1.9781611973594.ch10}}</ref> <ref>{{Cite journal|volume=123|doi=10.1016/j.cor.2020.105034}}</ref>
* Toth, P.; Vigo, D.; '''''The Vehicle Routing Problem.''''' Monographs on Discrete Mathematics and its Applications, SIAM,(2002).
** Il Problema di Team Orienteering Capacitato (CTOP),
* Hammami, Farouk; Rekik, Monia; Coelho, Leandro C. (2020). '''''A hybrid adaptive large neighborhood search heuristic for the team orienteering problem'''''. ''Computers & Operations Research''.,'''123.'''
** Il TOP con finestre temporali (TOPTW).
* Problema di Vehicle Routing con ritiro e consegna (VRPPD): un certo numero di merci deve essere spostato da determinate località di ritiro ad altre località di consegna. L'obiettivo è trovare percorsi ottimali per una flotta di veicoli per visitare i luoghi di ritiro e riconsegna.
* Problema di Vehicle Routing con [[Pila (informatica)|LIFO]] : simile al VRPPD, tranne per il fatto che viene posta un'ulteriore restrizione sul carico dei veicoli: in qualsiasi luogo di consegna, l'articolo consegnato deve essere l'articolo ritirato più di recente. Questo schema riduce i tempi di carico e scarico nei luoghi di consegna perché non è necessario scaricare temporaneamente articoli diversi da quelli che dovrebbero essere lasciati.
* Vehicle Routing Problem con Time Windows (VRPTW): i luoghi di consegna hanno finestre temporali entro le quali devono essere effettuate le consegne (o le visite).
* Problema di instradamento del veicolo capacitato: CVRP o CVRPTW. I veicoli hanno una capacità di carico limitata della merce che deve essere consegnata.
* Problema di Vehicle Routing con viaggi multipli (VRPMT): i veicoli possono fare più di un percorso.
* Open Vehicle Routing Problem (OVRP): i veicoli non sono tenuti a tornare al deposito.
* Inventory Routing Problem (IRP): i veicoli sono responsabili di soddisfare le richieste in ogni punto di consegna <ref>{{Cite journal|volume=49|doi=10.1287/trsc.2014.0538}}</ref>
* Problema di instradamento dei veicoli multi-deposito (MDVRP): esistono più depositi da cui i veicoli possono iniziare e terminare. <ref>{{Cita conferenza|DOI=10.1109/ECACE.2019.8679429}}</ref>


Diversi fornitori di software hanno creato prodotti software per risolvere vari problemi VRP. Numerosi articoli sono disponibili per maggiori dettagli sulla loro ricerca e sui risultati.
[[Categoria:Ricerca operativa]]

Sebbene la VRP sia correlata al problema di programmazione dell'officina, i due problemi vengono in genere risolti utilizzando tecniche diverse. <ref name="Beck2003">{{Cita conferenza|autore=Beck, J.C.|url=http://www.dcs.gla.ac.uk/pras/pubs/Icaps03.pdf|anno=2003}}</ref>

== Metodi risolutivi esatti ==
Esistono tre principali approcci diversi alla modellazione del VRP

# '''Formulazioni del flusso del veicolo''' : utilizza variabili intere associate a ciascun arco che contano il numero di volte in cui il bordo viene attraversato da un veicolo. Viene generalmente utilizzato per i VRP di base. Ciò è utile nei casi in cui il costo della soluzione può essere espresso come somma di tutti i costi associati agli archi. Tuttavia non può essere utilizzato per gestire molte applicazioni pratiche. <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>
# '''Formulazioni del flusso di merci''' : ulteriori variabili intere sono associate agli archi o ai bordi che rappresentano il flusso di merci lungo i percorsi percorsi dai veicoli. Questo è stato utilizzato solo di recente per trovare una soluzione esatta. <ref name="toth" />
# '''Problema di partizionamento degli insiemi''' : questi hanno un numero esponenziale di variabili binarie, ciascuna associata a un diverso circuito ammissibile. Il VRP è quindi invece formulato come un problema di partizionamento di insiemi che chiede quale sia l'insieme di circuiti a costo minimo che soddisfano i vincoli di VRP. Ciò consente costi di percorso molto generali. <ref name="toth" />

=== Formulazioni di flusso del veicolo ===
La formulazione del TSP di Dantzig, Fulkerson e Johnson è stata estesa per creare le due formulazioni di flusso del veicolo indice per il VRP

: <math>\text{min} \sum_{i\in V}\sum_{j \in V}c_{ij}x_{ij}</math>

soggetto a{{NumFormula|:|<math> \sum_{i \in V}x_{ij}=1 \quad \forall j \in V\backslash \left \{ 0 \right \}</math>|1}}{{NumFormula|:|<math> \sum_{j \in V}x_{ij}=1 \quad \forall i \in V\backslash \left \{ 0 \right \}</math>|2}}{{NumFormula|:|<math> \sum_{i \in V \setminus \{0\} }x_{i0}=K </math>|3}}{{NumFormula|:|<math> \sum_{j \in V\setminus \{ 0\} }x_{0j}=K</math>|4}}{{NumFormula|:|<math> \sum_{i\notin S}\sum_{j\in S} x_{ij}\ge r(S), ~~\forall S \subseteq V\setminus \{0\}, S\neq \emptyset</math>|5}}{{NumFormula|:|<math> x_{ij}\in \{0,1\} \quad \forall i,j \in V</math>|6}}In questa formulazione <math>c_{ij}</math> rappresenta il costo per passare dal nodo <math>i</math> al nodo <math>j</math>, <math>x_{ij}</math> è una variabile binaria che ha valore <math>1</math> se l'arco va da <math>i</math> a <math>j</math> è considerato come parte della soluzione e <math>0</math> altrimenti, <math>K</math> è il numero di veicoli disponibili e <math>r(S)</math> corrisponde al numero minimo di veicoli necessari per servire il set <math>S</math> . Supponiamo inoltre che <math>0</math> è il nodo del deposito.

I vincoli 1 e 2 stabiliscono che esattamente un arco entra ed esattamente uno esce da ciascun vertice associato a un cliente, rispettivamente. I vincoli 3 e 4 dicono che il numero di veicoli in uscita dal deposito è uguale al numero in entrata. Il vincolo 5 è il vincolo di riduzione della capacità, che impone che le rotte siano collegate e che la domanda su ciascuna rotta non superi la capacità del veicolo. Infine, il vincolo 6 è il vincolo di integralità. <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>

Un vincolo arbitrario tra i <math>2|V|</math> vincoli è in realtà implicito nel rimanente <math>2|V|-1</math> quelli in modo che possa essere rimosso. Ogni taglio definito da un set di clienti <math>S</math> è attraversato da un numero di archi non inferiore a <math>r(S)</math> (numero minimo di veicoli necessari per servire il set <math>S</math> ). <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>

Una formulazione alternativa può essere ottenuta trasformando i vincoli di riduzione della capacità in vincoli di eliminazione del sottogiro generalizzati (GSEC).

: <math>
\sum_{i\in S}\sum_{j\in S}x_{ij} \leq |S|-r(S)
</math>

che impongono che almeno <math>r(S)</math> archi lascino ogni insieme di clienti <math>S</math>.<ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>

GCEC e CCC hanno un numero esponenziale di vincoli quindi è praticamente impossibile risolvere il rilassamento lineare. Un possibile modo per risolvere questo problema è considerare un sottoinsieme limitato di questi vincoli e aggiungere il resto se necessario.

Un metodo diverso ancora è quello di utilizzare una famiglia di vincoli che hanno una cardinalità polinomiale che sono noti come vincoli MTZ, sono stati proposti per la prima volta per il TSP <ref name="mtz">{{Cite journal|volume=7|doi=10.1145/321043.321046}}</ref> e successivamente estesi da Christofides, Mingozzi e Toth. <ref name="christof">{{Cita libro|pp=315–338}}</ref>

: <math>
u_j-u_i\geq d_j-C(1-x_{ij}) ~~~~~~\forall i,j \in V\backslash\{0\}, i\neq j~~~~\text{s.t. } d_i +d_j \leq C
</math>

: <math>
0 \leq u_i \leq C-d_i ~~~~~~\forall i \in V\backslash \{0\}
</math>

Dove <math> u_i,~i \in V \backslash \{0\}</math> è una variabile continua aggiuntiva che rappresenta il carico lasciato nel veicolo '''dopo''' aver visitato il cliente <math>i</math> e <math>d_i</math> è la domanda del cliente <math>i</math>. Questi impongono sia i requisiti di connettività che i requisiti di capacità. Quando vincoliamo <math>x_{ij}=0</math> allora <math>i</math> non è vincolante' poiché <math>u_i\leq C</math> e <math>u_j\geq d_j</math> mentre <math>x_{ij} = 1</math> lo impongono <math>u_j \geq u_i +d_j</math> .

Questi sono stati ampiamente utilizzati per modellare il VRP di base (CVRP) e il VRPB. Tuttavia, il loro potere è limitato a questi semplici problemi. Possono essere utilizzati solo quando il costo della soluzione può essere espresso come somma dei costi dei costi dell'arco. Non possiamo nemmeno sapere quale veicolo attraversa ciascun arco. Quindi non possiamo usarlo per modelli più complessi in cui il costo e/o la fattibilità dipendono dall'ordine dei clienti o dai veicoli utilizzati. <ref name="toth">{{Cita libro|anno=2002|volume=9|ISBN=0-89871-579-2|serie=Monographs on Discrete Mathematics and Applications}}<cite class="citation book cs1" data-ve-ignore="true" id="CITEREFToth,_P.Vigo,_D.2002">Toth, P.; Vigo, D., eds. (2002). ''The Vehicle Routing Problem''. Monographs on Discrete Mathematics and Applications. Vol.&nbsp;9. Philadelphia: Society for Industrial and Applied Mathematics. [[ISBN]]&nbsp;[[Speciale:BookSources/0-89871-579-2|<bdi>0-89871-579-2</bdi>]].</cite></ref>

=== Instradamento ottimale manuale e automatico ===
Esistono molti metodi per risolvere manualmente i problemi di vehicle routing. Ad esempio, il routing ottimale è un grosso problema di efficienza per i carrelli elevatori nei grandi magazzini. Alcuni dei metodi manuali per decidere il percorso più efficiente sono: Largest gap, S-shape, Aisle-by-aisle, Combined and Combined +. Sebbene il metodo Combined + sia il più complesso, quindi il più difficile da utilizzare per gli operatori di carrelli elevatori, è il metodo di routing più efficiente. Tuttavia, la differenza percentuale tra il metodo di routing ottimale manuale e il reale percorso ottimale era in media del 13%. <ref>{{Cita web|url=http://locatible.com/blog/logistics/why-is-manual-warehouse-optimum-routing-so-unefficient/|sito=Locatible.com|dataaccesso=2016-09-26}}</ref> <ref>{{Cita web|url=http://roodbergen.com/publications/IJPR2001.pdf|sito=roodbergen.com|dataaccesso=2016-09-26}}</ref>

== Metaeuristica ==
A causa della difficoltà di risolvere in modo ottimale istanze su larga scala di problemi di vehicle routing, uno sforzo di ricerca significativo è stato dedicato a metaeuristica come [[Algoritmo genetico|algoritmi genetici]], [[Tabu search]], [[Simulated annealing]] e Adaptive Large Neighbourhood Search<ref>{{Cita web|url=https://www.researchgate.net/publication/220413334_An_Adaptive_Large_Neighborhood_Search_Heuristic_for_the_Pickup_and_Delivery_Problem_with_Time_Windows|titolo=https://www.researchgate.net/publication/220413334_An_Adaptive_Large_Neighborhood_Search_Heuristic_for_the_Pickup_and_Delivery_Problem_with_Time_Windows}}</ref> (ALNS). Alcune delle metaeuristiche più recenti ed efficienti per i problemi di instradamento dei veicoli raggiungono soluzioni entro lo 0,5% o l'1% dell'ottimale per istanze di problemi che contano centinaia o migliaia di punti di consegna. <ref>{{Cite journal|anno=2014|volume=234|doi=10.1016/j.ejor.2013.09.045}}</ref> Questi metodi sono anche più robusti, nel senso che possono essere adattati più facilmente per far fronte a una varietà di vincoli secondari. Pertanto, l'applicazione di tecniche metaeuristiche è spesso preferita per applicazioni su larga scala con vincoli e insiemi decisionali complicati.

== Guarda anche ==

* [[Problema del postino cinese]]
* Problema di riprogrammazione del veicolo
* Instradamento dell'arco
* Elenco degli argomenti di teoria dei grafi

== Riferimenti ==
<references group="" responsive="1"></references>

== Ulteriori letture ==

* {{cite journal|author=Oliveira, H.C.B.de|author2=Vasconcelos, G.C.|year=2008|title=A hybrid search method for the vehicle routing problem with time windows|journal=Annals of Operations Research|doi=10.1007/s10479-008-0487-y|volume=180|pages=125–144|s2cid=32406011}}
* {{cite conference|author=Frazzoli, E.|author2=Bullo, F.|year=2004|title=Decentralized algorithms for vehicle routing in a stochastic time-varying environment|journal=Proceedings of the ... IEEE Conference on Decision & Control|conference=43rd IEEE Conference on Decision and Control, 14-17 Dec. 2004, Nassau, Bahamas|book-title=2004 43rd IEEE Conference on Decision and Control (CDC)|volume=4|publisher=IEEE|doi=10.1109/CDC.2004.1429220|issn=0191-2216|isbn=0-7803-8682-5}}
* {{cite journal|author=Psaraftis, H.N.|year=1988|title=Dynamic vehicle routing problems|journal=Vehicle Routing: Methods and Studies|volume=16|pages=223–248|url=http://www.martrans.org/documents/2008/rst/dvrp%20psaraftis%2088.pdf}}
* {{cite journal|author=Bertsimas, D.J.|author2=Van Ryzin, G.|year=1991|title=A Stochastic and Dynamic Vehicle Routing Problem in the Euclidean Plane|journal=Operations Research|volume=39|issue=4|pages=601–615|doi=10.1287/opre.39.4.601|jstor=171167|hdl=1721.1/2353|hdl-access=free}}
* {{cite journal|vauthors=Vidal T, Crainic TG, Gendreau M, Prins C|year=2013|title=Heuristics for multi-attribute vehicle routing problems: A survey and synthesis|journal=European Journal of Operational Research|volume=231|issue=1|pages=1–21|doi=10.1016/j.ejor.2013.02.053|s2cid=15983279}}
* {{cite arXiv|last1=Hirotaka|first1=Irie|last2=Wongpaisarnsin|first2=Goragot|last3=Terabe|first3=Masayoshi|last4=Miki|first4=Akira|last5=Taguchi|first5=Shinichirou|date=2019|title=Quantum Annealing of Vehicle Routing Problem with Time, State and Capacity|eprint=1903.06322|class=quant-ph}}
[[Categoria:Problemi NP-completi]]
[[Categoria:Problemi NP-completi]]
[[Categoria:Ottimizzazione]]

Versione delle 17:59, 5 mar 2023

Una figura che illustra il problema del percorso del veicolo

Il problema del percorso del veicolo ( VRP ) è un problema di ottimizzazione combinatoria e programmazione intera che chiede "Qual è l'insieme ottimale di percorsi che una flotta di veicoli deve attraversare per consegnare a un dato insieme di clienti?" Generalizza il problema del commesso viaggiatore (TSP). Apparve per la prima volta in un articolo di George Dantzig e John Ramser nel 1959, [1] in cui fu scritto il primo approccio algoritmico applicato alle consegne di benzina. Spesso il contesto è quello della consegna di merci situate in un deposito centrale a clienti che hanno effettuato ordini per tali merci. L'obiettivo del VRP è ridurre al minimo il costo totale del percorso. Nel 1964, Clarke e Wright migliorarono l'approccio di Dantzig e Ramser utilizzando un efficace algoritmo greedy chiamato algoritmo di risparmio.

Determinare la soluzione ottimale per VRP è NP-hard, [2] quindi la dimensione dei problemi che possono essere risolti in modo ottimale utilizzando la programmazione matematica o l'ottimizzazione combinatoria può essere limitata. Pertanto, i risolutori commerciali tendono a utilizzare le euristiche a causa delle dimensioni e della frequenza dei VRP del mondo reale che devono risolvere.

Il VRP ha molte applicazioni dirette nell'industria. I fornitori di strumenti di routing VRP spesso affermano di poter offrire risparmi sui costi dal 5% al 30%. [3]

Impostazione del problema

Il VRP riguarda il servizio di una società di consegna. Come le cose vengono consegnate da uno o più depositi che hanno un insieme dato di veicoli e sono gestiti da un insieme di autisti che possono muoversi su una data rete stradale verso un insieme di clienti. Richiede la determinazione di un insieme di percorsi, S, (un percorso per ogni veicolo che deve partire e terminare al proprio deposito) in modo che siano soddisfatte tutte le esigenze dei clienti e i vincoli operativi e il costo globale di trasporto sia minimizzato. Questo costo può essere monetario, di distanza o altro. [2]

La rete stradale può essere descritta utilizzando un grafico in cui gli archi sono strade e i vertici sono incroci tra di loro. Gli archi possono essere orientati o non orientati per la possibile presenza di sensi unici o costi diversi in ogni direzione. Ogni arco ha un costo associato che è generalmente la sua lunghezza o il tempo di percorrenza che può dipendere dal tipo di veicolo. [2]

Per conoscere il costo globale di ogni tratta, è necessario conoscere il costo del viaggio e il tempo di viaggio tra ciascun cliente e il deposito. Per fare questo il nostro grafo di origine viene trasformato in uno in cui i vertici sono i clienti e il deposito, e gli archi sono le strade tra di loro. Il costo su ciascun arco è il costo più basso tra i due punti sulla rete stradale originaria. Questo è facile da fare poiché i problemi di cammino minimo sono relativamente facili da risolvere. Questo trasforma il grafo originale sparso in un grafo completo . Per ogni coppia di vertici i e j, esiste un arco (i,j) del grafo completo il cui costo si scrive come ed è definito come il costo del cammino minimo da i a j . Il tempo di viaggio è la somma dei tempi di percorrenza degli archi sul percorso più breve da i a j sul grafico stradale originale.

A volte è impossibile soddisfare tutte le richieste di un cliente e in tali casi i risolutori possono ridurre le richieste di alcuni clienti o lasciare alcuni clienti non serviti. Per far fronte a queste situazioni può essere introdotta una variabile di priorità per ciascun cliente o associate penali per il servizio parziale o mancato per ciascun cliente dato [2]

La funzione obiettivo di un VRP può essere molto diversa a seconda della particolare applicazione del risultato, ma alcuni degli obiettivi più comuni sono: [2]

  • Ridurre al minimo il costo di trasporto globale in base alla distanza globale percorsa, nonché i costi fissi associati ai veicoli e ai conducenti usati
  • Ridurre al minimo il numero di veicoli necessari per servire tutti i clienti
  • Minima variazione nel tempo di viaggio e nel carico del veicolo
  • Ridurre al minimo le sanzioni per un servizio di bassa qualità
  • Massimizza un profitto/punteggio raccolto.

Varianti VRP

Una mappa che mostra la relazione tra sottoproblemi VRP comuni.

Esistono diverse varianti e specializzazioni del problema del Vehicle Routing:

  • Vehicle Routing Problem with Profits (VRPP): un problema di massimizzazione in cui non è obbligatorio visitare tutti i clienti. L'obiettivo è visitare una volta i clienti massimizzando la somma dei profitti raccolti rispettando un limite di tempo del veicolo. I veicoli devono iniziare e finire al deposito. Tra i VRPP più conosciuti e studiati, citiamo:
    • Il Team Orienteering Problem (TOP) che è la variante più studiata del VRPP, [4] [5] [6]
    • Il Problema di Team Orienteering Capacitato (CTOP),
    • Il TOP con finestre temporali (TOPTW).
  • Problema di Vehicle Routing con ritiro e consegna (VRPPD): un certo numero di merci deve essere spostato da determinate località di ritiro ad altre località di consegna. L'obiettivo è trovare percorsi ottimali per una flotta di veicoli per visitare i luoghi di ritiro e riconsegna.
  • Problema di Vehicle Routing con LIFO : simile al VRPPD, tranne per il fatto che viene posta un'ulteriore restrizione sul carico dei veicoli: in qualsiasi luogo di consegna, l'articolo consegnato deve essere l'articolo ritirato più di recente. Questo schema riduce i tempi di carico e scarico nei luoghi di consegna perché non è necessario scaricare temporaneamente articoli diversi da quelli che dovrebbero essere lasciati.
  • Vehicle Routing Problem con Time Windows (VRPTW): i luoghi di consegna hanno finestre temporali entro le quali devono essere effettuate le consegne (o le visite).
  • Problema di instradamento del veicolo capacitato: CVRP o CVRPTW. I veicoli hanno una capacità di carico limitata della merce che deve essere consegnata.
  • Problema di Vehicle Routing con viaggi multipli (VRPMT): i veicoli possono fare più di un percorso.
  • Open Vehicle Routing Problem (OVRP): i veicoli non sono tenuti a tornare al deposito.
  • Inventory Routing Problem (IRP): i veicoli sono responsabili di soddisfare le richieste in ogni punto di consegna [7]
  • Problema di instradamento dei veicoli multi-deposito (MDVRP): esistono più depositi da cui i veicoli possono iniziare e terminare. [8]

Diversi fornitori di software hanno creato prodotti software per risolvere vari problemi VRP. Numerosi articoli sono disponibili per maggiori dettagli sulla loro ricerca e sui risultati.

Sebbene la VRP sia correlata al problema di programmazione dell'officina, i due problemi vengono in genere risolti utilizzando tecniche diverse. [9]

Metodi risolutivi esatti

Esistono tre principali approcci diversi alla modellazione del VRP

  1. Formulazioni del flusso del veicolo : utilizza variabili intere associate a ciascun arco che contano il numero di volte in cui il bordo viene attraversato da un veicolo. Viene generalmente utilizzato per i VRP di base. Ciò è utile nei casi in cui il costo della soluzione può essere espresso come somma di tutti i costi associati agli archi. Tuttavia non può essere utilizzato per gestire molte applicazioni pratiche. [2]
  2. Formulazioni del flusso di merci : ulteriori variabili intere sono associate agli archi o ai bordi che rappresentano il flusso di merci lungo i percorsi percorsi dai veicoli. Questo è stato utilizzato solo di recente per trovare una soluzione esatta. [2]
  3. Problema di partizionamento degli insiemi : questi hanno un numero esponenziale di variabili binarie, ciascuna associata a un diverso circuito ammissibile. Il VRP è quindi invece formulato come un problema di partizionamento di insiemi che chiede quale sia l'insieme di circuiti a costo minimo che soddisfano i vincoli di VRP. Ciò consente costi di percorso molto generali. [2]

Formulazioni di flusso del veicolo

La formulazione del TSP di Dantzig, Fulkerson e Johnson è stata estesa per creare le due formulazioni di flusso del veicolo indice per il VRP

soggetto a

 

 

 

 

(1)

 

 

 

 

(2)

 

 

 

 

(3)

 

 

 

 

(4)

 

 

 

 

(5)

 

 

 

 

(6)

In questa formulazione rappresenta il costo per passare dal nodo al nodo , è una variabile binaria che ha valore se l'arco va da a è considerato come parte della soluzione e altrimenti, è il numero di veicoli disponibili e corrisponde al numero minimo di veicoli necessari per servire il set . Supponiamo inoltre che è il nodo del deposito.

I vincoli 1 e 2 stabiliscono che esattamente un arco entra ed esattamente uno esce da ciascun vertice associato a un cliente, rispettivamente. I vincoli 3 e 4 dicono che il numero di veicoli in uscita dal deposito è uguale al numero in entrata. Il vincolo 5 è il vincolo di riduzione della capacità, che impone che le rotte siano collegate e che la domanda su ciascuna rotta non superi la capacità del veicolo. Infine, il vincolo 6 è il vincolo di integralità. [2]

Un vincolo arbitrario tra i vincoli è in realtà implicito nel rimanente quelli in modo che possa essere rimosso. Ogni taglio definito da un set di clienti è attraversato da un numero di archi non inferiore a (numero minimo di veicoli necessari per servire il set ). [2]

Una formulazione alternativa può essere ottenuta trasformando i vincoli di riduzione della capacità in vincoli di eliminazione del sottogiro generalizzati (GSEC).

che impongono che almeno archi lascino ogni insieme di clienti .[2]

GCEC e CCC hanno un numero esponenziale di vincoli quindi è praticamente impossibile risolvere il rilassamento lineare. Un possibile modo per risolvere questo problema è considerare un sottoinsieme limitato di questi vincoli e aggiungere il resto se necessario.

Un metodo diverso ancora è quello di utilizzare una famiglia di vincoli che hanno una cardinalità polinomiale che sono noti come vincoli MTZ, sono stati proposti per la prima volta per il TSP [10] e successivamente estesi da Christofides, Mingozzi e Toth. [11]

Dove è una variabile continua aggiuntiva che rappresenta il carico lasciato nel veicolo dopo aver visitato il cliente e è la domanda del cliente . Questi impongono sia i requisiti di connettività che i requisiti di capacità. Quando vincoliamo allora non è vincolante' poiché e mentre lo impongono .

Questi sono stati ampiamente utilizzati per modellare il VRP di base (CVRP) e il VRPB. Tuttavia, il loro potere è limitato a questi semplici problemi. Possono essere utilizzati solo quando il costo della soluzione può essere espresso come somma dei costi dei costi dell'arco. Non possiamo nemmeno sapere quale veicolo attraversa ciascun arco. Quindi non possiamo usarlo per modelli più complessi in cui il costo e/o la fattibilità dipendono dall'ordine dei clienti o dai veicoli utilizzati. [2]

Instradamento ottimale manuale e automatico

Esistono molti metodi per risolvere manualmente i problemi di vehicle routing. Ad esempio, il routing ottimale è un grosso problema di efficienza per i carrelli elevatori nei grandi magazzini. Alcuni dei metodi manuali per decidere il percorso più efficiente sono: Largest gap, S-shape, Aisle-by-aisle, Combined and Combined +. Sebbene il metodo Combined + sia il più complesso, quindi il più difficile da utilizzare per gli operatori di carrelli elevatori, è il metodo di routing più efficiente. Tuttavia, la differenza percentuale tra il metodo di routing ottimale manuale e il reale percorso ottimale era in media del 13%. [12] [13]

Metaeuristica

A causa della difficoltà di risolvere in modo ottimale istanze su larga scala di problemi di vehicle routing, uno sforzo di ricerca significativo è stato dedicato a metaeuristica come algoritmi genetici, Tabu search, Simulated annealing e Adaptive Large Neighbourhood Search[14] (ALNS). Alcune delle metaeuristiche più recenti ed efficienti per i problemi di instradamento dei veicoli raggiungono soluzioni entro lo 0,5% o l'1% dell'ottimale per istanze di problemi che contano centinaia o migliaia di punti di consegna. [15] Questi metodi sono anche più robusti, nel senso che possono essere adattati più facilmente per far fronte a una varietà di vincoli secondari. Pertanto, l'applicazione di tecniche metaeuristiche è spesso preferita per applicazioni su larga scala con vincoli e insiemi decisionali complicati.

Guarda anche

  • Problema del postino cinese
  • Problema di riprogrammazione del veicolo
  • Instradamento dell'arco
  • Elenco degli argomenti di teoria dei grafi

Riferimenti

  1. ^ vol. 6, DOI:10.1287/mnsc.6.1.80, http://andresjaquep.files.wordpress.com/2008/10/2627477-clasico-dantzig.pdf.
  2. ^ a b c d e f g h i j k l Monographs on Discrete Mathematics and Applications, vol. 9, 2002, ISBN 0-89871-579-2. Errore nelle note: Tag <ref> non valido; il nome "toth" è stato definito più volte con contenuti diversi
  3. ^ pp. 397–398, ISBN 978-3-540-68783-2, https://books.google.com/books?id=UMI5GzcNd8wC&q=%22vendors+of+routing+tools%22.
  4. ^ vol. 88, DOI:10.1016/0377-2217(94)00289-4, https://oadoi.org/10.1016/0377-2217(94)00289-4.
  5. ^ Archetti, C., Second, 2014, pp. 273–297, DOI:10.1137/1.9781611973594.ch10.
  6. ^ vol. 123, DOI:10.1016/j.cor.2020.105034, https://oadoi.org/10.1016/j.cor.2020.105034.
  7. ^ vol. 49, DOI:10.1287/trsc.2014.0538, https://oadoi.org/10.1287/trsc.2014.0538.
  8. ^ DOI:10.1109/ECACE.2019.8679429.
  9. ^ Beck, J.C., 2003, http://www.dcs.gla.ac.uk/pras/pubs/Icaps03.pdf.
  10. ^ vol. 7, DOI:10.1145/321043.321046, https://oadoi.org/10.1145/321043.321046.
  11. ^ pp. 315–338.
  12. ^ Locatible.com, http://locatible.com/blog/logistics/why-is-manual-warehouse-optimum-routing-so-unefficient/. URL consultato il 26 settembre 2016.
  13. ^ roodbergen.com, http://roodbergen.com/publications/IJPR2001.pdf. URL consultato il 26 settembre 2016.
  14. ^ https://www.researchgate.net/publication/220413334_An_Adaptive_Large_Neighborhood_Search_Heuristic_for_the_Pickup_and_Delivery_Problem_with_Time_Windows, su researchgate.net.
  15. ^ vol. 234, DOI:10.1016/j.ejor.2013.09.045, https://oadoi.org/10.1016/j.ejor.2013.09.045.

Ulteriori letture