Un approccio metaeuristico al Dial-A-Ride Problem: il caso del trasporto a chiamata a Genova. Cristiano Nattero



Documenti analoghi
Ottimizzazione Multi Obiettivo

Logistica o distribuzione

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Guida Compilazione Piani di Studio on-line

Capitolo 13: L offerta dell impresa e il surplus del produttore

Automazione Industriale (scheduling+mms) scheduling+mms.

Problemi complessi : come trovare una soluzione soddisfacente?

Dimensione di uno Spazio vettoriale

TECNICHE DI SIMULAZIONE

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Intelligenza Artificiale

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

03. Il Modello Gestionale per Processi

e-dva - eni-depth Velocity Analysis

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

Concetti di base di ingegneria del software

Documento di accompagnamento: mediane dei settori bibliometrici

Ricerca Operativa e Logistica

Ricerca Operativa A.A. 2007/2008

DALLA PARTE DEGLI ALTRI OPERATORI ECONOMICI. La nostra risposta alle esigenze della tua attività.

Barriere assorbenti nelle catene di Markov e una loro applicazione al web

Appunti sulla Macchina di Turing. Macchina di Turing

1. Considerazioni preliminari

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

VALORE DELLE MERCI SEQUESTRATE

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Cosa mette a disposizione dell'utente

Descrizione funzionale

2. Leggi finanziarie di capitalizzazione

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

Database. Si ringrazia Marco Bertini per le slides

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

MANUALE DELLA QUALITA Revisione: Sezione 4 SISTEMA DI GESTIONE PER LA QUALITA

SCELTA DELL APPROCCIO. A corredo delle linee guida per l autovalutazione e il miglioramento

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Progettaz. e sviluppo Data Base

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

mese richiesta

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

SOMMARIO Gruppo 4 - All right reserved 1

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

Il database management system Access

Domande a scelta multipla 1

STORE MANAGER.. LE COMPETENZE CARATTERISTICHE E I BISOGNI DI FORMAZIONE

Indice. pagina 2 di 10

TSP con eliminazione di sottocicli

Indice di rischio globale

Comune di San Martino Buon Albergo

risulta (x) = 1 se x < 0.

IN COLLABORAZIONE CON OPTA SRL

Progetto. Portale Turistico Regionale. Andrea Polini, Oliviero Riganelli, Massimo Troiani. Ingegneria del Software Corso di Laurea in Informatica

Innovazioni nella programmazione e valutazione ex ante. Paola Casavola DPS UVAL 11 luglio 2013

LE FUNZIONI A DUE VARIABILI

Capitolo 2. Operazione di limite

Norme per l organizzazione - ISO serie 9000

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

1) Descrivere dettagliatamente a quale problema di scheduling corrisponde il problema.

Capitolo 4 - Teoria della manutenzione: la gestione del personale

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Soluzione dell esercizio del 2 Febbraio 2004

IL SISTEMA INFORMATIVO

Generazione Automatica di Asserzioni da Modelli di Specifica

PROCEDURE - GENERALITA

Corrispondenze e funzioni

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

CSP- CSE RSPP FSL - FFSL - CTS CTSS*

Corso di Informatica

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

Più processori uguale più velocità?

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

PROFILO RIASSUNTIVO DELLE AREE

TSP con eliminazione di sottocicli

MANUALE DELLA QUALITÀ Pag. 1 di 6

Interesse, sconto, ratei e risconti

Progetto Campo Base. Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Corso di. Dott.ssa Donatella Cocca

Logistica magazzino: Inventari

La distribuzione Normale. La distribuzione Normale

IL RISCHIO D IMPRESA ED IL RISCHIO FINANZIARIO. LA RELAZIONE RISCHIO-RENDIMENTO ED IL COSTO DEL CAPITALE.

Tecniche di Prototipazione. Introduzione

Registratori di Cassa

Fasi di creazione di un programma

Software per Helpdesk

GIOCHI MATEMATICI PER LA SCUOLA SECONDARIA DI I GRADO ANNO SCOLASTICO

Corso di Matematica per la Chimica

Modulo: Scarsità e scelta

Algoritmi e strutture dati. Codici di Huffman

PROCEDURA OPERATIVA DI VALUTAZIONE DEI DIPENDENTI

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

CP Customer Portal. Sistema di gestione ticket unificato

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

ALLEGATO ALLA DELIBERA DI GIUNTA COMUNALE N. 35 DEL 31/03/2001

Transcript:

Un approccio metaeuristico al Dial-A-Ride Problem: il caso del trasporto a chiamata a Genova Cristiano Nattero October 24, 2008

i a Pino e Minuccia, faro, punto di riferimento

ii Abstract Questa tesi, in risposta ad un problema reale, propone un algoritmo per la soluzione approssimata del Dial-A-Ride Problem nella versione offline, multiveicolo, con mezzi eterogenei e con vincoli di capacitá multidimensionali. Il solver realizzato é un Large Neighborhood Search, un algoritmo metaeuristico di tipo trajectory based che consente di trovare soluzioni di buona qualitá in tempi rapidi. É stata scelta un architettura a framework per facilitare la manutenzione e l estensione ad altri casi: il solver puó essere facilmente impiegato per risolvere una vasta gamma di problemi di vehicle routing. L algoritmo é stato testato in maniera intensiva su dataset provenienti da casi reali.

Ringraziamenti Questa tesi é stata possibile grazie agli insegnamenti di Massimo Paolucci ed al supporto brillante di Davide Anghinolfi. La pazienza di Gian Luca Speroni ha permesso di eliminare la maggior parte di quei bug critici che avevano bloccato il lavoro. La supervisione di Luca Santiccioli ha dato una dignitá scientifica ai risultati. Il supporto impagabile di Daniela Napoli è stato indispensabile per completare questo testo. iii

Contents Ringraziamenti iii I Introduzione 1 1 Introduzione 2 1.1 Il contesto............................. 2 1.2 Il problema............................ 3 1.3 L approccio............................ 5 1.3.1 L algoritmo precedente.................. 5 1.3.2 Il nuovo algoritmo.................... 5 II Lo stato dell arte 7 2 Il problema 8 2.1 DARP e VRP........................... 8 2.1.1 Vehicle Routing Problem................ 8 2.1.2 Pickup and Delivery Problem.............. 9 2.2 Modellare il Dial-a-Ride Problem................ 10 2.2.1 Funzioni obiettivo.................... 11 2.2.2 Vincoli........................... 13 2.2.3 Variabili decisionali.................... 16 2.3 Un modello per il DARP..................... 16 3 Approcci al problema 20 3.1 Risolvere il Dial-A-Ride Problem................ 20 3.2 Single-vehicle........................... 22 3.2.1 Il caso statico....................... 22 3.2.2 Il caso dinamico..................... 23 3.3 Multi-vehicle........................... 23 3.3.1 il caso statico....................... 23 3.3.2 Il caso dinamico..................... 30 iv

