Rappresentazione su grafo
Si consideri un grafo G=(V,A) con
V={v1,..,vn}insieme di n nodi rappresentativo di località, A={(vi,vj): vi,vj∈V} insieme archi che identificano i possibili collegamenti tra località.
A ciascun arco è associato un costo cij che può indicare la lunghezza del collegamento, il tempo o il costo per coprirlo.
Si parla di problemi a
Obiettivo: individuare un insieme di itinerari che visitino i nodi o gli archi presso i quali sono presenti i servizi.
Complessità del problema
Il VRP appartiene alla classe dei problemi NP-hard per i quali, cioè, non esiste un algoritmo in grado di risolvere il problema in tempo polinomiale.
Anche per il VRP una soluzione ammissibile è rappresentata da una permutazione del tipo
d-A-C-F-d-B-D-E-d-G-H
essendo d il nodo deposito.
Algoritmi euristici per il VRP
Si possono distinguere
Metodi orientati alla individuazione (costruzione) di una soluzione ammissibile.
Passi fondamentali di un algoritmo costruttivo:
1. Inizializzazione
Si sceglie un elemento di partenza per la costruzione della soluzione parziale S.
2. Selezione nuovo elemento da aggiungere alla soluzione
Si individua il criterio di selezione di un nuovo elemento da aggiungere alla soluzione parziale S.
3. Criterio di arresto
Se S è completa e, quindi, ammissibile la procedura si interrompe altrimenti si ritorna al passo 2.
Gli algoritmi costruttivi per il VRP (nearest neighbour – algoritmi di inserimento – algoritmo di saving) possono essere considerati degli adattamenti degli stessi algoritmi per il TSP in modo da poter considerare i vincoli di capacità.
Essi possono essere implementati in modo:
Algoritmo nearest neighbor (vicino più vicino)
È un algoritmo sequenziale che funziona in modo simile alla versione illustrata per il TSP.
A partire dal deposito, si costruisce un circuito alla volta aggiungendo, alla generica iterazione, il nodo ammissibile* più vicino all’ultimo nodo inserito nel circuito;
Quando non esistono più nodi ammissibili, si unisce l’ultimo nodo al deposito e si riprende la costruzione di un nuovo circuito.
(*) si intende per nodo ammissibile un nodo non ancora inserito in alcun circuito, la cui aggiunta al circuito in costruzione non viola il vincolo sulla capacità Q.
Algoritmi di inserimento
Nella versione sequenziale funzionano come nel TSP: a partire dal deposito, si costruisce un circuito alla volta scegliendo un nodo ammissibile (selezione) ed inserendolo nel circuito in costruzione (inserimento). In assenza di nodi ammissibili, si unisce l’ultimo nodo al deposito e si riprende la costruzione di un nuovo circuito.
Nella versione parallela si costruiscono contemporaneamente m‘ circuiti attraverso l’inserimento di un nuovo nodo in uno dei circuiti in costruzione; quindi si seleziona un nodo non appartenente ad alcuno dei circuiti (selezione) e lo si inserisce in una posizione all’interno di uno dei circuiti in costruzione (inserimento).
Anche in questo caso è possibile distinguere tra algoritmi:
Algoritmi Cluster First Route Second
Si basano sulla scomposizione del problema in due fasi successive.
La prima fase di clustering individua gruppi di nodi (clusters) tali che la somma delle domande associate ai nodi di ciascun gruppo non ecceda la capacità dei veicoli.
Nella fase di routing si risolve un TSP per ciascuno dei clusters di nodi individuato con l’aggiunta del deposito.
L’algoritmo sweep di Gillet e Miller risolve un VRP in cui i nodi sono posizionati in un piano e le distanze tra essi siano euclidee.
Se il deposito d corrisponde all’origine di un sistema di coordinate polari (ρ, θ), posta a caso una direzione θ=0, ad ogni nodo i è associabile una coppia (ρi, θi).
Algoritmi Route First Cluster Second
Si basano, al contrario, su una prima fase di routing nella quale si risolve un TSP con riferimento a tutti i nodi domanda. In questo modo si individua un circuito (giant tour) che non rispetta il vincolo sulla capacità.
La seconda fase di clustering riguarda la scomposizione del giant tour al fine di soddisfare i vincoli di capacità. A tale scopo si considera un verso di percorrenza arbitrario e si sceglie a caso un nodo di riferimento i*. A partire da i* e secondo il verso di percorrenza, si raggruppano i nodi in modo tale che la somma delle domande associate a questi nodi non ecceda la capacità dei veicoli.
Infine si cancellano gli archi che collegano nodi di gruppi differenti e si chiudono i percorsi collegando i nodi estremi direttamente al deposito, formando così un insieme di circuiti.
Si basa sulla procedura di saving per il TSP, con la differenza che due nodi estremi possono essere uniti se il nuovo circuito che si viene a creare sia tale da non violare il vincolo sulla capacità Q.
Poiché la soluzione iniziale a stella è una soluzione ammissibile, l’algoritmo rappresenta, in pratica, una procedura migliorativa.
Anche per il VRP si possono sviluppare algoritmi migliorativi di ricerca locale o metaeuristiche basate sulla definizione di opportune mosse.
Mosse tipiche per la risoluzione del VRP sono:
1. Introduzione al corso di Ricerca operativa II
2. Generalità e classificazione dei sistemi di produzione
3. La logistica dei sistemi di produzione
4. Introduzione all'ottimizzazione combinatoria
5. Fondamenti di teoria della complessità computazionale
6. Algoritmi euristici costruttivi e migliorativi
10. Problemi di Localizzazione
12. Introduzione alla gestione delle scorte
13. Modelli stocastici per la gestione delle scorte
14. Modelli discreti per la gestione delle scorte
15. Introduzione allo scheduling
16. Scheduling su macchina singola
17. Problemi di scheduling su macchina singola e su macchine parall...