analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su...

60
Universit ` a degli Studi di Trieste Dipartimento di Ingegneria e Architettura Corso di Studi in Ingegneria Informatica Tesi di Laurea Magistrale Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion Studente: Marco Furlanetto Relatore: Prof.essa Maria Pia Fanti Correlatori: Prof. Walter Ukovich Dott. Massimiliano Nolich ANNO ACCADEMICO 2015–2016

Upload: marco-furlanetto

Post on 21-Mar-2017

13 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Universita degli Studi di Trieste

Dipartimento di Ingegneria e Architettura

Corso di Studi in Ingegneria Informatica

Tesi di Laurea Magistrale

Analisi e sviluppo di un algoritmo di

pianificazione ordini

di una ditta di trasporto container su camion

Studente:Marco Furlanetto

Relatore:Prof.essa Maria Pia FantiCorrelatori:Prof. Walter UkovichDott. Massimiliano Nolich

ANNO ACCADEMICO 2015–2016

Page 2: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Indice

1 Introduzione 11.1 Descrizione del problema . . . . . . . . . . . . . . . . . . . . . . . 11.2 Panoramica tesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Il trasporto delle merci 22.1 Il trasporto marittimo . . . . . . . . . . . . . . . . . . . . . . . . 22.2 Il trasporto terrestre . . . . . . . . . . . . . . . . . . . . . . . . . 42.3 L’azienda di trasporto . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3.1 Tipi di viaggio . . . . . . . . . . . . . . . . . . . . . . . . 62.4 Letteratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Il Generatore degli Ordini 103.1 Struttura del programma . . . . . . . . . . . . . . . . . . . . . . 10

3.1.1 Matrice delle Distanze . . . . . . . . . . . . . . . . . . . . 103.1.2 La generazione degli ordini . . . . . . . . . . . . . . . . . 13

3.2 Visualizzazione ordini . . . . . . . . . . . . . . . . . . . . . . . . 143.2.1 OpenLayers . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.2 GeoJSON . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2.3 Implementazione . . . . . . . . . . . . . . . . . . . . . . . 163.2.4 Pagina Web . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3 Analisi ordini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Algoritmo sviluppato 204.1 Problema multi-obiettivo . . . . . . . . . . . . . . . . . . . . . . 204.2 Richiamo sulla programmazione dinamica . . . . . . . . . . . . . 20

4.2.1 Formalizzazione del metodo . . . . . . . . . . . . . . . . . 204.3 Realizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.3.1 Semplificazioni rispetto alla realta . . . . . . . . . . . . . 224.3.2 Definizione dell’orizzonte temporale . . . . . . . . . . . . 22

4.4 Sviluppo del programma . . . . . . . . . . . . . . . . . . . . . . . 244.4.1 Analisi ordini . . . . . . . . . . . . . . . . . . . . . . . . . 254.4.2 Definizione delle strutture dati . . . . . . . . . . . . . . . 294.4.3 Definizione dello stato . . . . . . . . . . . . . . . . . . . . 324.4.4 Assegnazione . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.5 Visualizzazione su mappa . . . . . . . . . . . . . . . . . . . . . . 35

i

Page 3: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

5 Risultati 375.1 Visualizzazione su mappa . . . . . . . . . . . . . . . . . . . . . . 375.2 Analisi assegnazioni flotta . . . . . . . . . . . . . . . . . . . . . . 38

5.2.1 Dove l’algoritmo funziona meglio . . . . . . . . . . . . . . 395.2.2 Dove l’algoritmo funziona peggio . . . . . . . . . . . . . . 415.2.3 Altre analisi . . . . . . . . . . . . . . . . . . . . . . . . . . 435.2.4 Considerazioni sui risultati . . . . . . . . . . . . . . . . . 49

6 Conclusioni 506.1 Elementi non considerati . . . . . . . . . . . . . . . . . . . . . . . 506.2 Considerazioni generali . . . . . . . . . . . . . . . . . . . . . . . . 506.3 Possibili miglioramenti . . . . . . . . . . . . . . . . . . . . . . . . 516.4 Raggiungimento dello scopo . . . . . . . . . . . . . . . . . . . . . 51

ii

Page 4: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Capitolo 1

Introduzione

Lo scopo della tesi e la realizzazione di un programma in grado di ottimizzareil problema della pianificazione degli ordini per una ditta di trasporto di mercisu camion.Tale programma deve generare casualmente varie tipologie di ordini distribuitiin una settimana lavorativa e successivamente ottimizzare l’assegnazione deiviaggi agli autisti in modo da ridurre le distanze a vuoto percorse.Si vuole dimostrare che attraverso l’utilizzo della programmazione dinamica sipuo migliorare la pianificazione di una flotta coprendo un numero maggiore diordini e allo stesso tempo percorrendo meno chilometri.

1.1 Descrizione del problema

Per la realizzazione di questo progetto si considera un’azienda di trasporto con-tainer su camion. La pianificazione dei viaggi viene generalmente fatta su cartada una persona specializzata definita Pianificatore: questa operazione consi-ste nell’analizzare gli ordini che attualmente non sono stati assegnati e valutarequal e la migliore combinazione viaggio - autista.Questo metodo tuttavia viene applicato considerando gli ordini piu vicini tem-poralmente e per questo motivo le assegnazioni non permettono un uso efficientedella flotta lungo la settimana lavorativa.

1.2 Panoramica tesi

La tesi sara sviluppata nel seguente modo: nel Capitolo 2 si descrive in lineagenerale il problema del trasporto delle merci e si vuole analizzare lo statodell’arte sugli algoritmi di gestione di flotte di veicoli esaminando la letteraturaesistente; nel Capitolo 3 si descrive il programma di generazione di ordini; nelCapitolo 4 si descrive il metodo utilizzato per la pianificazione dei viaggi e la suaimplementazione; nel Capitolo 5 si analizzano i risultati forniti dall’algoritmo enel Capitolo 6 le conclusioni.

1

Page 5: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Capitolo 2

Il trasporto delle merci

2.1 Il trasporto marittimo

Il trasporto mondiale delle merci e svolto principalmente da compagnie di na-vigazione 1.Il tipo di merce trasportato influisce sul tipo di nave: in particolare per iltrasporto di merci containerizzare si utilizzano specifiche navi chiamate por-tacontainer, mostrate in figura 2.1. In questo caso la compagnia dispone nonsolo di proprie navi ma anche di contenitori.

Figura 2.1: Passaggio di due navi portacontainer nella Baia di San Francisco [2]

L’utilizzo per scopi marittimi del contenitore fu un’idea risalente all’anno1956 grazie ad un’intuizione del signor Malcolm McLean, in figura 2.2, chevenne definito il padre della containerizzazione.

1Tutte le informazioni della sezione sono state tratte dal libro Container shipping : viaggiointorno al contenitore marittimo [1]

2

Page 6: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Figura 2.2: Il sig. Malcolm McLean al Port Newark–Elizabeth Marine Terminal,1957. [3]

Il contenitore e una unita di base del trasporto delle merci in grado, graziealla dotazione di dispositivi che consentono il sollevamento ed il bloccaggio,di essere caricata sia su mezzi marittimi sia su mezzi terrestri.

Figura 2.3: Container della compagnia marittima MSC. [1]

Le misure standard di container, per l’utilizzo a livello mondiale, venne-ro definite nel 1967 secondo le norme ISO (International Organization forStandardization):

• 20 piedi (20’): larghezza 2,438 m, altezza 2,591 m, lunghezza 6,058 m,volume interno 33 m3;

• 40 piedi (40’): larghezza 2,438 m, altezza 2,591 m, lunghezza 12,192 m,volume interno 66 m3.

A questi due modelli venne aggiunto anche il contenitore da 40’ con altezzamaggiore chiamato high cube alto 2,896 m con un volume interno di 76 m3.Le norme ISO classificano altri tre contenitori di lunghezza maggiore, princi-palmente utilizzati negli Stati Uniti:

3

Page 7: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

• 45’: lunghezza 13,7 m, introdotto nel 1980;• 48’: lunghezza 14,6 m;• 53’ (chiamato Ocean 53): lunghezza 16,2 m, realizzato nel 2007.

Particolari esigenze commerciali hanno richiesto la realizzazione di altri tipi dicontenitori, chiamati special equipment :

• 20’ e 40’ open top, la cui sommita e coperta da un telone (tarpaulin);• flat rack, pianale con sponde fisse o ribaltabili;• platform, contenitore piattaforma;• heavy loader, contenitore con portata superiore alle norme ISO (27 o

33 tonnellate);• reefer container, contenitore per carico refrigerato a temperatura con-

trollata;• tank container, contenitore per il trasporto di liquidi;• bulk container, contenitore per il trasporto di rinfuse.

2.2 Il trasporto terrestre

Lo scambio tra trasporto marittimo e terrestre viene effettuato nei porti in spe-cifiche aree per la movimentazione e lo smistamento dei contenitori chiamatecontainer terminal 2.La movimentazione viene effettuata con mezzi speciali che, grazie alla standar-dizzazione delle dimensioni e dei sistemi di aggancio, possono operare il solleva-mento e lo spostamento ad alte velocita. Tra i mezzi principali vi sono le gruportacontainer di banchina, in figura 2.4, per l’imbarco/sbarco dei contenitoridalle navi.Vi sono poi tipologie di gru specifiche per caricare/scaricare efficientemente icontenitori da treni e camion.

2Tutte le informazioni della sezione sono state tratte dal libro Container shipping : viaggiointorno al contenitore marittimo [1]

4

Page 8: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Figura 2.4: Gru portacontainer al Porto di Shanghai. [4]

Nel corso degli anni sono nati terminal terrestri, denominati interporti,che rappresentano un punto di servizio intermodale nave-ferrovia-strada. Que-ste strutture rappresentando un’estensione del porto nel suo stesso entroterra esono posizionate in punti strategici rispetto ad un’area industriale e commer-ciale: dispongono di superfici molto ampie che comprendono piazzali per lamovimentazione dei contenitori, per l’interscambio gomma-rotaia e per altri nu-merosi servizi. Grazie ad allacciamenti autostradali e ferroviari viene consentitoun accesso diretto ai mezzi di trasporto.

Figura 2.5: Interporto di Verona Quadrante Europa. [5]

5

Page 9: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

2.3 L’azienda di trasporto

Le compagnie marittime, per spostare i contenitori nell’entroterra si affidano aditte di trasporto su camion; queste hanno in carico la gestione del trasportodei contenitori tra porti/interporti per garantire il servizio porta a porta alleaziende che lo richiedono.Solitamente all’interno dell’azienda il pianificatore procede come segue:

• nella mattina si risolvono eventuali problematiche sorte durante la nottatae per verificare la fattibilita di ulteriori giri;

• verificare se i viaggi assegnati il giorno prima richiedono una modifica inbase allo stato attuale della flotta;

• controllare quali viaggi devono ancora essere coperti;

• nel pomeriggio si procede con le nuove assegnazioni, avviando il lavoro dipianificazione per il giorno successivo considerando per primi gli autistidisponibili.

Il pianificatore quindi lavora cercando di tenere conto dell’intera settimanama pone sempre particolare attenzione alla giornata successiva.

2.3.1 Tipi di viaggio

La ditta di trasporto in oggetto opera viaggi definiti ABC, dove A e C rap-presentano il porto/interporto e B rappresenta il luogo dove la merce vienescaricata/caricata.Lo spostamento del contenitore carico dal porto/interporto al B viene defini-to viaggio di importazione merce (o import), viceversa lo spostamento di uncontenitore vuoto viene chiamato viaggio di esportazione (o export).

Viaggio import

Nei viaggi import l’autista deve recarsi al porto/interporto stabilito per prele-vare il container contenente la merce, trasportarlo e scaricarlo presso l’aziendache ha effettuato la richiesta ed infine depositare il vuoto al porto/interpor-to stabilito: e quindi fondamentale che venga rispettato l’orario richiesto dalcliente.

6

Page 10: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

A

B

C

Scaricare contenuto contenitore

Depositare contenitore vuoto

Prelevare contenitore pieno

Figura 2.6: Viaggio import

Viaggio export

Nei viaggi export l’autista deve prelevare il container vuoto al porto/interportostabilito, recarsi all’azienda che ha effettuato la richiesta per caricare la merce edinfine trasportarlo al porto/interporto stabilito: in questo caso e fondamentalerispettare gli orari imposti dalle compagnie marittime/ferroviarie.

7

Page 11: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

A

B

C

Caricare contenitore

Depositare contenitore pieno

Prelevare contenitore vuoto

Figura 2.7: Viaggio export

Altri tipi di viaggio

I viaggi effettuati dalla ditta di trasporto si possono classificare in ulterioritipologie; una distinzione viene fatta in base al fatto se il punto A e il punto Ccoincidono:

• se C ≡ A si parla di viaggio round trip;

• se C 6= A si parla di viaggio one way.

Un’altra distinzione viene fatta in base agli accordi tra compagnia marittima editta di trasporto:

• se la compagnia marittima cura l’intero trasporto terrestre del contenitorepieno si parla di viaggio carrier;

• si parla invece di viaggio merchant quando il trasporto terrestre vienegestito dalla ditta di trasporto e la compagnia marittima mette solamentea disposizione il contenitore vuoto nel suo terminal.

Per motivi di semplificazione queste tipologie non vengono considerate softwaredi pianificazione.

2.4 Letteratura

La letteratura riguardante i modelli e gli algoritmi per la risoluzione del proble-ma della gestione dei camion, ed in particolare sulla sua versione dinamica, e

8

Page 12: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

molto estesa. La maggior parte e dedicata alla risoluzione di sequenze di proble-mi deterministici che riflettono solamente cio che e noto in un istante di tempo(vedere Psaraftis (1995) [6]; Powell, Jaillet e Odoni (1995) [7]; Gendreau e Pot-vin (1998) [8]; Larsen, Madsen e Solomon (2002) [9]).L’articolo di Ichousa, Gendreau e Potvin (2006) [10] propone politiche per ilrouting dinamico di veicoli ottimizzato nel tempo; questa ricerca si focalizza supolitiche miopi che regolano il comportamento attuale basandosi su stime pro-babilistiche di domande future. Su Secomandi (2000) [11] e Secomandi (2001)[12] si forniscono trattamenti piu formali per le politiche sulla risoluzione di pro-blemi stocastici di routing; questa linea di ricerca pero e limitata ai problemi dirouting sul veicolo singolo.

Il problema di routing degli autisti in modo che questi possano fare ri-torno a casa ha ricevuto poca attenzione: Caliskan e Hall (2003) [13] proponea riguardo un metodo deterministico, ma non e in grado di catturare tutte lecaratteristiche degli autisti (eta, competenze ecc.) ed inoltre non e in gradodi far tornare a casa gli autisti quando sono presenti le tipiche incertezze checaratterizzano il trasporto delle merci.Le ricerche di Desrosiers, Solomon e Soumis (1995) [14] e Desaulniers et al.(1998) [15] si focalizzano sulla pianificazione dei programmi di volo per aereiriuscendo a catturare sia tutte le caratteristiche dei piloti sia tutte le regole dilavoro. Tuttavia questi problemi sono deterministici e traggono beneficio dalfatto che le operazioni aeronautiche sono altamente programmate.

Una separata linea di ricerca si e focalizzata sullo sviluppo di modelli in gradodi produrre soluzioni ottime per un intero periodo di pianificazione. Un’intro-duzione a differenti modelli e strategie algoritmiche per i problemi di gestionedinamica della flotta si trova negli articoli di Powell (1988) [16] e Powell, Jaillete Odoni (1995) [7].I primi studi in questa area si focalizzavano sulla gestione di grandi flotte diveicoli relativamente simili: questi problemi potevano essere formulati comemodelli spazio-temporali (dove un nodo rappresentava un punto nello spazio enel tempo) e potevano essere risolti come un problema di rete se c’era un solotipo di veicolo (vedere White (1972) [17]), oppure potevano essere risolti comeproblemi di flusso multicommodity se c’erano piu tipi di veicoli (vedere Tapieroe Soliman (1972) [18] e Crainic, Ferland e Rousseau (1984) [19]).Questi modelli pero non permettono di modellare tutte le caratteristiche degliautisti.Sono state trovate due ricerche che piu si avvicinano al problema di questa tesi:la prima e stata fatta da Spivey e Powell (2004) [20], che fornisce un modelloformale per il problema della gestione stocastica e dinamica degli autisti; laseconda e stata fatta da Simao et al. (2009) [21] che si basa sul modello dellaricerca precedente introducendo ulteriori tecniche matematiche.Ad oggi nessuna ricerca si e focalizzata sul problema della gestione della flottadove i viaggi sono di tipo ABC.

9

Page 13: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Capitolo 3

Il Generatore degli Ordini

In questo capitolo si descrive il programma per la generazione degli ordini.L’output deve rispettare tre specifiche principali:

• tipologia viaggi ABC

A porto/interporto di partenzaB posizione del clienteC porto/interporto di arrivo

• distribuzione ordini per tutta la settimana lavorativa• orario di B entro 8:00 - 19:00

3.1 Struttura del programma

Il generatore degli ordini e composto da piu programmi, organizzati nel modoseguente:

1. realizzazione matrice delle distanze2. generazione ed analisi ordini3. parsing per visualizzazione su pagina Web

3.1.1 Matrice delle Distanze

Il primo obiettivo del Generatore e la realizzazione della Matrice delle Di-stanze.Questo strumento permette agli altri programmi di ottenere velocemente la di-stanza tra due citta, deve cioe essere strutturata in modo che l’elemento (i, j)rappresenta la distanza tra le citta i e j. Si ottiene cosı una matrice n × nsimmetrica con diagonale nulla, dove n e il numero di citta.

Il calcolo delle distanze viene effettuato dal Distanziere (figura 3.1): questoprogramma accetta come input due valori interi che rappresentano i codici cheidentificano le citta e fornisce come output la distanza in ettometri (hm) comevalore double. Questo programma e stato scritto nel linguaggio C++ ed e sta-to possibile utilizzarlo all’interno del generatore trasformandolo in una libreria(dll) ed importandolo nel codice C#.

10

Page 14: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

DISTANZIERE

CODICE CITTA 1

CODICE CITTA 2

DISTANZA (IN HM)

Figura 3.1: Il Distanziere

I codici delle citta vengono prelevati da un apposito file CSV (comma sepa-rated value) mostrato in figura 3.2. Come si vede dall’immagine per ogni cittasono memorizzate 5 informazioni: il nome, la sigla della provincia, il codice e lecoordinate geografiche.

Figura 3.2: Struttura file citta

Definizione dei porti e degli interporti

Dal file in figura 3.2 non e possibile distinguere univocamente tutte le cittaportuali (o interportuali), infatti alcune citta come Trieste e Padova hanno ilcodice che identifica esclusivamente la zona portuale (o interportuale) (TriestePorto, Padova Interporto, ecc), mentre citta come Marghera e Segrate, adesempio, non vengono considerate.E stato quindi necessario definire staticamente tutte le citta portuali (o inter-portuali) di interesse per il generatore; esse sono Genova, La Spezia, Livorno,Marghera, Trieste, Bologna, Segrate, Verona, Padova e Fernetti.

11

Page 15: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

La Lista delle Citta

Una volta quindi definite le citta portuali e le province di interesse per il pro-gramma si procede alla lettura del file csv per la realizzazione della Lista delleCitta.

PORTO / INTERPORTO?

APRI FILE CITTA’

LEGGI RIGA FILE

PROVINCIA CONSENTITA?

MEMORIZZA CITTA’

ULTIMA RIGA?

CHIUDI FILE

NO NO

SI SI

NO

SI

Figura 3.3: Creazione lista casuale citta

Come mostrato in figura 3.3 un ciclo infinito legge ciascuna riga 1; per ciascu-na di queste ci si chiede se si tratta di un porto/interporto oppure se appartienead una provincia consentita.Per effettuare il primo test si confronta il nome della citta prelevato dalla rigacon la lista dei porti/interporti: se l’esito e positivo il field booleano viene set-tato a true, viene creata una nuova istanza della classe che viene aggiunta allaLista delle Citta e si passa alla riga successiva; se l’esito e negativo il fieldbooleano viene settato a false e si controlla se il campo provincia prelevatocoincide con uno degli elementi della lista delle province consentite: se l’esitoe positivo si crea una nuova istanza e la si aggiunge alla Lista delle Citta,altrimenti si passa alla riga successiva.

Filtraggio numero citta

Un altro aspetto importante e la limitazione del numero totale di citta da con-siderare: per ridurre i tempi di creazione della Matrice delle Distanze, che con-terrebbe piu di 200 milioni di elementi, si e deciso di considerare casualmentedei comuni appartenenti a province scelte arbitrariamente.

1In realta il file contiene anche citta straniere, ma ai fini della tesi si e deciso di prelevaresolo quelle italiane, che sono 16070

12

Page 16: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Realizzazione della Matrice

A questo punto si ha una lista che contiene porti, interporti e citta appartenentialle province consentite (inclusi i capoluoghi); per ogni citta della lista vienecalcolata la distanza da tutte le altre citta tramite il Distanziere. 2

Questa matrice infine viene salvata sul file binario matrice.dat e i nomi dellecitta corrispondenti nel file di testo header.txt.

3.1.2 La generazione degli ordini

La realizzazione della Lista delle citta e della Matrice delle Distanze per-mette di procedere alla generazione degli ordini.Essi vengono generati in modo da coprire tutta la settimana lavorativa a partiredalle 8:00 del lunedı. Vengono generate quattro istanze di viaggi:

• ONEWAY brevi• ONEWAY lunghi• ROUND TRIP brevi• ROUND TRIP lunghi

Un viaggio viene considerato breve quando la distanza totale stimata percorsadal camion e inferiore a 200 km, viene invece considerato lungo quando la di-stanza puo raggiungere 800 km.Ai fini del calcolo di potenziali triangolazioni (spiegate piu in dettaglio nelcapitolo 3.3) vengono generati casualmente altri due parametri:

• CARRIER / MERCHANT• CONTAINER OWNER

Un viaggio e di tipo CARRIER quando l’intera tratta e pagata dalla compa-gnia marittima, e di tipo MERCHANT invece quando il costo del viaggio e acarico della ditta di trasporto.Il CONTAINER OWNER rappresenta il vettore marittimo proprietario delcontenitore utilizzato per il viaggio (sono stati scelti arbitrariamente MAERSK,MSC, EVERGREEN).In figura 3.4 si mostra la struttura generale del programma:

GENERATORE

GENERATORE MATRICE

csv

DISTANZIERE

MATRICE

HEADER

RISULTATILETTURA FILE E GENERAZIONE

ORDINI

ANALIZZATORETRIANGOLAZIONI

Figura 3.4: Dalla generazione all’analisi

Il risultato in output e rappresentato da un file di testo (esempio in figura3.5), ciascuna riga rappresenta un ordine ed e strutturata come segue:

2Se le due citta coincidono, il Distanziere ritorna 0

13

Page 17: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

IMPORT;MERCHANT;ROUNDTRIP;MSC;

MARGHERA;VENEGAZZU’;TV;MARGHERA;

49,5;49,5;99;

24/10/2016;08:00;24/10/2016;09:00;25/10/2016;10:00;

12,224575;45,463936;12,092204;45,779556;12,224575;45,463936

La prima riga contiene informazioni generali dell’ordine, la seconda contienele citta (indicando anche la provincia per il punto B), la terza riga indica ledistanze tra le citta e la distanza totale, la quarta riga indica le date e gli orariprevisti per ogni citta ed infine la quinta riga indica le coordinate geografiche diogni citta. Il risultato di una generazione di ordini ONEWAY lunghi e mostratoin figura 3.5:

Figura 3.5: File ordini generati

3.2 Visualizzazione ordini

Per capire meglio come funziona il Generatore si e deciso di visualizzare le cittascelte per gli ordini su una mappa, visualizzando il percorso che dovrebbe essereeffettuato dal camion.

3.2.1 OpenLayers

Per la visualizzazione si e deciso di utilizzare OpenLayers, una libreria opensource realizzata in javascript che permette di inserire una mappa dinamicaall’interno di una pagina web. [22]In maniera analoga a Google Maps e Bing Maps viene fornita una API per losviluppo di applicazioni geografiche web-based. Come si vede dalla figura 3.6OpenLayers e in grado di comunicare tramite vari protocolli.

14

Page 18: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Figura 3.6: Openlayers e in grado di comunicare tramite vari protocolli. [23]

OpenLayers supporta:

• GeoRSS;

• KML (Keyhole Markup Language);

• GML (Geography Markup Language);

• GeoJSON;

• altre sorgenti dati le cui specifiche sono state imposte dal Open GeospatialConsortium (OGC), quali WMS (Web Map Service) e WFS (Web FeatureService)

3.2.2 GeoJSON

Per questo progetto si e deciso di utilizzare il formato dati GeoJSON, un for-mato aperto realizzato per rappresentare caratteristiche (features) geografichedescritte da attributi non spaziali, basato sul formato JavaScript Object Nota-tion (JSON).Queste features sono:

• punti (indirizzi, localita);

• linee (strade, autostrade e confini);

• poligoni (citta, regioni e aree di terreno);

• strutture complesse contenenti le features precedenti.

15

Page 19: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Le specifiche del formato vennero terminate nel Giugno 2008 e nell’Agosto 2016IETF rilascio GeoJSON come RFC 7946. [24]

Di seguito si mostra un esempio di codice GeoJSON:

Listing 3.1: Esempio GeoJSON

{ "type": "FeatureCollection",

"features": [

{ "type": "Feature",

"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},

"properties": {"prop0": "value0"}

},

{ "type": "Feature",

"geometry": {

"type": "LineString",

"coordinates": [

[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]

]

},

"properties": {

"prop0": "value0",

"prop1": 0.0

}

},

{ "type": "Feature",

"geometry": {

"type": "Polygon",

"coordinates": [

[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],

[100.0, 1.0], [100.0, 0.0] ]

]

},

"properties": {

"prop0": "value0",

"prop1": {"this": "that"}

}

}

]

}

3.2.3 Implementazione

Per ottenere il file GeoJSON a partire dalla lista testuale degli ordini e statonecessario effettuare un parsing ; tale operazione viene effettuata da uno scriptrealizzato in linguaggio Python (di cui un estratto del codice viene mostrato nellistato 3.2).Per ogni riga scansionata lo script effettua le seguenti operazioni:

• crea una feature point per ogni citta trovata

• per ognuna di queste features inserisce come properties nomi, orario e datadi ogni citta

16

Page 20: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

• crea una feature contenente i 3 punti realizzati

• a questa feature si aggiungono come proprieta le caratteristiche dell’ordine(IMPORT/EXPORT, ecc.)

Al termine della scansione tutte le features create vengono inserite all’interno diuna struttura piu complessa chiamata featureCollection, che a sua volta vienememorizzata all’interno di un file JSON.

Listing 3.2: Estratto di codice Python

for item in coords:

orders = item.split(";")

if len(orders) > 1:

if orders[0] != "IM-EX":

pntA = geojson.Point((float(orders[17].replace(",",".")),

float(orders[18].replace(",",".")))) #PUNTO A

featA = geojson.Feature(geometry=pntA, properties={"name":

orders[4], "date": orders[11], "hour": orders[12]})

pntB = geojson.Point((float(orders[19].replace(",",".")),

float(orders[20].replace(",",".")))) #PUNTO B

featB = geojson.Feature(geometry=pntB, properties={"name":

orders[5] + ’ (’ + orders[6] + ’)’, "date": orders[13],

"hour": orders[14]})

pntC = geojson.Point((float(orders[21].replace(",",".")),

float(orders[22].replace(",",".")))) #PUNTO C

featC = geojson.Feature(geometry=pntC, properties={"name":

orders[7], "date": orders[15], "hour": orders[16]})

thisFeat = geojson.FeatureCollection([featA, featB, featC],

properties={"index": count,"im_ex": orders[0], "me_ca":

orders[1], "ro_on": orders[2], "owner": orders[3]})

featColl.append(thisFeat)

count = count + 1

coll = geojson.FeatureCollection(featColl)

dump = geojson.dumps(coll, sort_keys=True)

out_file.write(dump)

3.2.4 Pagina Web

L’ultimo passo che permette la visualizzazione su mappa degli ordini e la rea-lizzazione di una pagina web.Questa pagina e stata realizzata per permettere all’utente di filtrare la visualiz-zazione degli ordini sia per giorno sia per fascia oraria.La pagina contiene codice JavaScript per implementare le API OpenLayers eper leggere il file JSON realizzato precedentemente; il risultato della lettura edella elaborazione viene mostrato in fugura 3.7.

17

Page 21: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Figura 3.7: Visualizzazione ordini su pagina web

In figura 3.7 si mostra il risultato della generazione degli ordini, filtrandoquelli previsti per il giovedı pomeriggio della settima considerata. 3

Com’e possibile vedere, nella mappa vengono evidenziati

• il tipo di viaggio: icona blu per IMPORT; icona rossa per EXPORT• retta di collegamento verde (piu marcata) per tratto di viaggio con carico;

retta rossa (piu sottile) per viaggio a vuoto

Inoltre per ciascun punto e mostrata la data e l’orario previsti.

3.3 Analisi ordini

In questo capitolo si mostrano due funzionalita aggiuntive del programma:

• verifica esistenza triangolabilita viaggi• visualizzazione ordini della mattina o del pomeriggio di uno specifico

giorno

Triangolazione Ricordando quanto descritto in sezione 2.3, i viaggi possonoessere di tipo import oppure di tipo export.In certi casi e possibile combinare queste due tipologie in un unico viaggiosfruttando il contenitore vuoto (figura 3.8); le ipotesi principali per cui si puoverificare questo evento sono:

• vicinanza spaziale e temporale tra il punto B del viaggio import (B1) edil punto B del viaggio export successivo (B2);

• il container utilizzato deve appartenere alla stessa compagnia marittima(salvo specifici accordi);

3La data e l’orario fanno riferimento alla citta B

18

Page 22: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

• compatibilita del contenitore richiesto dai viaggi (container da 40’ noncompatibile con mezzo che trasporta contenitori da 20’);

• compatibilita tra la merce trasportata nei due viaggi (se deve essere espor-tata merce alimentare allora nel viaggio di importazione non dev’esserepresente merce che ne possa compromettere il contenuto);

A1 B1/B2 C2

USO CONTAINER VUOTO

IMPORT EXPORT

Figura 3.8: Triangolazione Import-Export

Per semplicita il programma tiene conto solo della vicinanza spaziale/temporaledegli ordini e del proprietario del container. I risultati dell’analisi sono mostratiin figura 3.9, dove vengono evidenziate le tratte con carico (verdi) e le tratte avuoto (rosse).

Figura 3.9: Visualizzazione triangolabilita su pagina web

Distribuzione ordini L’ultima funzionalita del programma riguarda la pos-sibilita di filtrare gli ordini per mattina o pomeriggio di un giorno specifico;come gia mostrato in figura 3.7, nella mappa vengono visualizzati solo gli ordiniil cui arrivo nel punto B e previsto per il giovedı pomeriggio della settimanascelta.

19

Page 23: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Capitolo 4

Algoritmo sviluppato

Come e stato illustrato nella sezione 2.3, all’interno dell’azienda e la figura delpianificatore che si occupa di gestire le assegnazioni viaggi-autista: il suo ruoloquotidiano e di risolvere i problemi sorti la nottata precedente e pianificare iviaggi per la giornata successiva.In generale durante il lavoro di pianificazione esso cerca di tenere conto di tuttala settimana, ma pone sempre particolare attenzione alla giornata successiva.

4.1 Problema multi-obiettivo

Lo scopo della tesi quindi e la realizzazione di un algoritmo che sia in gradodi ottimizzare la gestione di una flotta di veicoli tenendo conto di piu giorni,completando il maggior numero possibile di ordini e minimizzando il numero diviaggi a vuoto, in quanto comportano maggiori spese. Una volta che e statocompletato un ordine quindi, l’algoritmo deve decidere quale deve essere l’or-dine successivo da assegnare ad un determinato autista. Le decisione presa einfluenzata sia dallo stato attuale della flotta sia dalla conoscenza degli ordinifuturi assegnabili; maggiore e la conoscenza del futuro migliori saranno le solu-zioni elaborate dall’algoritmo. Per questo motivo, data la natura temporale delproblema, si e deciso di utilizzare la tecnica della programmazione dinamica.

4.2 Richiamo sulla programmazione dinamica

La programmazione dinamica e un metodo di ottimizzazione dove un problemacomplesso viene scomposto in una sequenza di problemi piu semplici;questo metodo e simile alla tecnica divide et impera, ma mentre quest’ultimagenera molti sotto-problemi identici da risolvere ad ogni chiamata ricorsiva, laprogrammazione dinamica memorizza di volta in volta le soluzioni in modo darenderle disponibili senza ulteriori calcoli. Per questo motivo, a fronte di unutilizzo maggiore di memoria, il tempo di elaborazione e inferiore.

4.2.1 Formalizzazione del metodo

I concetti principali della programmazione dinamica sono:

20

Page 24: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

• periodo: descrivibile come l’unita di elaborazione del problema non ulte-riormente scomponibile. La scomposizione di un problema complesso in Nperiodi, risolvendone sequenzialmente uno alla volta, e la caratteristica es-senziale della programmazione dinamica: ogni periodo viene risolto comeun classico problema di ottimizzazione, la cui soluzione viene utilizzata perdefinire le caratteristiche del periodo seguente. Da notare che il concettodi periodo, tuttavia, non deve essere obbligatoriamente temporale;

• stato: ad ogni periodo del problema di ottimizzazione e associato uno sta-to; esso contiene l’informazione necessaria per capire quali possono esserele ripercussioni che una decisione presa adesso puo avere nel futuro;

• ottimizzazione ricorsiva: la procedura di ottimizzazione ricorsiva per-mette di risolvere un problema di N periodi trovando la soluzione di unproblema mono-periodo includendo sequenzialmente i periodi successivifinche non viene raggiunto l’ottimo globale.

Nel caso di questa tesi il metodo della programmazione dinamica viene ap-plicato al singolo camion, con lo scopo di trovare la sequenza di ordini cheminimizza la somma dei viaggi a vuoto, pertanto il periodo viene rappresentatodall’ordine mentre lo stato viene rappresentato dalla citta dove si trova l’autistaal termine dell’esecuzione di un ordine (e quindi anche l’orario di disponibilita).

Definiamo funzione di costo di un periodo la funzione fn(dn, sn), dove dnrappresenta una decisione ammissibile scelta dall’insieme Dn delle decisioni am-missibili e sn lo stato del processo quando mancano n periodi.L’obiettivo del progetto e la scelta della sequenza migliore di variabili decisionalidn, dn−1, ..., d0 per risolvere i seguenti problemi:

vn(ss) = min[fn(dn, sn) + fn−1(dn−1, sn−1) + ... + f0(d0, s0)]

soggetti a:

sm−1 = tm(dm, sm) (m = 1, 2, ..., n),

dm ∈ Dm (m = 0, 1, ..., n).

Si definisce vn(sn) funzione del valore ottimo; essa rappresenta il costo com-plessivo di tutti i periodi.

In questo progetto si e deciso di dividere la giornata lavorativa in due periodi,mattina e pomeriggio, assumendo che un autista riesca a portare a termine almassimo due ordini al giorno e si e deciso ottimizzare la pianificazione sull’interasettimana lavorativa per un totale di 10 periodi. 1

1Queste scelte sono state fatte per facilitare la spiegazione, in realta l’algoritmo puo essereesteso dividendo la giornata lavorativa in piu di 2 periodi e considerando una pianificazionerelativa a piu di 5 giorni.

21

Page 25: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

4.3 Realizzazione

4.3.1 Semplificazioni rispetto alla realta

Dal momento che lo scopo principale del progetto e la dimostrazione dell’efficaciadella programmazione dinamica per la gestione della flotta dei veicoli si e deciso,per motivi di semplificazione, di:

• considerare autista e camion un’unica entita;

• non fare distinzioni tra:

– tipo di merce;

– tipo di container;

– compagnia marittima;

• considerare come unico vincolo legale le ore di sonno al giorno previste perlegge, fissate a 9;

• all’inizio della settimana lavorativa si conoscono gia tutti gli ordini previsti(orizzonte temporale);

Il progetto quindi puo essere facilmente esteso per integrare nuovi vincoli.

4.3.2 Definizione dell’orizzonte temporale

Come descritto precedentemente gli ordini vengono organizzati in dieci gruppi,come rappresentato in tabella 4.3.2

Lunedı Martedı Mercoledı Giovedı Venerdı

Mat Pom Mat Pom Mat Pom Mat Pom Mat Pom

O1m1O1p1

O2m1O2p1

O3m1O3p1

O4m1O4p1

O5m1O5p1

O1m2O1p2

O2m2O2p2

O3m2O3p2

O4m2O4p2

O5m2O5p2

......

......

......

......

......

O1mn1O1pn2

O2mn3O2pn4

O3mn5O3pn6

O4mn7O4pn8

O5mn9O5pn10

Tabella 4.1: Orizzonte temporale

In tabella si mostra la disposizione degli ordini lungo la settimana lavorativa:n1, ..., n10 rappresentano il numero di ordini disponibili per ogni suddivisione,ad esempio per il Lunedı pomeriggio sono previsti n2 ordini (da O1p1 a O1pn2).Dato N il numero totale degli ordini generati deve valere:

10∑i=1

ni = N

22

Page 26: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Idea di sviluppo Di seguito si vuole mostrare graficamente il funzionamentodel metodo della programmazione dinamica: si considera un autista che fa capoalla filiale di Segrate con disponibilita dalle ore 7 del Lunedı mattina e si consi-derano tre ordini, di cui due previsti per la mattina stessa (4.3.2) e uno per ilpomeriggio (4.3.2).Gli ordini considerati sono i seguenti:

ORDINE 1 ORDINE 2

A SEGRATE 13:00 SEGRATE 11:00

B CABIATE (CO) 14:00 ARCONATE (MI) 12:00

C SEGRATE 15:00 MILANO CERTOSA 13:00

KM a vuoto 34,5 KM a vuoto 51,2

Tabella 4.2: Ordini del Lunedı mattina

ORDINE 3

A MILANO CERTOSA 16:00

B TESSERA (MI) 17:00

C SEGRATE 18:00

KM a vuoto 37,5

Tabella 4.3: Ordine del Lunedı pomeriggio

Caso 1 Si supponga di conoscere solo gli ordini del periodo 1 (Lunedı mattina),quindi ORDINE 1 e ORDINE 2 (4.3.2); dal confronto dei km a vuoto si decidedi scegliere ORDINE 1 in quanto 34, 5 < 51, 2; pertanto questa scelta permetteuna spesa minore.Si mostra in figura 4.1 il risultato grafico della scelta.

Figura 4.1: Decisione con un periodo conosciuto

Caso 2 Si supponga ora di conoscere anche gli ordini del Lunedı pomeriggio,quindi ORDINE 3 (4.3.2). In questo caso la scelta dell’ordine della mattina

23

Page 27: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

ricade su ORDINE 2 in quanto la citta di arrivo e MILANO CERTOSA, checoincide con la citta di partenza di ORDINE 3.

Conclusione Si prende atto che con la sequenza ORDINE 2 - ORDINE 3 sipercorrono meno km a vuoto rispetto alla sequenza ORDINE 1 - ORDINE 3, masoprattutto si porta a termine un numero maggiore di ordini; si visualizzail risultato in figura 4.2.

Figura 4.2: Decisione con due periodi conosciuti

Nota Aumentando il numero di periodi potremmo subire variazioni sulla scel-ta sia di ORDINE 2 sia di ORDINE 3.

4.4 Sviluppo del programma

Il programma di pianificazione e strutturato in modo da ricevere in input la listadegli ordini creati dal Generatore e la composizione della flotta e ritornare comeoutput un unico file di testo contenente la programmazione settimanale dellaflotta; cio e rappresentato da una lista di ordini (catena) associata a ciascunautista.

24

Page 28: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

INIZIO

FINE

LISTA ORDINI

AUTISTI

PIANIFICATORE

PIANIFICAZIONE FLOTTA

Figura 4.3: Panoramica programma di pianificazione

Come si vede in figura 4.3 i file in input sono

• la lista degli ordini creati dal Generatore;

• la Matrice delle Distanze;

• la lista delle filiali ;

• la lista degli autisti.

Il parametro principale per l’esecuzione e rappresentato dal numero di periodidi programmazione.

4.4.1 Analisi ordini

La prima azione svolta dal pianificatore e l’importazione degli ordini ed ilprelievo dei dati di interesse per le fasi successive. Questi dati sono:

25

Page 29: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

• le citta A, B e C con le rispettive date ed orari;

• le distanze tra le stesse espresse in km.

Orizzonte temporale

La fase successiva consiste nella definizione dell’orizzonte temporale di pianifi-cazione: gli ordini appena letti vengono distribuiti in 10 distinti gruppi, in baseal giorno e fascia oraria, definita considerando il mattino dalle 8 alle 13, mentreil resto e considerato pomeriggio.Si ottiene il risultato mostrato in tabella 4.3.2.

Ordini fattibili

La costruzione delle catene di ordini successivi da assegnare ad ogni autista erealizzata attraverso l’analisi di fattibilita: in questa fase si verifica se e qualiordini possono essere svolti da un autista a partire dallo stato attuale si. Laverifica tra due ordini on e om (n 6= m) viene eseguita confrontando l’orario diarrivo previsto al punto C di on con l’orario del punto A dell’ordine om (se one previsto per il pomeriggio si aggiunge un’ulteriore parametro per indicare leore di sonno).

Quindi se vale:ORAC(on) + h + hd < ORAA(om)

dove h e la distanza stimata in ore tra CITTAC(on) e CITTAA(om) e hd ilnumero di ore di sonno previste per legge allora om viene aggiunto alla lista deicandidati successori di on.

26

Page 30: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

ORD –

ORD –

ORD –

OK

NO

ORD – OK

PERIODO 1 PERIODO 2

ORARIO C < ORARIO A ?

ANALISI FATTIBILITA ORDINE SUCCESSIVO

ORA A

ORA A

ORA A

ORA CPREVISTA

Figura 4.4: Fattibilita ordine successivo

A partire quindi dall’orizzonte temporale definito precedentemente il tabella4.3.2 si esegue un ciclo di scansione per ogni ordine del Lunedı mattina (gruppo1), verificando per ciascuno di questi la fattibilita con gli ordini del Lunedı po-meriggio (gruppo 2): in questo modo si ottiene una lista di tutte le combinazionipossibili e fattibili. Se la condizione di fattibilita non dovesse venire soddisfattasi memorizza ugualmente l’ordine in quanto lo si confrontera con gli ordini delMartedı mattina (gruppo 3).Supponendo di voler fare una pianificazione basata su quattro periodi, al ter-mine del ciclo otterremo un insieme di liste, le piu lunghe avranno dimensione4 e le piu corte avranno dimensione 1.

Ottimizzazione ricorsiva

A questo punto dell’elaborazione si procede con l’ottimizzazione ricorsiva, mo-strata in figura 4.5, applicando il metodo backward induction (induzione a ritro-so): grazie a questo metodo si ottengono le sequenze migliori senza contenereordini in comune.

27

Page 31: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

1

1

2

2 3

41 2 3

1 2 3 4

1 2 3 4

5

1

5

2 3 4 5 6

6

OTTIMIZZAZIONE RICORSIVA

PERIODO 6

PERIODO 5

PERIODO 4

PERIODO 3

PERIODO 2

PERIODO 1

Figura 4.5: Esempio di ottimizzazione ricorsiva per 6 periodi

Backward induction In figura 4.6 si mostra l’implementazione del metododell’induzione a ritroso: questo metodo permette di ottenere una sequenza diliste che minimizzano la somma delle distanze tra gli ordini.

28

Page 32: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

INIZIO

LETTURA SEQUENZA

FINE

MIGLIORE?

NO

AGGIUNGO A LISTA MIGLIORI

SI

ELIMINO SEQUENZE DALLA LISTA

CONTROLLATI TUTTI?

NO

SI

Figura 4.6: Induzione a ritroso

4.4.2 Definizione delle strutture dati

Per questo progetto si e deciso di utilizzare la programmazione dinamica con-siderando fino a sei periodi di pianificazione (tre giorni lavorativi), pertanto ilprogramma genera sei diversi output: in ognuno di questi vi e memorizzatala pianificazione settimanale per ogni autista della flotta in base al numero diperiodi di decisione. Per rendere disponibili i risultati per la pianificazione si edeciso di realizzare una classe contenente una matrice tri-dimensionale irregola-re (jagged array).Ogni esecuzione dell’ottimizzazione ricorsiva genera la matrice appena citatache viene memorizzata nella struttura mostrata in figura 4.7.

29

Page 33: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

ELENCO LISTE PERIODO 1

ELENCO LISTE PERIODO 2

ELENCO LISTE PERIODO 3

ELENCO LISTE PERIODO 4

ELENCO LISTE PERIODO 5

ELENCO LISTE PERIODO 6

ELENCO LISTE PERIODO 1

ELENCO LISTE PERIODO 2

ELENCO LISTE PERIODO 3

ELENCO LISTE PERIODO 4

ELENCO LISTE PERIODO 5

ELENCO LISTE PERIODO 6

10 LISTE 5 LISTE 4 LISTE 2 LISTE 2 LISTE 2 LISTE

PROBLEMA DI ASSEGNAZIONE LISTE - CAMION

Figura 4.7: Realizzazione catene ordini

Come descritto poco fa, ogni oggetto contiene una matrice tri-dimensionaleirregolare in cui ciascun elemento e il codice identificativo dell’ordine ed erappresentato come segue:

v[i][j][k]

Significato degli indici Si illustra di seguito il significato degli indici i, j ek:

Periodo 1 O11

O21...

OA11

O12

O22...

OA22

. . .

O110

O210...

OA1010

In questo caso si considera solo un periodo di previsione, quindi non vi sono rag-gruppamenti; si ottengono pertanto 10 liste in cui le sotto-liste sono composteda 1 elemento.

• i identifica ciascuna delle 10 liste;• j identifica le sotto-liste delle liste identificate da i;• k identifica il singolo elemento della sotto-lista, quindi il codice dell’ordine;

in questo caso vale sempre 0.

Periodo 2

O11 O12

O21 O22

......

OB11 OB12

O13 O14

O23 O24

......

OB23 OB24

. . .

O19 O110

O29 O210

......

OB59 OB510

In questo caso si considerano 2 periodi di previsione, si ottengono pertanto10/2 = 5 liste in cui le sotto-liste sono composte da 2 elementi.

• i identifica ciascuna delle 5 liste;• j identifica le sotto-liste delle liste identificate da i;• k identifica il singolo elemento della sotto-lista, quindi il codice dell’ordine.

30

Page 34: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Periodo 3

O11 O12 O13

O21 O22 O23

......

...

OC11 OC12 OC13

. . .

O17 O18 O19

O27 O28 O29

......

...

OC37 OC38 OC39

O110

O210

...

OA1010

In questo caso si considerano 3 periodi di previsione, si ottengono pertantob10/3c = 3 liste composte da 3 elementi e la restante e composta da un elemento.

• i identifica ciascuna delle 4 liste;• j identifica le sotto-liste delle liste identificate da i;• k identifica il singolo elemento della sotto-lista, quindi il codice dell’ordine.

Periodo 4

O11 O12 O13 O14

O21 O22 O23 O24

......

......

OD11 OD12 OD13 OD14

O15 O16 O17 O18

O25 O26 O27 O28

......

......

OD25 OD26 OD27 OD28

O19 O110

O29 O210

......

OB59 OB510

In questo caso si considerano 4 periodi di previsione, si ottengono pertantob10/4c = 2 composte da 3 elementi e la restante e composta da 2 elementi.

• i identifica ciascuna delle 3 liste;• j identifica le sotto-liste delle liste identificate da i;• k identifica il singolo elemento della sotto-lista, quindi il codice dell’ordine.

Periodo 5

O11 O12 O13 O14 O15

O21 O22 O23 O24 O25

......

......

...

OE11 OE12 OE13 OE14 OE15

O16 O17 O18 O19 O110

O26 O27 O28 O29 O210

......

......

...

OE26 OE27 OE28 OE29 OE210

In questo caso si considerano 5 periodi di previsione, si ottengono pertanto10/5 = 2 liste composte da 5 elementi.

• i identifica ciascuna delle 2 liste;• j identifica le sotto-liste delle liste identificate da i;• k identifica il singolo elemento della sotto-lista, quindi il codice dell’ordine.

31

Page 35: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Periodo 6

O11 O12 O13 O14 O15 O16

O21 O22 O23 O24 O25 O16

......

......

......

OF11 OF12 OF13 OF14 OF15 OF16

O17 O18 O19 O110

O27 O28 O29 O210

......

......

OD37 OD38 OD39 OD310

In questo caso si considerano 6 periodi di previsione, si ottiene pertanto b10/6c =1 lista composta da 6 elementi e la restante e composta da 4 elementi.

• i identifica ciascuna delle 2 liste;• j identifica le sotto-liste delle liste identificate da i;• k identifica il singolo elemento della sotto-lista, quindi il codice dell’ordine.

4.4.3 Definizione dello stato

Lo stato del sistema viene rappresentato dallo stato della flotta, e quindi diciascun autista. Pertanto un autista, a livello di programma, e rappresentatoda una classe i cui campi sono:

• codice identificativo (cod);• filiale di appartenenza (fil);• posizione attuale (pos);• orario di disponibilita (ora);• lista degli ordini assegnati (list).

Si mostra graficamente la classe in figura 4.8.

Figura 4.8: Stato autista

Allo stato iniziale s0 di ciascun autista si ha che pos ≡ fil, ora e fissata,come parametro, alle 05:00 e list non contiene nessun elemento.Lo stato di un autista si aggiorna quando gli viene assegnato un ordine fattibile

32

Page 36: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

ord: in questo caso questo ordine viene inserito nella lista delle assegnazionidell’autista list, il campo posizione diventa la citta C dell’ordine, cioe pos =ordC e l’orario di disponibilita viene incrementato del tempo impiegato perraggiungere la citta A dell’ordine sommato al tempo per completare l’ordinestesso, quindi ora = ora + (distFA + distord)/vel, dove vel e la velocita mediastimata del camion, impostata come parametro.

4.4.4 Assegnazione

Come descritto precedentemente, al termine dell’ottimizzazione ricorsiva si ot-tengono P matrici tri-dimensionali, dove P e il numero di stage scelto per lapianificazione; in base al valore di P varia il numero di gruppi di sequenze diordini da assegnare:

P Gruppi

1 10

2 5

3 4

4 3

5 2

6 2

Tabella 4.4: Numero di gruppi di sequenze in base al numero di stage

L’ultima fase del programma consiste nell’assegnazione agli autisti dei gruppicreati. Sono stati analizzati vari algoritmi ([27] [28] [29] [30] [31] [32] [33] [34][35], [36] [37] [38]) e in questo progetto si e deciso di utilizzare l’algoritmoungherese [25], in particolare la versione sbilanciata [26].

Algoritmo ungherese

L’algoritmo ungherese e un metodo di ottimizzazione che permette di risolverein tempo polinomiale (O(n3)) il problema dell’assegnamento: a partire da dueinsiemi distinti si vuole associare gli elementi creando delle coppie, dal momentoche ciascuna coppia ha un costo il suo scopo e di minimizzare la somma totaledei costi. Formalizzando, data una matrice nxn di costi cij si vuole trovare unapermutazione f di 1, 2, ..., n che minimizzi

n∑i=0

cif(i)

Nel caso di questo progetto i due insiemi sono rappresentati dalla flotta e daigruppi di sequenze di ordini, mentre i costi sono rappresentati dalla distanza inchilometri tra la posizione attuale dell’autista e la citta A dell’ordine successivo

33

Page 37: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

distPA. La matrice dei costi assume quindi la seguente forma:d11 d12 . . . d1nd21 d22 . . . d2n...

.... . .

...dn1 dn2 . . . dnn

Dove dij indica la distanza tra la posizione attuale dell’autista i e la citta Adell’ordine j. L’algoritmo fornisce in output un vettore di n elementi nellaseguente forma

v = [b0, b1, ..., bn−1]

dove il valore i-esimo rappresenta la coppia autista i, ordine bi.

Problema sbilanciato

Si definisce Na il numero di autisti che compone la flotta e NM la dimensionedel gruppo M-esimo: si ha che NM 6= Na, quindi la matrice dei costi non equadrata.Ci si trova quindi di fronte ad un problema di assegnazione non bilanciato (figura4.9), non si puo quindi applicare il metodo dell’ungherese puro.

Figura 4.9: Come assegnare autista a gruppo?

Per ovviare a questo inconveniente si aggiungono alla matrice non quadratarighe o colonne fittizie i cui elementi corrispondono a costi molto elevati (H) in

34

Page 38: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

modo che l’algoritmo cerchi di non dargli priorita durante l’elaborazione.

d11 d12 . . . d1NM

d21 d22 . . . d2NM

......

. . ....

dNa1 dNa2 . . . dNaNM

H H . . . HH H . . . H

d11 d12 . . . d1NM

H Hd21 d22 . . . d2NM

H H...

.... . .

......

...dNa1 dNa2 . . . dNaNM

H H

Si supponga che l’algoritmo ungherese fornisca il risultato di figura 4.10: enecessario eseguire un controllo di tutte le coppie perche puo capitare che ven-ga fornita una assegnazione non fattibile. In questo caso lo stato dell’autistacoinvolto non viene aggiornato.

Figura 4.10: Assegnazione ottima

Termine dell’assegnazione

Finche ci sono ancora gruppi di sequenze di ordini a disposizione si itera il pro-cedimento descritto finora a partire dal nuovo stato ottenuto.Al termine dell’elaborazione ogni autista ha memorizzato la sequenza degliordini che deve eseguire.

4.5 Visualizzazione su mappa

La visualizzazione su mappa viene effettuata analogamente a come e stato fattoper la visualizzazione degli ordini creati dal Generatore; la differenza risiede nelfatto che il file di testo generato dal Pianificatore e composto da 6 gruppi, cioeuno per ogni orizzonte di pianificazione. Ciascuno di questi gruppi e compo-sto da un numero di righe pari al numero di camion che compone la flotta; a

35

Page 39: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

sua volta ciascuna di queste righe contiene gli ordini assegnati al camion stes-so. Anche il parsing del file contenente gli ordini viene effettuato in manieraanaloga: il risultato e un file con estensione .json che viene letto dal codicejavascript della pagina web. Tale pagina permette di visualizzare la pianifi-cazione settimanale del singolo autista, scegliendo il numero di stage desiderato.

In figura 4.11 si mostra un esempio di assegnazione per l’autista con codice0 appartenente alla filiale di Segrate considerando uno stage di pianificazione;in blu sono evidenziati gli ordini IMPORT, in rosso gli ordini EXPORT.

Figura 4.11: Assegnazione ad uno stage

36

Page 40: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Capitolo 5

Risultati

5.1 Visualizzazione su mappa

All’inizio di questo capitolo si vuole mostrare la differenza della distribuzionedelle assegnazioni in base al numero di stage; l’analisi verra fatta considerandoun autista che fa capo alla filiale di Segrate (MI).

Pianificazione ad uno stage In figura 5.1 e illustrato il comportamento delprogramma per una pianificazione ad uno stage.Come e possibile vedere dalla mappa gli ordini assegnati all’autista sono mol-to localizzati; questo accade perche al termine dell’esecuzione di un ordine ilprogramma tende a cercare il successivo ordine in modo tale da minimizzare ladistanza d(o1, o2) per prelevare il nuovo contenitore, dove

d(o1, o2) = d(CITTAC(o1), CITTAA(o2))

Figura 5.1: Assegnazione ad uno stage

37

Page 41: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

In questo caso, per la giornata del 24/10 e stato assegnato un ordine lacui durata non permette l’esecuzione di ulteriori ordini; infatti questo ordine estrutturato come segue:

A SEGRATE (MI) 11:00

B TRAVAGLINO (PV) 14:00

C MILANO CERTOSA (MI) 17:00

Tabella 5.1: Questo ordine non permette ulteriori pianificazioni per la giornata

Pianificazione a quattro stage In figura 5.2 e illustrato il comportamentodel programma per una pianificazione a quattro stage.Come e possibile vedere dalla mappa gli ordini assegnati all’autista sono piudistribuiti sul territorio; questo accade perche e stata assegnata all’autista unacatena di ordini che coinvolge un maggior numero di porti/interporti.

Figura 5.2: Assegnazione a quattro stage

5.2 Analisi assegnazioni flotta

In questa sezione si vogliono mostrare i casi dove l’algoritmo fornisce i risultatiaspettati e i punti deboli.Le analisi sono state fatte attraverso 10 generazioni casuali da 100 ordini cia-scuna dove questi possono essere sia lunghi (entro 800 km) sia corti (entro 200km).La flotta considerata e composta da 10 autisti distribuiti nel seguente modo:

• 1 a Milano Certosa;• 1 a Bologna;• 1 a Genova;• 2 a Livorno;• 1 a Verona;

38

Page 42: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

• 1 a Padova;• 2 a Trieste;• 1 a La Spezia.

E’ stata decisa questa distribuzione in modo da cercare di ottenere assegnazionidistribuite in maniera omogenea.Nella realizzazione delle catene non sono stati imposti ne vincoli di distanza nevincoli temporali (fatta eccezione ovviamente per la fattibilita) tra ordini con-secutivi.

I grafici illustrati di seguito sono riferiti all’intera flotta, e sono strutturati comesegue: lungo l’asse delle ascisse vengono indicati gli stage, da 1 a 4; lungo l’assedelle ordinate vengono visualizzati rispettivamente:

• il totale dei km percorsi;

• km percorsi con container carico;

• km percorsi con container vuoto;

• km percorsi senza container.

E stata aggiunta inoltre una linea di tendenza per mostrare il variare dei kmtotali percorsi in funzione del numero di stage scelto.

5.2.1 Dove l’algoritmo funziona meglio

Attraverso varie esecuzioni casuali, distinguendo tra ordini oneway e roundtrip,si e constatato che l’algoritmo funziona meglio nel primo caso in quanto le cittaA e C sono distribuite in maniera meno localizzata. Come si vede dal grafico infigura 5.3 il numero di km totali percorsi dalla flotta diminuisce con l’aumentaredel numero di stage, mentre quello dei km percorsi senza container aumenta:questo e dovuto dal fatto che con l’aumentare di stage gli autisti eseguono ordinipiu lontani rispetto alla loro filiale, aumentando il raggio di copertura.

39

Page 43: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

1 2 3 4Totale 20519,46 18835,69 19021,77 19414,03

Container Pieno 9217,88 6810,51 6227,62 6459,63

Container Vuoto 9182,62 6496,54 6070,17 6303,19

Senza Container 2118,96 5528,64 6723,98 6651,21

20519,46

18835,69 19021,77 19414,03

9217,88

6810,51 6227,62 6459,63

9182,62

6496,54 6070,17 6303,19

2118,96

5528,646723,98 6651,21

0

5000

10000

15000

20000

25000

Media chilometri percorsi

Totale Container Pieno Container Vuoto Senza Container Lineare (Totale)

Figura 5.3: Assegnazione a quattro stage

Nel grafico in figura 5.4 si mette in risalto il fatto che, in media, all’aumen-tare del numero di stage aumenta il numero di ordini portato a termine, e nelcontempo diminuisce il rapporto r tra km percorsi con container e km totali.

r =distanzacontainerdistanzatotale

40

Page 44: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

71,1

82

74,9

78,1

0,898

0,706

0,648

0,658

64 66 68 70 72 74 76 78 80 82 84

1

2

3

4

1 2 3 4Numero Ordini 71,1 82 74,9 78,1

km con Container / km totali 0,898 0,706 0,648 0,658

Numero ordini e Rapporto 

Numero Ordini km con Container / km totali

Figura 5.4: Assegnazione a quattro stage

Concludendo, considerando ordini oneway, l’algoritmo fornisce risultati po-sitivi all’aumentare del numero di stage.

5.2.2 Dove l’algoritmo funziona peggio

Nel corso delle varie simulazioni si e visto invece che, elaborando ordini round-trip, l’algoritmo non fornisce sempre risultati soddisfacenti. Infatti come si vedenel grafico in figura 5.5, all’aumentare degli stage aumenta anche il numero to-tale di km percorsi; questo perche in media aumenta il numero di km percorsisenza contenitore in quanto A e C coincidono.

41

Page 45: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

1 2 3 4Totale 19525,22 18916,26 20295,86 19313,24

Container Pieno 8821,88 6576,94 6324,7 6309,44

Container Vuoto 8881,98 6471,34 6317,26 6298,04

Senza Container 1821,36 5867,98 7653,9 6705,76

19525,2218916,26

20295,8619313,24

8821,88

6576,94 6324,7 6309,44

8881,98

6471,34 6317,26 6298,04

1821,36

5867,98

7653,96705,76

0

5000

10000

15000

20000

25000

Media chilometri percorsi

Totale Container Pieno Container Vuoto Senza Container Lineare (Totale)

Figura 5.5: Assegnazione a quattro stage

Dal punto di vista degli ordini coperti, invece, il loro numero aumentaall’aumentare degli stage, come si vede nel grafico di figura 5.6.

74

86

83

85

0,908

0,692

0,622

0,654

66 68 70 72 74 76 78 80 82 84 86 88

1

2

3

4

1 2 3 4Numero Ordini 74 86 83 85

km con Container / km totali 0,908 0,692 0,622 0,654

Numero ordini e Rapporto

Numero Ordini km con Container / km totali

Figura 5.6: Assegnazione a quattro stage

42

Page 46: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

5.2.3 Altre analisi

In questa sottosezione si mostrano analisi fatte per le quattro categorie principalidi viaggio:

• oneway corti;• oneway lunghi;• roundtrip corti;• roundtrip lunghi.

Viaggi Oneway corti

Nei grafici delle figure 5.7 e 5.8 si mostra l’andamento dei chilometri totalipercorsi dalla flotta al variare del numero di stage per i viaggi corti di tipooneway.

1 2 3 4Totale 15096,38 17059,31 18074,1 17092,77

Container Pieno 5538,5 5434,85 5229,73 5086,55

Container Vuoto 5622,77 5677,51 5363,33 5288,78

Senza Container 3935,11 5946,95 7481,04 6717,44

15096,38

17059,3118074,1

17092,77

5538,5 5434,85 5229,73 5086,555622,77 5677,51 5363,33 5288,78

3935,11

5946,95

7481,046717,44

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

Media chilometri percorsi

Totale Container Pieno Container Vuoto Senza Container Lineare (Totale)

Figura 5.7: Chilometri percorsi per ordini oneway corti

43

Page 47: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

87

89

83

83

0,74

0,649

0,586

0,608

78 80 82 84 86 88 90 92

1

2

3

4

1 2 3 4Numero Ordini 87 89 83 83

km con Container / km totali 0,74 0,649 0,586 0,608

Numero ordini e Rapporto

Numero Ordini km con Container / km totali

Figura 5.8: Numero ordini coperti per viaggi oneway corti

Viaggi Oneway lunghi

Nei grafici delle figure 5.9 e 5.10 si mostra l’andamento dei chilometri totalipercorsi dalla flotta al variare del numero di stage per i viaggi lunghi di tipooneway.

44

Page 48: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

1 2 3 4Totale 25248,7 23037,25 22320,49 25722,04

Container Pieno 11864,03 10734,26 8264,01 10026,23

Container Vuoto 11888,2 10819,64 8363,64 10113,93

Senza Container 1496,47 1483,35 5692,84 5581,88

25248,7

23037,2522320,49

25722,04

11864,0310734,26

8264,01

10026,23

11888,210819,64

8363,64

10113,93

1496,47 1483,35

5692,84 5581,88

0

5000

10000

15000

20000

25000

30000

Media chilometri percorsi

Totale Container Pieno Container Vuoto Senza Container Lineare (Totale)

Figura 5.9: Chilometri percorsi per ordini oneway lunghi

51

50

42

50

0,941

0,936

0,745

0,785

0 10 20 30 40 50 60

1

2

3

4

1 2 3 4Numero Ordini 51 50 42 50

km con Container / km totali 0,941 0,936 0,745 0,785

Numero ordini e Rapporto

Numero Ordini km con Container / km totali

Figura 5.10: Numero ordini coperti per viaggi oneway lunghi

45

Page 49: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Viaggi Roundtrip corti

Nei grafici delle figure 5.11 e 5.12 si mostra l’andamento dei chilometri totalipercorsi dalla flotta al variare del numero di stage per i viaggi corti di tiporoundtrip.

1 2 3 4Totale 14438,83 16338,4 18878,02 18107,21

Container Pieno 5399,89 5365,47 5273,09 5159,84

Container Vuoto 5399,89 5365,47 5273,09 5159,84

Senza Container 3639,05 5607,46 8331,84 7787,53

14438,83

16338,4

18878,0218107,21

5399,89 5365,47 5273,09 5159,845399,89 5365,47 5273,09 5159,84

3639,05

5607,46

8331,847787,53

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

Media chilometri percorsi

Totale Container Pieno Container Vuoto Senza Container Lineare (Totale)

Figura 5.11: Chilometri percorsi per ordini roundtrip corti

46

Page 50: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

90

93

90

90

0,75

0,658

0,56

0,571

88 89 90 91 92 93 94

1

2

3

4

1 2 3 4Numero Ordini 90 93 90 90

km con Container / km totali 0,75 0,658 0,56 0,571

Numero ordini e Rapporto

Numero Ordini km con Container / km totali

Figura 5.12: Numero ordini coperti per viaggi roundtrip corti

Viaggi Roundtrip lunghi

Nei grafici delle figure 5.13 e 5.14 si mostra l’andamento dei chilometri totalipercorsi dalla flotta al variare del numero di stage per i viaggi lunghi di tiporoundtrip.

47

Page 51: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

1 2 3 4Totale 14438,83 16338,4 18878,02 18107,21

Container Pieno 5399,89 5365,47 5273,09 5159,84

Container Vuoto 5399,89 5365,47 5273,09 5159,84

Senza Container 3639,05 5607,46 8331,84 7787,53

14438,83

16338,4

18878,0218107,21

5399,89 5365,47 5273,09 5159,845399,89 5365,47 5273,09 5159,84

3639,05

5607,46

8331,847787,53

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

Media chilometri percorsi

Totale Container Pieno Container Vuoto Senza Container Lineare (Totale)

Figura 5.13: Chilometri percorsi per ordini roundtrip lunghi

51

52

41

52

0,967

0,973

0,739

0,764

0 10 20 30 40 50 60

1

2

3

4

1 2 3 4Numero Ordini 51 52 41 52

km con Container / km totali 0,967 0,973 0,739 0,764

Numero ordini e Rapporto

Numero Ordini km con Container / km totali

Figura 5.14: Numero ordini coperti per viaggi roundtrip lunghi

48

Page 52: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

5.2.4 Considerazioni sui risultati

Analizzando i risultati delle simulazioni risulta migliore la pianificazione consi-derando due stage, dove si migliora notevolmente il rapporto tra il numero degliordini coperti rispetto al totale dei chilometri percorsi. Questo fatto probabil-mente e causato dal criterio di suddivisione delle sequenze di ordini lungo lasettimana lavorativa.

49

Page 53: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Capitolo 6

Conclusioni

6.1 Elementi non considerati

Per la realizzazione di questo progetto, sono state considerate classificazionidegli ordini quali import/export e merchant/carrier, oltre al proprietario delcontainer; queste informazioni pero non sono state utilizzate per la realizzazio-ne del pianificatore in quanto ci si voleva concentrare sul miglioramento dellacopertura degli ordini e della diminuzione dei chilometri percorsi.Nei casi pratici tuttavia gli elementi considerati sono molti di piu, a partiredalle caratteristiche dell’autista stesso (eta, abilitazioni, esperienza..), dal tipodi container (20 piedi, 40 piedi, HiCube ecc..), dal tipo di merce trasporta-ta ecc. Tuttavia la struttura modulare del programma ne permette una facileintegrazione.

6.2 Considerazioni generali

Realizzazione delle catene Dalle varie analisi fatte si pensa che un puntodebole dell’algoritmo sia l’assegnazione delle catene agli autisti: quando unacatena viene assegnata ad un autista, vengono eliminate tutte le sequenze checontengono gli ordini della catena; in questo modo puo facilmente capitare chese gli ordini non sono ben distribuiti vengono eliminate molte catene ”lunghe”,ne risulta quindi un numero inferiore assegnato alla flotta. Si e notato inoltreche la pianificazione a 3 stage e quella che fornisce risultati meno soddisfacenti:questo probabilmente e causato dal criterio di suddivisione settimanale scelto,cioe 3 gruppi contenenti sequenze lunghe al massimo 3 piu un gruppo di sequenzeda un solo ordine.

Qualita dell’input Tutte le simulazioni sono state fatte con un input di ordinie citta casuali creato dal Generatore; non avendo una conoscenza generale delladistribuzione degli ordini in campo pratico tale input non puo quindi essereconsiderato reale.

Capacita di elaborazione Le simulazioni sono state fatte ponendo a 4 ilnumero massimo di stage a causa delle limitate prestazioni del computer su cuie stato sviluppato l’algoritmo. L’assegnazione di una flotta di 10 autisti su un

50

Page 54: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

input di 100 ordini considerando 4 stage viene elaborata nell’ordine dei secondi(in media 2 secondi); se il numero di ordini viene aumentato a 300, con unapianificazione a 6 stage, il tempo di computazione e stimato a circa 4 ore.

6.3 Possibili miglioramenti

Tutte le simulazioni eseguite sono state fatte dividendo la giornata lavorativain 2 gruppi, mattina e pomeriggio; non si esclude che aumentando il numero disuddivisioni i risultati possano migliorare.Inoltre data la limitata capacita di elaborazione del calcolatore su cui e statosviluppato questo programma non e stato possibile eseguire simulazioni con unnumero maggiore di ordini e stage.Un ulteriore miglioramento puo essere il fatto di mettere in evidenza le possibilitriangolazioni, cioe dove si hanno due ordini consecutivi dove il proprietariodel container e lo stesso, il primo ordine di tipo import, il secondo ordine ditipo export; tuttavia nella realta bisogna considerare la compatibilita dei tipi dicontenitori e del tipo di merce trasportata.

6.4 Raggiungimento dello scopo

Attraverso le varie analisi, quando l’input dell’algoritmo e ben distribuito, ilpianificatore fornisce risultati soddisfacenti, in questo modo possiamo affermareche la tecnica della programmazione dinamica e utile per dimostrare che unapianificazione della flotta, considerando tutta la settimana e non solo il giornosuccessivo, permette una copertura maggiore degli ordini con un minornumero di chilometri percorsi dalla flotta.

Concludendo, programma puo rappresentare un buon punto di partenza persviluppare modelli applicabili nella pratica, soprattutto perche nella pianifica-zione settimanale si tiene conto delle ore di sonno degli autisti e viene privile-giato il fatto di assegnare ordini piu vicini alla filiale al termine della settimanalavorativa.

51

Page 55: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Elenco delle figure

2.1 Passaggio di due navi portacontainer nella Baia di San Francisco[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.2 Il sig. Malcolm McLean al Port Newark–Elizabeth Marine Ter-minal, 1957. [3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Container della compagnia marittima MSC. [1] . . . . . . . . . . 32.4 Gru portacontainer al Porto di Shanghai. [4] . . . . . . . . . . . 52.5 Interporto di Verona Quadrante Europa. [5] . . . . . . . . . . . . 52.6 Viaggio import . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.7 Viaggio export . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1 Il Distanziere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Struttura file citta . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3 Creazione lista casuale citta . . . . . . . . . . . . . . . . . . . . . 123.4 Dalla generazione all’analisi . . . . . . . . . . . . . . . . . . . . . 133.5 File ordini generati . . . . . . . . . . . . . . . . . . . . . . . . . . 143.6 Openlayers e in grado di comunicare tramite vari protocolli. [23] 153.7 Visualizzazione ordini su pagina web . . . . . . . . . . . . . . . . 183.8 Triangolazione Import-Export . . . . . . . . . . . . . . . . . . . . 193.9 Visualizzazione triangolabilita su pagina web . . . . . . . . . . . 19

4.1 Decisione con un periodo conosciuto . . . . . . . . . . . . . . . . 234.2 Decisione con due periodi conosciuti . . . . . . . . . . . . . . . . 244.3 Panoramica programma di pianificazione . . . . . . . . . . . . . . 254.4 Fattibilita ordine successivo . . . . . . . . . . . . . . . . . . . . . 274.5 Esempio di ottimizzazione ricorsiva per 6 periodi . . . . . . . . . 284.6 Induzione a ritroso . . . . . . . . . . . . . . . . . . . . . . . . . . 294.7 Realizzazione catene ordini . . . . . . . . . . . . . . . . . . . . . 304.8 Stato autista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.9 Come assegnare autista a gruppo? . . . . . . . . . . . . . . . . . 344.10 Assegnazione ottima . . . . . . . . . . . . . . . . . . . . . . . . . 354.11 Assegnazione ad uno stage . . . . . . . . . . . . . . . . . . . . . . 36

5.1 Assegnazione ad uno stage . . . . . . . . . . . . . . . . . . . . . . 375.2 Assegnazione a quattro stage . . . . . . . . . . . . . . . . . . . . 385.3 Assegnazione a quattro stage . . . . . . . . . . . . . . . . . . . . 405.4 Assegnazione a quattro stage . . . . . . . . . . . . . . . . . . . . 415.5 Assegnazione a quattro stage . . . . . . . . . . . . . . . . . . . . 425.6 Assegnazione a quattro stage . . . . . . . . . . . . . . . . . . . . 425.7 Chilometri percorsi per ordini oneway corti . . . . . . . . . . . . 43

52

Page 56: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

5.8 Numero ordini coperti per viaggi oneway corti . . . . . . . . . . . 445.9 Chilometri percorsi per ordini oneway lunghi . . . . . . . . . . . 455.10 Numero ordini coperti per viaggi oneway lunghi . . . . . . . . . . 455.11 Chilometri percorsi per ordini roundtrip corti . . . . . . . . . . . 465.12 Numero ordini coperti per viaggi roundtrip corti . . . . . . . . . 475.13 Chilometri percorsi per ordini roundtrip lunghi . . . . . . . . . . 485.14 Numero ordini coperti per viaggi roundtrip lunghi . . . . . . . . 48

53

Page 57: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Elenco delle tabelle

4.1 Orizzonte temporale . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Ordini del Lunedı mattina . . . . . . . . . . . . . . . . . . . . . . 234.3 Ordine del Lunedı pomeriggio . . . . . . . . . . . . . . . . . . . . 234.4 Numero di gruppi di sequenze in base al numero di stage . . . . . 33

5.1 Questo ordine non permette ulteriori pianificazioni per la giornata 38

54

Page 58: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

Bibliografia

[1] Container shipping : viaggio intorno al contenitore marittimo. Genova: LENAVI Agenzia Marittima, 2009.

[2] W. Commons, “Apl post-panamax container ships image id: line0534, ame-rica’s coastlines. collection location: San francisco,” unknown. https:

//upload.wikimedia.org/wikipedia/commons/7/74/Line0534.jpg.

[3] Wikipedia, “Malcolm mclean — wikipedia, the free encyclopedia,” 2016.

[4] W. Commons, “Container cranes at shanghai port,” 2009.https://en.wikipedia.org/wiki/Container_crane#/media/File:

Yangshan-Port-Balanced.jpg.

[5] “Interporto quadrante europa.” http://www.quadranteeuropa.it/

images/quadrante/immobiliare/immobiliare_centrosped.jpg.

[6] H. Psaraftis, “Dynamic vehicle routing: Status and prospects,” Annals ofOperations Research, vol. 61, no. 1, pp. 143–164, 1995.

[7] W. Powell, P. Jaillet, and A. Odoni, “Chapter 3 stochastic and dynamic net-works and routing,” Handbooks in Operations Research and ManagementScience, vol. 8, no. C, pp. 141–295, 1995.

[8] M. Gendreau and J.-Y. Potvin, “Dynamic vehicle routing and dispatching,”Fleet Management and Logistics, pp. 115–126, 1998.

[9] A. Larsen, O. Madsen, and M. Solomon, “Partially dynamic vehicle routing- models and algorithms,” Journal of the Operational Research Society,vol. 53, no. 6, pp. 637–646, 2002.

[10] S. Ichoua, M. Gendreau, and J.-Y. Potvin, “Exploiting knowledge aboutfuture demands for real-time vehicle dispatching,” Transportation Science,vol. 40, no. 2, pp. 211–225, 2006.

[11] N. Secomandi, “Comparing neuro-dynamic programming algorithms forthe vehicle routing problem with stochastic demands,” Computers andOperations Research, vol. 27, no. 11-12, pp. 1201–1225, 2000.

[12] N. Secomandi, “A rollout policy for the vehicle routing problem withstochastic demands,” Operations Research, vol. 49, no. 5, pp. 796–802,2001.

55

Page 59: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

[13] C. Caliskan and R. Hall, “A dynamic empty equipment and crew allocationmodel for long-haul networks,” Transportation Research Part A: Policy andPractice, vol. 37, no. 5, pp. 405–418, 2003.

[14] J. Desrosiers, Y. Dumas, M. Solomon, and F. Soumis, “Chapter 2 timeconstrained routing and scheduling,” Handbooks in Operations Researchand Management Science, vol. 8, no. C, pp. 35–139, 1995.

[15] G. Desaulniers, J. Desrosiers, M. Gamache, and F. Soumis, “Crew schedu-ling in air transportation,” Fleet Management and Logistics, pp. 169–185,1998.

[16] W. Powell, “A comparative review of alternative algorithms for the dy-namic vehicle allocation problem,” Vehicle Routing: Methods and Studies,pp. 249–291, 1988.

[17] W. White, “Dynamic transshipment networks: An algorithm and its ap-plication to the distribution of empty containers,” Networks, vol. 2, no. 3,pp. 211–236, 1972.

[18] C. Tapiero and M. Soliman, “Multicommodities transportation schedulesover time,” Networks, vol. 2, no. 4, pp. 311–327, 1972.

[19] T. Crainic, J.-A. Ferland, and J.-M. Rousseau, “Tactical planning model forrail freight transportation.,” Transportation Science, vol. 18, no. 2, pp. 165–184, 1984.

[20] M. Spivey and W. Powell, “The dynamic assignment problem,”Transportation Science, vol. 38, no. 4, pp. 399–419, 2004.

[21] H. Simao, J. Day, A. George, T. Gifford, J. Nienow, and W. Powell,“An approximate dynamic programming algorithm for large-scale fleet ma-nagement: A case application,” Transportation Science, vol. 43, no. 2,pp. 178–197, 2009.

[22] “Openlayers 3.” https://openlayers.org/.

[23] SEWilco, “Geoserver and geonetwork with interfaces and applica-tions sketch. green represents read and write paths. dotted arro-wed line indicates mostly read-only data flow.,” 2007. [GFDL(http://www.gnu.org/copyleft/fdl.html) or CC BY-SA 4.0-3.0-2.5-2.0-1.0 (http://creativecommons.org/licenses/by-sa/4.0-3.0-2.5-2.0-1.0)], viaWikimedia Commons.

[24] H. Butler, M. Daly, A. Doyle, S. Gillies, S. Hagen, and T. Schaub, “Thegeojson format,” 2016. https://tools.ietf.org/html/rfc7946.

[25] H. W. Kuhn, “The hungarian method for the assignment problem,” NavalResearch Logistics Quarterly, vol. 2, no. 1-2, pp. 83–97, 1955.

[26] H. W. Kuhn, “Variants of the hungarian method for assignment problems,”Naval Research Logistics Quarterly, vol. 3, no. 4, pp. 253–258, 1956.

56

Page 60: Analisi e sviluppo di un algoritmo di pianificazione ordini di una ditta di trasporto container su camion

[27] J. Munkres, “Algorithms for the assignment and transportation problems,”Journal of the Society for Industrial and Applied Mathematics, vol. 5, no. 1,pp. 32–38, 1957.

[28] R. Brualdi, Combinatorial Matrix Classes. No. v. 13 in Combinatorialmatrix classes, Cambridge University Press, 2006.

[29] R. Burkard, M. Dell’Amico, and S. Martello, Assignment Problems, RevisedReprint:. Other titles in applied mathematics, Society for Industrial andApplied Mathematics (SIAM, 3600 Market Street, Floor 6, Philadelphia,PA 19104), 2009.

[30] D. P. Bertsekas, Network optimization : continuous and discrete models tex-te imprime. Optimization and neural computation series, Belmont, Mass.Athena Scientific, 1998. lccopycat.

[31] K. Mulmuley, U. V. Vazirani, and V. V. Vazirani, “Matching is as ea-sy as matrix inversion,” in Proceedings of the Nineteenth Annual ACMSymposium on Theory of Computing, STOC ’87, (New York, NY, USA),pp. 345–354, ACM, 1987.

[32] M. Fischetti, Lezioni di ricerca operativa. Progetto Libreria, 1995.

[33] R. K. Ahuja, T. L. Magnanti, and J. B. Orlin, Network Flows: Theory,Algorithms, and Applications. Upper Saddle River, NJ, USA: Prentice-Hall,Inc., 1993.

[34] S. Martello, “Jeno egervary: from the origins of the hungarian algori-thm to satellite communication,” Central European Journal of OperationsResearch, vol. 18, no. 1, pp. 47–58, 2010.

[35] J. C. Borchardt, C.W., “De investigando ordine systematis aequatio-num differentialium vulgarium cujuscunque.,” Journal fur die reine undangewandte Mathematik, vol. 64, pp. 297–320, 1865.

[36] D. Konig, Theorie Der Endlichen Und Unendlichen Graphen. Ams ChelseaPublishing, AMS Chelsea Publ., 2001.

[37] E. Egervary, “Matrixok kombinatorius tulajdonsagairol (hungarian) oncombinatorial properties of matrices,” Matematikai es Fizikai Lapok,vol. 38, pp. 16–28, 1931.

[38] G. B. Dantzig, R. J. Duffin, K. Fan, L. R. Ford, D. R. Fulkerson, D. Ga-le, A. J. Goldman, I. Heller, J. B. Kruskal, H. W. Kuhn, H. D. Mills,G. L. Thompson, C. B. Tompkins, A. W. Tucker, and P. Wolfe, LinearInequalities and Related Systems. (AM-38). Princeton University Press,1956.

57