CONTENTS v III Il modello ed il metodo risolutivo adottati 33 4 Il modello del problema specifico 34 4.1 Il modello di servizio....................... 34 4.2 Il modello del problema..................... 34 4.2.1 Le variabili decisionali.................. 35 4.2.2 La funzione di costo................... 35 4.2.3 I vincoli.......................... 35 4.2.4 La funzione di costo in dettaglio............ 37 4.2.5 Scelta dei parametri del modello............ 43 4.2.6 Alcune osservazioni.................... 44 5 L algoritmo 45 5.1 La scelta del metodo....................... 45 5.2 Descrizione dell algoritmo.................... 45 5.3 Il framework............................ 46 5.3.1 Criterio di arresto.................... 47 5.3.2 Criteri di accettazione.................. 47 5.3.3 Euristiche di rimozione.................. 51 5.3.4 Euristiche di inserimento................. 52 5.3.5 Tabù list.......................... 54 5.3.6 Scelta delle euristiche.................. 54 5.4 Generazione della soluzione iniziale............... 55 5.4.1 Scelta dei costi da confrontare.............. 56 5.5 Minimizzazione del numero di veicoli.............. 56 5.6 Temporizzazione......................... 56 5.6.1 Il singolo blocco..................... 57 5.6.2 Estensione all intero percorso.............. 58 5.6.3 Rispetto della fascia di disponibilitá.......... 58 5.6.4 Individuare i parking................... 59 6 Implementazione 61 6.1 Tecnologia............................. 61 6.2 Architettura............................ 61 6.2.1 Il modulo di input.................... 62 6.2.2 Il modulo del solver................... 62 6.2.3 Il modulo di output................... 62 6.2.4 Rappresentazione delle informazioni.......... 62 IV Risultati e conclusioni 65 7 Test e validazione 66 7.1 I dataset.............................. 66

CONTENTS vi 7.2 Tuning dei parametri....................... 67 7.3 Misura degli effetti della fase di rimozione........... 67 7.3.1 Dataset D......................... 67 7.3.2 Dataset S......................... 72 7.3.3 Conclusioni........................ 72 7.4 Generazione della soluzione iniziale............... 72 7.4.1 Sort insertion....................... 73 7.5 Robustezza dell algoritmo rispetto alla soluzione iniziale... 73 7.5.1 Una misura della robustezza............... 74 7.6 Criteri di accettazione...................... 78 7.7 Contributo delle singole euristiche................ 79 7.8 Tabù list.............................. 80 7.9 Minimizzazione del numero di veicoli.............. 80 7.10 Validazione dei risultati..................... 81 7.10.1 Analisi quantitativa di una soluzione.......... 81 7.11 Problemi aperti.......................... 93 7.12 I record da battere........................ 94 8 Conclusioni 95 Bibliografia 96 gli altri ringraziamenti... 110

List of Figures 2.1 La classificazione dei problemi di Vehicle Routing....... 8 2.2 una tassonomia dei problemi di Pickup e Delivery....... 11 2.3 Costruzione delle finestre temporali............... 13 2.4 Le richieste di servizio....................... 15 2.5 Il corrispondente grafo....................... 16 4.1 Il disagio arrecato all utente che ha richiesto un Pickup.... 39 4.2 Il disagio arrecato ad un utente che ha richiesto un Dropoff.. 39 4.3 Il disagio arrecato all utente in funzione del tempo di viaggio. 40 5.1 Una soluzione ammissibile..................... 48 5.2 La soluzione dopo la rimozione di due richieste......... 48 5.3 La nuova soluzione dopo il reinserimento............ 49 7.1 Shift rispetto all orario richiesto, soluzione iniziale....... 84 7.2 Shift rispetto all orario richiesto, soluzione finale........ 85 7.3 Shift rispetto all orario richiesto, confronto........... 86 7.4 Tempo trascorso a bordo, soluzione iniziale........... 86 7.5 Tempo trascorso a bordo, soluzione finale............ 87 7.6 Tempo trascorso a bordo, confronto............... 87 7.7 Massimo persone a bordo, soluzione iniziale........... 88 7.8 Massimo persone a bordo, soluzione finale............ 88 7.9 Massimo persone a bordo, confronto............... 89 7.10 Passeggeri serviti da ogni mezzo, iniziale............. 89 7.11 Passeggeri serviti da ogni mezzo, finale............. 90 7.12 Passeggeri serviti da ogni mezzo, confronto........... 90 7.13 Impiego dei mezzi, soluzione iniziale............... 91 7.14 Impiego dei mezzi, soluzione finale................ 91 7.15 Impiego dei mezzi, confronto................... 92 vii

List of Tables 7.1 Soluzioni rifiutate dopo la fase di remove............ 68 7.2 Miglioramento dell obiettivo con le richieste rimosse...... 69 7.3 Tempi di esecuzione in funzione di ulimit............ 70 7.4 Variazione del costo finale in funzione di ulimit......... 70 7.5 Incremento di richieste servite in funzione di ulimit....... 71 7.6 Tempi necessari alla generazione della soluzione iniziale.... 73 7.7 Robustezza alla soluzione iniziale dopo 1000 iterazioni..... 74 7.8 Valori di riferimento per i test da 10k iterazioni......... 74 7.9 Valore dell obiettivo nella soluzione finale............ 75 7.10 Richieste servite nella soluzione finale.............. 75 7.11 Costo dovuto al disagio...................... 75 7.12 Costo dovuto alle richieste non servite.............. 76 7.13 Mezzi impiegati nella soluzione finale.............. 76 7.14 Miglioramento percentuale della funzione obiettivo....... 76 7.15 Incremento delle richieste servite................. 76 7.16 Riduzione del disagio per i passeggeri.............. 76 7.17 Variazione costo non servite.................... 77 7.18 Riduzione dei mezzi impiegati.................. 77 7.19 Tempi di esecuzione........................ 77 7.20 Soluzioni rifiutate dopo la remove................ 77 7.21 Prestazioni del Simulated Annealing............... 79 7.22 Prestazioni della Diversificazione stocastica........... 79 7.23 Rapporto tra le prestazioni di S.A. e quelle di D.S....... 79 7.24 Minimizzazione dei veicoli..................... 81 7.25 Analisi quantitativa di una soluzione per il servizio scuolabus. 83 7.26 I migliori risultati ottenuti sul dataset D............ 94 7.27 I migliori comportamenti dell algoritmo............. 94 viii

Part I Introduzione 1

Chapter 1 Introduzione 1.1 Il contesto La domanda di mobilità urbana è sempre meno sistematica e sempre più erratica e le reti di trasporto pubblico di linea non sono sempre in grado di risponderle in maniera soddisfacente. Montanari et al. [2005] segnalano come con un modello di servizio di questo tipo fallisca anche l obiettivo, di strategica importanza per l attuazione dell accordo di Kyoto, di fornire alternative valide al trasporto privato. L intensificazione dei servizi di linea non è sempre una soluzione percorribile perché tende a produrre costi ingenti per le aziende di trasporto e per le municipalità coinvolte, e a generare esternalità, difficili da quantificare ma non trascurabili, in termini di inquinamento, di usura delle strade, di sicurezza e di aumento della congestione (sempre Montanari et al. [2005]). Un alternativa, che ha dimostrato la propria efficacia in molti contesti, è l integrazione del trasporto di linea con sistemi di trasporto flessibile, noti anche come Sistemi Innovativi di Trasporto (SIT) (Colorni et al. [1999]) o sistemi Demand Responsive Transportation (DRT), sistemi che in una certa misura riescono ad adattarsi alla domanda. I servizi a chiamata, in particolare, sono molto efficaci nel soddisfare le esigenze di mobilità di gruppi omogenei di utenti (disabili, anziani, studenti, turisti... ), soprattutto nelle aree o nelle fasce orarie a domanda debole. I DRT sono tecnologie e, come tali, non possono essere considerati buone soluzioni in senso assoluto ma richiedono una progettazione ad hoc ed una stretta integrazione nel contesto: diventano efficienti solo se inseriti in realtà attente alla riduzione dell uso del mezzo privato e alla razionalizzazione della logistica dei trasporti (Prileszky [2006], comune di Cork [2006], Takeuchi et al. [2005]). Sotto queste ipotesi i servizi flessibili possono essere dimensionati (Johnson [2006], Barceló et al. [2005], Caramia [2006]) e valutati (Benjamin [2006]) correttamente al fine di raggiungere un migliore compromesso tra la soddisfazione della domanda di mobilità e il conteni- 2

CHAPTER 1. INTRODUZIONE 3 mento dei costi di gestione (Montanari et al. [2005], Colorni et al. [1999]). I sistemi a chiamata permettono di realizzare una vasta gamma di servizi intermedi tra gli estremi del taxi e dell autobus di linea. Nei casi base gli utenti possono solo prenotare, con un certo anticipo, un viaggio tra alcune fermate predefinite; nei casi più evoluti invece il servizio è effettuato porta a porta e può essere richiesto anche in tempo reale o quasi. Gli utenti con esigenze specifiche inoltre hanno la possibilità di richiedere alcune opzioni aggiuntive: un accompagnatore, una pedana elettrica per le carrozzine, un seggiolino per bambini, eccetera... Servizi di questo tipo sono spesso realizzati con la partecipazione di più aziende di trasporto, coordinate da un agenzia incaricata di raccogliere le prenotazioni e di pianificare il servizio assegnando le richieste ai mezzi disponibili (aa. vv. [2005, 2004]). La razionalizzazione di questo assegnamento è di cruciale importanza ed è molto complessa: nei casi reali 1 il problema è quasi sempre ingestibile senza l ausilio di opportuni sistemi di supporto alle decisioni. 1.2 Il problema Ai servizi di trasporto flessibile sono associati problemi di ottimizzazione combinatorica, tipicamente problemi di vehicle routing, studiati in maniera formale a partire dai lavori di Daganzo [1978] e di Sexton [1979]. Il problema del trasporto a chiamata è noto in letteratura come Dial-a-Ride Problem (DARP) e richiede di soddisfare, in maniera ottima secondo opportune funzioni di costo, n richieste di viaggio avendo a disposizione m veicoli. Si tratta di un problema di ottimizzazione multi criterio con almeno tre obiettivi contrastanti: 1. offrire un servizio di qualità agli utenti, 2. servire quante più richieste possibile, 3. ridurre al minimo il costo di esercizio. Concettualmente il problema può essere di tipo statico oppure dinamico a seconda del momento in cui vengono raccolte le richieste di viaggio e le loro caratteristiche. Lipmann et al. [2004] hanno dimostrato in maniera formale che per una migliore gestione conviene investire per conoscere in anticipo e in dettaglio almeno un sottoinsieme delle richieste. In effetti nei casi reali, il DARP presenta entrambi gli aspetti, come segnalato già da Borndörfer et al. [1997]. Il modo più diffuso ed efficace di gestire il problema consiste quindi 1 In uno dei dataset utilizzati per i test le richieste giornaliere sono quasi 700, in un altro quasi 1000, ma non sono rari casi reali con 2000 o 3000 richieste. Si tenga inoltre presente che una richiesta corrisponde ad una o più persone, come nel caso in cui un utente prenoti un viaggio per sé e per tutta la famiglia.

CHAPTER 1. INTRODUZIONE 4 nell eseguire una pianificazione offline del servizio per le richieste note da tempo e, partendo da essa, gestire le richieste che si presentano in tempo reale tramite un algoritmo online. Il DARP appartiene all insieme dei Pickup and Delivery Problems with Time Windows (PDPTW ), cioè a quell insieme di problemi di routing e di scheduling su un grafo in cui le richieste sono rappresentate da una coppia di nodi (partenza ed arrivo), a ciascuno dei quali è associata una finestra temporale. Il problema consiste nell individuare un insieme di mezzi tra quelli disponibili e scegliere, per ognuno di essi, il miglior percorso che serva le richieste, nel rispetto dei vincoli temporali e di capacità di carico 2, minimizzando un opportuna funzione di costo. Nel caso base il costo è dato dalla somma delle lunghezze dei percorsi. Questi problemi generalizzano il problema del commesso viaggiatore (TSP) e ne ereditano la complessità. In particolare il problema di stabilire se una soluzione per il DARP sia ottima o meno è un problema NP-hard: Psaraftis et al. [1986] e Baugh et al. [1998] ne riportano la dimostrazione formale, mentre de Paepe et al. [2002] propongono una metodologia per automatizzare una classificazione più dettagliata della complessità di varie tipologie di DARP. Per una più completa introduzione ai problemi relativi ai servizi a chiamati si rimanda a Cordeau et al. [2007a]. Questa tesi è stata sviluppata nell ambito di una collaborazione tra il LIDO 3 e la software house genovese Softeco Sismat spa, 4 in risposta ad un esigenza di quest ultima. L azienda produce Personal Bus, un sistema informativo completo per la realizzazione di un agenzia per il trasporto flessibile ed aveva già un solver euristico per il DARP: ne abbiamo però sviluppato uno nuovo per meglio gestire istanze di grande dimensione. Parte dello sviluppo è stato condotto proprio in azienda attraverso uno stage. Il problema affrontato è il Dial-a-Ride Problem nella sua versione statica, con flotte di veicoli eterogenei tra loro e aventi vincoli di capacità multidimensionali 5. L algoritmo, il cui scopo è la pianificazione del servizio per batch di richieste di viaggio note in anticipo 6, è in grado di risolvere istanze di grosse dimensioni in maniera efficiente sia dal punto di vista dei tempi di esecuzione, sia da quello della qualità delle soluzioni, pur non garantendone l ottimalità. 2 Nel caso specifico in esame la capacità dei mezzi è di tipo multidimensionale: non modelliamo solo il numero di passeggeri a bordo ma l insieme delle risorse associate ad ogni richiesta: numero di posti a sedere, posti carrozzina, posti bambino... 3 Laboratorio di Informatica DIST Orsi, Università di Genova, facoltà di Ingegneria http://www.lido.dist.unige.it/ 4 http://www.softeco.it/ 5 La capacità di un mezzo, come spiegato nel capitolo 4, non è descritta solo dal numero di posti disponibili a bordo ma anche dal tipo di risorse quali ad esempio: pedana elettrica per i disabili, posti per bambini, accompagnatori,... 6 Tipicamente le prenotazioni sono raccolte fino alla sera prima.

CHAPTER 1. INTRODUZIONE 5 1.3 L approccio al problema Dati in input al solver le richieste di viaggio, la disponibilità dei mezzi ed i tempi di percorrenza tra i nodi della rete stradale, l algoritmo sviluppato risponde alla domanda di mobilità accoppiando le richieste di viaggio ai mezzi a disposizione e pianificando la sequenza e la temporizzazione delle operazioni da eseguire lungo il percorso. 1.3.1 L algoritmo precedente L algoritmo impiegato precedentemente è un euristica costruttiva di tipo insert, completamente deterministica, il cui funzionamento è abbastanza elementare: ad un operatore è richiesto di ordinare l elenco dei mezzi a disposizione e quello delle richieste di viaggio in input, manualmente o secondo alcuni attributi (ordine di prenotazione, orario di viaggio, numero di viaggiatori, richiesta di alcune risorse a bordo,... ). A quel punto il programma segue quell ordine per abbinare le richieste ai mezzi. Se una richiesta non può essere inserita nel punto specificato allora viene esclusa nelle successive fasi di instradamento e di temporizzazione, al termine delle quali è generata una soluzione. In output vengono fornite anche alcune statistiche di interesse trasportistico: i tempi di percorrenza, lo scostamento dai tempi di viaggio diretto, ecc... L operatore a quel punto può verificare quali richieste non siano state soddisfatte: il suo ruolo è fondamentale perché in base alle informazioni fornite e all esperienza deve provare a capire quali altre richieste siano particolarmente critiche, cambiare l ordinamento dell input e provare a rieseguire il solver, anche più volte, fino a trovare una soluzione più soddisfacente. In sostanza l algoritmo precedente genera un unica soluzione e affida ad un umano il compito di decidere se e come esplorarne l intorno. 1.3.2 Il nuovo algoritmo Il sistema fornito da Softeco Sismat si sta diffondendo in molte città europee e sono molti i casi in cui la dimensione delle istanze in input al solver è troppo elevata perché queste siano risolte all ottimo in tempi utili all erogazione del servizio. Si veda a questo proposito il lavoro di Cordeau and Laporte [2006]. Abbiamo quindi orientato la scelta su un algoritmo approssimato che fosse in grado di fornire soluzioni di buona qualità in tempi rapidi, rinunciando alla garanzia che la soluzione fornita sia sempre quella ottima. Abbiamo implementato un algoritmo di tipo Large Neighborhood Search che, nell ambito di un framework costruito ad hoc, fa uso di diverse euristiche di ricerca locali e di alcune tecniche metaeuristiche per intensificare o diversificare l esplorazione dello spazio delle soluzioni. Le scelte architetturali e quelle algoritmiche, testate su dataset provenienti dalla pi-

CHAPTER 1. INTRODUZIONE 6 anificazione dei servizi trasporto disabili e scuolabus nel comune di Genova, si sono dimostrate efficienti sia dal punto di vista dei risultati, sia dal punto di vista della flessibilità e della manutenzione. Attualmente Softeco sta integrando il solver nel proprio prodotto.

Part II Lo stato dell arte 7

Chapter 2 Il problema 2.1 il DARP e i Vehicle Routing Problem Il Dial-A-Ride Problem è il problema decisionale generato dalla gestione di un servizio di trasporto a chiamata. Formalmente il DARP è un problema di Vehicle Routing, più precisamente si tratta di un problema di Pickup e Delivery con finestre temporali (PDPTW ) e con in più alcuni vincoli aggiuntivi allo scopo di garantire la qualità del servizio agli utenti. 2.1.1 Vehicle Routing Problem La figura 2.1 è tratta da aa. vv. [2002]: i problemi sono classificati a partire dal caso base, il Capacitated Vehicle Routing Problem o CVRP: un insieme di clienti, rappresentati dai nodi di un grafo, deve essere servito impiegando una flotta di veicoli omogenei che partono tutti da un deposito iniziale. Il problema consiste nel trovare i percorsi di ogni veicolo che minimizzino la distanza totale percorsa. L unico vincolo considerato è quello CVRP Distance DCVRP Backhauling Time Windows Mixed Service VRPB VRPTW VRPPD VRPBTW VRPPDTW Figure 2.1: La classificazione dei problemi di Vehicle Routing 8

CHAPTER 2. IL PROBLEMA 9 della capacità dei veicoli. Si passa al Distance-Constrained Capacitated Vehicle Routing Problem o DCVRP se ad ogni veicolo si impone anche un vincolo sulla distanza massima percorribile. Se al CVRP si aggiungono, sotto forma di finestre, vincoli temporali di visita ai nodi, allora si ottiene il Vehicle Routing Problem with Time Windows o VRPTW. Il Vehicle Routing Problem with Backhauls o VRPB è un estensione in cui l insieme dei clienti è partizionato in due sottoinsiemi: il primo è l insieme di nodi di linehaul a cui devono essere consegnate delle risorse inizialmente presenti al deposito; dai nodi del secondo, detti di backhaul, invece vanno ritirate alcune risorse da riportare al deposito. I nodi di backhaul possono essere serviti solo dopo aver servito i nodi di linehaul. Infine nei Vehicle Routing Problem with Pickup and Delivery o VRPPD, come illustrato meglio nella sezione 2.1.2, ogni cliente è associato con un nodo in cui il mezzo deve prelevare una quantità di risorsa (nodo di Pickup) ed un nodo in cui il mezzo deve consegnare la medesima risorsa (nodo di Delivery) dopo averla prelevata. 2.1.2 Pickup and Delivery Problem Berbeglia et al. [2007] propongono uno schema per classificare i problemi di Pickup e Delivery (PDP), e lo usano per costruire la tassonomia rappresentata nella figura 2.2. Sia G = (V, A) un grafo orientato completo con un insieme di nodi V = 0,...,n, dove il nodo 0 rappresenta il deposito ed i rimanenti rappresentano i clienti. L insieme degli archi è definito come A = {(i, j) : i, j V, i j}. Ogni arco (i, j) A ha un costo non negativo c ij, tipicamente uguale al tempo di percorrenza dell arco. I costi c ij soddisfano la disuguaglianza triangolare. Sia H = {1,...,p} un insieme di risorse rappresentanti le merci o le persone da trasportare. Ogni nodo, incluso il deposito, può richiedere o fornire una quantità non negativa di risorse. Sia D = (d ih ) una matrice delle risorse in cui d ih è la quantità di risorsa h fornita dal nodo i e d ih sia la quantità di risorsa h richiesta al nodo i. Si assume che i V d ih = 0 per ogni risorsa h H, cioè, per ogni risorsa, la domanda e l offerta sono in equilibrio. Sia K = {1,..., m} un insieme di veicoli disponibili, ciascuno di capacità Q kh per la risorsa h. Il sottoinsieme T V rappresenta i nodi di scambio intermodali in cui un veicolo può scaricare una risorsa perché questa sia poi ritirata in seguito, magari da un altro veicolo. Un veicolo può sia scaricare sia prelevare l intera quantità di risorsa richiesta o disponibile ad un nodo. Un percorso è un circuito su alcuni nodi ed inizia e termina al deposito. I PDP, nella loro forma base, consistono nel costruire fino a m percorsi di veicoli tali che: 1. tutte le richieste di Pickup e Delivery sono soddisfatte; 2. nessun trasferimento intermodale è eseguito nei nodi V \T;

CHAPTER 2. IL PROBLEMA 10 3. il carico di ogni risorsa su ogni veicolo non eccede mai la capacità di quel veicolo per quella risorsa; 4. la somma dei costi dei percorsi è minimizzata. Gli autori utilizzano uno schema a tre campi per la classificazione dei problemi: {struttura visite veicoli}. Il campo struttura definisce il numero di origini e destinazioni delle risorse: nei problemi many-to-many (M-M) ogni nodo può essere sia una partenza, sia una destinazione per ogni risorsa; nei problemi one-to-many-to-one alcune risorse sono inizialmente disponibili al deposito e destinate ai vari nodi dove si trovano i clienti, in aggiunta, risorse disponibili presso i clienti sono destinate ad un deposito. Gli insiemi dei nodi-clienti di Pickup e Delivery non sono necessariamente disgiunti ma possono coincidere, come nel caso di consegna delle bevande e del ritiro dei vuoti. Infine, nei problemi one-to-one (1-1) ogni risorsa ha un origine ed una destinazione uniche, come nel trasporto disabili porta-a-porta. Il DARP si trova in questa categoria. Il secondo campo, visite, fornisce informazioni sul modo e sull ordine in cui le operazioni sono eseguite ai nodi: Pickup e Delivery possono essere simultanei (PD), possono essere eseguiti una sola o più volte (P/D) o possono avvenire solo separatamente (P-D). Infine il terzo campo indica quanti veicoli possono essere impiegati nella soluzione. Questo schema, pur senza essere esaustivo di tutti i casi, permette di raggruppare i PDP secondo le loro le caratteristiche principali. Il DARP è quindi un PDP di tipo {1-1 P/D }, dove significa che tipicamente il numero di veicoli necessari alla soluzione non è vincolato. Spesso per il DARP è usata l espressione Dropoff in luogo di Delivery. Ulteriori e più dettagliate classificazioni dei PDPTW statici si trovano in: Cordeau et al. [2006], Babb [2005], Røpke et al. [2005], Desaulniers et al. [2002], Mitrovic-Minic [1998], Savelsbergh and Sol [1995]. Modelli e classificazioni dei VRPTW si trovano in: Cordeau et al. [2007b], Vacic and Sobh [2002], Desaulniers et al. [2002], Desrosiers et al. [1995], Savelsbergh [1992]; Infine, per alcuni modelli ed una classificazione dei VRP dinamici si vedano: Beaudry et al. [2006], Fabri and Recht [2006], Colorni and Righini [2001], Psaraftis [1995, 1988] 2.2 Modellare il Dial-a-Ride Problem Come per ogni problema di ottimizzazione, la costruzione di un modello per il DARP richiede la definizione di una o più funzioni obiettivo e l individuazione delle variabili decisionali e dei vincoli a cui esse sono sottoposte. Su alcune di queste informazioni non vi è arbitrarietà, nel senso che sono definite dalle circostanze fisiche in cui il problema è descritto, si pensi ad esempio al numero di mezzi a disposizione o alla distanza di un percorso,

CHAPTER 2. IL PROBLEMA 11 Pickup-and-Delivery Problems 1-PDTSP 1-M-1-PDP SP VRPPD Q-DTSP DARP 1-M-1-PDP with Combined Demands 1-M-1-PDP with Single Demands General TSPB VRPB TSPPD Mixed VRPB SCP Lasso Hamiltonian(*) TSPSPD VRPSPD double-path (**) Figure 2.2: una tassonomia dei problemi di Pickup e Delivery mentre su altre è possibile compiere alcune scelte che determineranno il modello di servizio offerto: la scelta di imporre vincoli temporali rigidi o flessibili ne è un esempio. 2.2.1 Funzioni obiettivo Gli obiettivi da ottimizzare sono di tre tipi e riguardano il costo di gestione del servizio, la qualità del servizio offerto, la quantità di richieste accolte. Un altra tipologia di costo è rappresentata eventualmente dai cosiddetti vincoli soft, cioè da quei vincoli per cui una violazione viene accettata ma penalizzata. La scelta adottata pressoché universalmente consiste nello scrivere una funzione obiettivo che sia una somma pesata dei vari costi, fare in modo che questi siano funzioni lineari e utilizzare i pesi per permettere il confronto e stabilire priorità tra di essi. Questo approccio consente soprattutto di rapportare ogni costo ad un unica unità di misura che, tipicamente, è la valuta corrente 1. 1 Le aziende di trasporto dovrebbero possedere le informazioni necessarie per rispondere a domande tipo: quanti euro costa un secondo di ritardo?

CHAPTER 2. IL PROBLEMA 12 Costi di gestione Nei costi di gestione del servizio rientrano: il numero di veicoli impiegati, il numero di autisti necessari, la somma totale del numero di ore di lavoro di mezzi e/o autisti, la somma totale della durata di eventuali straordinari, numero e durata dell impiego eventuale di mezzi ed autisti extra, la somma totale della lunghezza o durata dei percorsi. In particolare, i dati di AMI, l azienda per la mobilità e le infrastrutture di Genova, indicano che il costo dovuto al personale incide per circa l 80% sul costo di esercizio. Qualità del servizio A seconda del modello di servizio offerto, gli utenti hanno la possibilità di specificare uno solo o entrambi gli orari - tipicamente sotto forma di finestre temporali - di partenza e destinazione; in questo secondo caso però i vincoli imposti dagli utenti rischiano di essere troppo severi per le aziende di trasporto che gestiscono il servizio: Cordeau and Laporte [2003] consigliano di permettere all utente di sceglierne solo uno. Visto che sovente uno stesso utente richiede sia un viaggio di andata, sia uno di ritorno, gli stessi autori, seguendo l esempio di Jaw et al. [1986], suggeriscono di permettere all utente di specificare una finestra temporale sull arrivo per il viaggio di andata e sulla partenza per il ritorno. Dal punto di vista del solver massimizzare la qualità del servizio offerto all utente significa minimizzarne il disagio, cioè minimizzarne la somma dei ritardi o degli anticipi dentro le finestre temporali specificate e la somma degli eccessi di tempi a bordo rispetto al tempo di viaggio diretto. Si noti che con un approccio di questo tipo può succedere che un utente venga molto penalizzato nel servizio per ottenere un costo complessivo più basso. Si possono prendere contromisure: Colorni et al. [1999] suggeriscono un criterio di normalizzazione dei costi per garantire un livello di qualità minimo; nel solver proposto viene adottato un criterio simile che verrà esposto più avanti. Richieste accolte In alcuni casi si preferisce privilegiare la qualità del servizio a scapito del numero di richieste servite, in altri si impone di soddisfare tutte le richieste. In generale, se è consentito il rifiuto, il numero di richieste non accolte è visto come un costo da minimizzare. Vincoli soft Si può accettare la violazione di alcuni vincoli penalizzandola, trasformandola cioè in un costo. In Bergvinsdottir et al. [2004] ad esempio è consentito ai mezzi di arrivare in anticipo rispetto ad una finestra temporale su un nodo di partenza e di sostare in attesa di servire una richiesta, però la

CHAPTER 2. IL PROBLEMA 13 MRT_i e_i l_i e_n+i l_n+i DRT_i Figure 2.3: Costruzione delle finestre temporali durata di questa attesa è penalizzata con un costo proporzionale al numero di persone a bordo. Come si vedrà, nel modello adottato è consentita la violazione delle finestre temporali ma la funzione che descrive il disagio arrecato al singolo utente non può superare una certa soglia. 2.2.2 Vincoli Modalità di servizio Il caso tipico del DARP non prevede la multimodalità per cui una richiesta è servita da un mezzo o non è servita affatto, non è quindi contemplato il caso in cui una richiesta sia servita da più mezzi. Finestre e vincoli temporali Il servizio alla partenza e alla destinazione deve essere effettuato entro le finestre temporali specificate. Se gli utenti specificano una sola finestra temporale su uno dei due viaggi, come descritto nella sezione 2.2.1, l altra finestra può essere costruita utilizzando il tempo di viaggio diretto ed il tempo di viaggio massimo, come illustrato in figura 2.3. Se è specificata la finestra di partenza: e n+i = e i + DRT i (2.1) l n+1i = l i + MRT i (2.2) se è specificata la finestra di arrivo è sufficiente invertire le equazioni: e i = e n+i MRT i (2.3) l i = l n+i DRT i (2.4) dove e i, l i, e n+i e l n+i sono, rispettivamente, gli istanti di apertura e di chiusura delle finestre temporali di partenza (i) e di arrivo (n + i). Queste equazioni possono essere impiegate, in una fase di preprocessing, per restringere finestre temporali inutilmente ampie, come segnalato in Røpke [2005b].

CHAPTER 2. IL PROBLEMA 14 Il tempo di viaggio massimo MRT i tra partenza (i) e arrivo (n + i) può essere fissato in vari modi in funzione del tempo di viaggio diretto DRT i, tipicamente è un polinomio di primo grado di DRT i. In alcuni casi è consentito ai mezzi di arrivare in anticipo ad un nodo di partenza ed attendere l apertura della finestra temporale per iniziare il servizio; in altri questa libertà è completamente negata, in altri ancora è concessa solo se il mezzo è vuoto. Altri vincoli temporali derivano dalla normativa sugli orari di guida e dai contratti di categoria: un modo semplice e diffuso di rappresentarli è quello di supporre che ad un mezzo corrisponda un autista, assunzione quasi sempre realistica. La flotta Il numero e le caratteristiche dei mezzi disponibili possono variare sensibilmente: in alcuni casi il servizio è effettuato da un insieme di veicoli omogenei per caratteristiche e capacità, in altri vengono impiegati i mezzi normalmente disponibili per il servizio di linea. È quindi necessario valutare l ammissibilità di ogni coppia (richiesta, mezzo), valutare cioè, per ogni mezzo a disposizione, la possibilità di servire ogni richiesta. Questa valutazione viene eseguita in una fase di preprocessing molto semplice il cui output è assunto come input del problema. La rete stradale Per risolvere il DARP è necessario conoscere i costi dei trasferimenti da un punto ad un altro della rete stradale. Questa informazione è tipicamente condensata in una matrice quadrata dei costi minimi origine-destinazione. Alcune strade sono percorribili da alcuni veicoli e non da altri, i costi minimi punto-punto dipendono quindi anche dal mezzo impiegato. Tali costi possono essere rappresentati sotto forma di distanze metriche ma, per l erogazione del servizio, è molto più utile avere a disposizione i tempi di percorrenza, tempi che variano nell arco della giornata a seconda della congestione del traffico, e nell arco dell anno a seconda degli eventi (fiere, manifestazioni... ). Alcune variazioni sono prevedibili (mercati, uscita da scuola,... ) altre no (gli incidenti, ad esempio): la matrice delle adiacenze non è legata in maniera semplice alle variazioni dei tempi di percorrenza dei singoli tratti stradali ed andrebbe ricalcolata ogni volta. Nella pratica la giornata viene divisa in alcune fasce orarie (Colorni et al. [1999]) e per ognuna di esse viene computata una matrice dei costi minimi punto-punto. Dal punto di vista modellistico i tempi di percorrenza sono quindi funzione, oltre che dell origine e della destinazione, anche dell istante di partenza e del tipo stesso di veicolo. Non è comunque raro il caso in cui venga impiegata, almeno in fase di pianificazione, un unica matrice per ogni fascia oraria

CHAPTER 2. IL PROBLEMA 15 e tipo di veicolo. Per far fronte a eventuali problemi inattesi, parte della responsabilità viene demandata prima al solver online e poi agli autisti e alla loro esperienza. Il grafo delle richieste Ogni richiesta è rappresentata da una coppia di punti su un grafo completo che non corrisponde direttamente alla rete stradale. Il procedimento per ottenerlo è il seguente: sulla rete stradale vengono individuati i nodi rilevanti per il servizio e con essi viene costruito un grafo completo dei cammini minimi tra i nodi. Si noti che già questo grafo ha una struttura diversa da quella fisica. Questa informazione viene quindi utilizzata per costruire il grafo delle richieste, un grafo completo in cui ad ogni richiesta sono associati due nodi (partenza e arrivo): se uno stesso luogo fisico corrisponde a più partenze o arrivi, sarà rappresentato da più nodi nel grafo del problema, e la distanza tra loro sarà nulla. Vi è quindi un esplosione dei nodi della rete ma la loro quantità rimane comunque lineare nel numero di richieste. La figura 2.4 rappresenta le richieste di servizio su una mappa, nella figura 2.5 si trova invece il corrispondente grafo del problema. In effetti non è un grafo completo: gli archi che vanno da un nodo di Dropoff al corrispondente nodo di Pickup non faranno mai parte di una soluzione. 1 4 1 5 3 4 2 3 2 5 Figure 2.4: Le richieste di servizio.

CHAPTER 2. IL PROBLEMA 16 1 1 4 2 3 3 5 5 3 4 2 Figure 2.5: Il corrispondente grafo. 2.2.3 Variabili decisionali Al solver spetta risolvere tre problemi: 1. raggruppare le richieste da servire con ogni mezzo impiegato e decidere, eventualmente, quali richieste non servire; 2. sequenziare i nodi per costruire un percorso per ogni mezzo; 3. temporizzare le operazioni. Bisogna quindi rappresentare il fatto che una richiesta sia servita o meno e da quale mezzo, quale sia l ordine con cui ogni mezzo visiti i nodi che gli sono stati assegnati e temporizzare le operazioni inserendo eventuali pause. Le prime due fasi presentano decisioni di tipo binario (servire o meno una richiesta, visitare il nodo i prima del nodo j), per la terza può essere sufficiente risolvere un problema di ottimizzazione a numeri reali a meno che, come nel caso in esame, non sia necessario scegliere se visitare un nodo di parcheggio invece di inserire una pausa. Nella sezione seguente formalizziamo variabili decisionali, vincoli e funzione obiettivo. 2.3 Un modello per il Dial-a-Ride Problem A titolo di esempio, riportiamo il modello con variabili decisionali a tre indici di Cordeau and Laporte [2004]. Si tratta di una formulazione molto

CHAPTER 2. IL PROBLEMA 17 diffusa, seppure con alcune varianti. Il problema affrontato in questo lavoro, descritto in maniera formale nella sezione 4.2, è più complesso sia perché contiene molti più vincoli, sia perché alcuni sono radicalmente diversi (ad esempio nel nostro caso è ammesso il rifiuto di una o più richieste e i vincoli di qualità del servizio offerto sono concettualmente differenti). Gli autori formulano il DARP come un problema su un grafo orientato G = (V, A). L insieme dei nodi V è {0,...,2n+1}, dove {0} e {2n+1} sono due copie del deposito, P = {1,...,n} è l insieme dei nodi di Pickup e D = {n + 1,...,2n} è l insieme dei nodi di Dropoff. Una richiesta è una coppia (i, n+i) con i P e n+i D. Ad ogni nodo v i V è associato un carico q i con q 0 = q 2n+1 = 0, q i 0 per i = 1,...,n e q i = q i n per i = n + 1,...,2n, ed una durata del servizio d i 0 con d 0 = d 2n+1 = 0. L insieme degli archi è definito come A = {(i, j) : i = 0, j P i, j P D, i j i n + j i D, j = 2n + 1}. La capacità del veicolo k è Q k e la durata massima del percorso k K è T k. Il costo dell attraversamento dell arco (i, j) col mezzo k è indicato con c k ij e il tempo di percorrenza dell arco (i, j) è indicato con t ij. Il tempo massimo di permanenza a bordo per le richieste è indicato con L e la finestra temporale associata al nodo i è indicata con [e i, l i ]. Il modello usa la variabile decisionale binaria a tre indici x k ij che vale 1 se e solo se l arco (i, j) è attraversato dal mezzo k K. Sia inoltre u k i l istante in cui il mezzo k inizia il servizio al nodo i, wi k il carico del veicolo k in partenza dal nodo i e ri k il tempo che l utente i (corrispondente alla richiesta (i, n + i) sul mezzo k) trascorre a bordo del mezzo k. Si noti che in una soluzione ammissibile x k n+i,i = 0 i V. Il modello è quindi definito nel modo seguente: min c k ijx k ij (2.5) k K i V j V

CHAPTER 2. IL PROBLEMA 18 sottoposto ai vincoli: x k ij = 1 i P (2.6) k K j V x k 0i = x k i,2n+1 = 1 k K (2.7) i V i V x k ij x k n+i,j = 0 i P, k K (2.8) j V j V x k ji x k ij = 0 i P D, k K (2.9) j V j V u k j (u k i + d i + t ij )x k ij i, j V, k K (2.10) w k j (w k i + q j )x k ij i, j V, k K (2.11) r k i u k n+i (u k + d i ) i P, k K (2.12) u k 2n+1 u k 0 T k k K (2.13) e i u k i l i i V, k K (2.14) t i,n+i r k i L i P, k K (2.15) max{0, q i } w k i min{q k, Q k + q i } i V, k K (2.16) x k ij {0, 1} i, j V, k K (2.17) In questa formulazione, i vincoli 2.6 e 2.8 assicurano che ogni richiesta sia servita esattamente dallo stesso veicolo, mentre i vincoli 2.7 e 2.9 garantiscono che ogni veicolo inizi e termini il proprio percorso al deposito. I vincoli dal 2.10 al 2.12 definiscono rispettivamente l inizio degli istanti di servizio, il carico sui veicoli e il tempo di viaggio degli utenti, mentre i vincoli dal 2.13 al 2.16 ne garantiscono l ammissibilità. Infine, il vincolo 2.17 impone che la variabile x k ij sia binaria. I vincoli 2.10 e 2.11 non sono lineari ma esistono alcune procedure, basate sull introduzione di maggioranti, per sostituirli con vincoli lineari. Sul tipo di modello Il modello impiegato è basato sul flusso di veicoli (aa. vv. [2002]) e richiede O( N 2 K) variabili binarie. Recentemente sono stati proposti modelli più compatti che si dimostrano più efficienti in caso di soluzione esatta del problema. In Røpke and Cordeau [2006] si trova un modello con meno variabili decisionali, in particolare con solo O( N 2 ) variabili decisionali binarie, i cui indici sono solo due: x ij = 1 se l arco (i, j) è percorso da un mezzo. Per distinguere quali richieste siano servite da un mezzo e quali da un altro è necessario introdurre nuovi vincoli il cui numero però cresce in maniera esponenziale al crescere di n. Questa nuova difficoltà viene aggirata generando dinamicamente i vincoli,

CHAPTER 2. IL PROBLEMA 19 in implementazioni ad hoc 2. L illustrazione di questi modelli esula dallo scopo di questa tesi sia perché rendono più difficile l introduzione di altri vincoli, quali ad esempio quelli sugli orari di guida, sia perché l approccio che abbiamo seguito è completamente diverso. Si può comunque consultare Cordeau et al. [2006] per un sommario. 2 proprio per questa ragione, fanno notare gli autori, questo modello non è implementabile in prodotti commerciali quali ad esempio CPLEX

Chapter 3 Approcci al problema 3.1 Risolvere il Dial-A-Ride Problem Risolvere il DARP significa affrontare tre problemi diversi: il clustering delle richieste che devono essere servite da un singolo mezzo; il sequencing dei nodi corrispondenti, cioè la costruzione del relativo percorso, e lo scheduling delle operazioni sui nodi. Alcuni algoritmi affrontano queste tre fasi in sequenza, altri adottano un approccio più olistico. Il DARP può essere risolto in maniera esatta (principalmente con la programmazione dinamica per il caso a singolo veicolo e con tecniche di programmazione matematica per il caso multi veicolo) o approssimata. L introduzione di tecniche approssimate, in grado di trovare (buone) soluzioni pur senza garantirne l ottimalità, è giustificato dal fatto che i casi reali presentano un numero talmente alto di richieste da rendere impraticabile l uso di teniche esatte, che non terminerebbero in tempo utile per l erogazione del servizio. Secondo Colorni et al. [1999], le tecniche euristiche applicate sono sostanzialmente classificabili in: algoritmi di ottimizzazione incompleta, che limitano euristicamente la ricerca nello spazio delle soluzioni; euristiche costruttive, che cercano di costruire una soluzione ammissibile partendo dai dati iniziali; euristiche di miglioramento, che tentano di migliorare una soluzione mediante successive modifiche locali; metaeuristiche di ricerca, che combinano algoritmi di ricerca locale con tecniche di intelligenza artificiale. Le euristiche costruttive funzionano inserendo uno o pochi utenti per volta in una soluzione in via di formazione. La miglior posizione di inserimento è scelta in base a cifre di merito. Si tratta prevalentemente dei cosiddetti 20

CHAPTER 3. APPROCCI AL PROBLEMA 21 metodi greedy: molto rapidi ma intrinsecamente miopi perchè non riescono a tenere conto dell effetto degli inserimenti successivi. Questi approcci determinano in genere soluzioni di qualità mediocre, in casi sfortunati anche pessima. Un primo miglioramento si ottiene applicando metodi di tipo regret, cioè metodi che in qualche modo riescono a prevedere l effetto delle richieste ancora da inserire, si veda in particolare Dessouky and Diana [2004]. Si può migliorare la scarsa qualità di una soluzione generata da euristica costruttiva esplorandone l intorno: per farlo si applica alla soluzione una mossa che porta in un altro punto dello spazio delle soluzioni. Esiste un ampia gamma di mosse, quelle tipiche consistono comunque nel cambiare l ordine di visita di due o più nodi in uno stesso percorso, oppure nel rimuovere una richiesta servita per poi reinserirla in una nuova posizione, sullo stesso mezzo oppure su un altro. La nuova soluzione viene accettata solo se migliora l obiettivo. Gli algoritmi di miglioramento terminano per loro natura in un ottimo locale, cioè nella migliore soluzione raggiungibile con quella definizione di intorno. Ulteriori miglioramenti non sono a quel punto più effettuabili senza cambiare tipo di mossa, cioè senza cambiare la definizione di intorno di una soluzione. Un approccio classico al DARP, abbastanza diffuso in passato, consiste nell uso di un euristica costruttiva per la generazione di una soluzione iniziale e nel suo raffinamento tramite un euristica di miglioramento. Per un ampia copertura delle euristiche di costruzione dei percorsi e di ricerca locale per i problemi di vehicle routing con finestre temporali, e per una bibliografia dettagliata sul loro impiego si vedano Bräysy and Gendreau [2005a, 2001a]. Gli algoritmi basati su metaeuristiche di ricerca non arrestano la ricerca nel primo minimo locale trovato ma proseguono l esplorazione dello spazio delle soluzioni accettando temporaneamente, secondo opportuni criteri, anche soluzioni peggiorative o non ammissibili; alcune di queste tecniche sono generali e molto diffuse, anche in altri ambiti, quali ad esempio il Simulated Annealing, la Tabù Search e gli Algoritmi Genetici. Per un ampia classificazione delle metaeuristiche applicate ai problemi vehicle routing con finestre temporali, e per una bibliografia dettagliata sul loro impiego si vedano Bräysy and Gendreau [2005b, 2001b]; altri algoritmi innovativi sono descritti in Bräysy et al. [2004], Cordeau et al. [2004], Chan [2004]. Ulteriori risorse per la progettazione di algoritmi metaeuristici si trovano in Lau et al. [2004], aa. vv. [2003], Jones et al. [2002], Czarnas et al. [2003], Haffari [2001], Moll et al. [1997], Thangiah [1995], Grosan and Abraham [2006], Røpke [2005a] e Toth and Vigo [1996]. Nel seguito analizziamo i principali approcci al DARP, distinguendoli in base al numero di veicoli a disposizione (singolo o multi veicolo) e alla modalità con cui vengono conosciute le richieste (problema statico o dinamico); ulteriori caratteristiche importanti dell approccio riguardano la modellazione

CHAPTER 3. APPROCCI AL PROBLEMA 22 e verranno evidenziate man mano: ottimizzazione singolo o multi-obiettivo, capacità dei veicoli uni- o multi-dimensionale, presenza di vincoli aggiuntivi. 3.2 Single-vehicle 3.2.1 Il caso statico Psaraftis [1980] ha formulato e risolto il problema con la programmazione dinamica, modellando il costo come una somma pesata della durata del percorso e del disagio arrecato agli utenti. Il disagio è anch esso espresso come una somma pesata di tempi di attesa prima del Pickup e durata del percorso. L utente non può specificare le finestre temporali, può invece imporre un massimo allo spostamento di posizione, limitando così la differenza tra la propria posizione nella lista delle chiamate e quella nel percorso del mezzo. Questo algoritmo è stato in seguito aggiornato dallo stesso autore (Psaraftis [1983]) per gestire finestre temporali - specificate dall utente - sugli orari di partenza e di arrivo. Come spesso succede con la programmazione dinamica, l algoritmo può risolvere in maniera ottima solo istanze relativamente piccole, poiché la procedura ha un ordine di complessità O(n 2 3 n ). L istanza più grande risolta con questo approccio contiene nove utenti. Nonostante la maggior parte delle istanze reali siano molto più grandi, questo approccio potrebbe essere utile come subroutine in algoritmo per il problema multi-veicolo, purché il numero di utenti di ogni percorso rimanga piccolo (Cordeau and Laporte [2006]). Sexton [1979] e Sexton and Bodin [1985a,b] considerano il DARP con un solo veicolo come un passo di risoluzione del caso multi-veicolo, una volta che gli utenti siano stati raggruppati in cluster. Il loro algoritmo itera tra la risoluzione di un problema di routing tramite un euristica di inserimento e la risoluzione del problema di scheduling associato, l alternanza di queste due fasi viene descritta formalmente nel contesto di una decomposizione di Benders. Gli autori minimizzano il disagio dell utente, rappresentato da una somma pesata di due termini: la differenza tra il tempo a bordo ed il tempo di viaggio diretto e la differenza (positiva) tra l orario di arrivo reale e quello desiderato (il primo è sempre maggiore del secondo: non sono consentiti arrivi in ritardo). Questo obiettivo è una funzione lineare degli istanti di inizio servizio ai nodi (Cordeau and Laporte [2006]). Gli autori riportano i risultati per molti dataset, provenienti da Baltimore e da Gaithersburgh, in cui il numero degli utenti oscilla tra 7 e 20. Il single-vehicle DARP è stato riformulato da Desrosiers et al. [1986] come un problema di programmazione matematica a variabili miste. Questa formulazione include le finestre temporali e la capacità dei veicoli, ed è risolta in maniera esatta usando la programmazione dinamica. Usando un doppio schema di etichettatura, gli autori sono stati in grado di individuare ed in seguito eliminare molti stati e transizioni di stato dominati. Soluzioni ottime sono state ottenute per casi con 40 richieste.

CHAPTER 3. APPROCCI AL PROBLEMA 23 Carrabs et al. [2006] hanno sviluppato un Variable Neighbourhood Search per il PDPTW utilizzando le euristiche proposte da Cassani and Righini [2004] e da Carrabs [2006]. Gli esperimenti su istanze di dimensione compresa tra 7 e 25 di cui era nota la soluzione ottima hanno fornito soluzioni con un costo che in media superava quello ottimo dello 0,19%. 3.2.2 Il caso dinamico Psaraftis [1980] ha considerato anche il caso dinamico: in questo problema le nuove richieste si presentano dinamicamente ma nessuna informazione è disponibile sulle richieste future. Quando una nuova richiesta si presenta all istante t una soluzione pianificata è resa disponibile. Tutte le operazioni temporizzate prima dell istante t sono già state processate e non sono più rilevanti; il problema è quindi la riottimizzazione della porzione di soluzione dall istante t in avanti, inclusa la nuova richiesta: questa ottimizzazione è ottenuta applicando lo stesso algoritmo per il caso statico. Una difficoltà pratica che origina da questo approccio consiste nella necessità di risolvere il problema all istante t prima dell arrivo della richiesta successiva, che potrebbe essere ingestibile se l algoritmo fosse lento rispetto alla successione di richieste. Un modo per aggirare il problema, proposto da Brotcorne et al. [2003] nel contesto della riallocazione dinamica delle ambulanze, è di precomputare molti scenari, usando algoritmi paralleli, in modo da anticipare le richieste future. Nonostante le sue limitazioni, il lavoro di Psaraftis sul DARP dinamico con un solo veicolo ha contribuito a definire i concetti usati nella ricerca successiva sui problemi dinamici di vehicle routing. Quadrifoglio et al. [2007] sviluppano una nuova euristica di inserimento per un servizio chiamato MAST, acronimo di Mobility Allowance Shuttle Transportation. Il servizio è un ibrido tra quello di linea e quello a chiamata ed ha costi più contenuti di un DAR. Gli autori indagano soprattutto i problemi di modellazione del servizio, prima ancora di quelli di ottimizzazione. 3.3 Multi-vehicle Sul caso multi-veicolo, più realistico, è stata condotta molta più ricerca. Anche questa sezione è divisa nei casi statico e dinamico. 3.3.1 il caso statico Una delle prime euristiche per il DARP statico con molti veicoli è stata proposta da Jaw et al. [1986]. Il modello considerato da questi autori impone una finestra temporale sull orario di arrivo per i viaggi di andata ed una sull orario di partenza per quelli di ritorno. Un tempo massimo di viaggio, calcolato come funzione lineare del tempo di viaggio diretto, è imposto ad ogni richiesta. Inoltre, i veicoli non sono autorizzati a sostare se