11.01.2013 Views

Tesi di Laurea in Ingegneria Gestionale - Dist

Tesi di Laurea in Ingegneria Gestionale - Dist

Tesi di Laurea in Ingegneria Gestionale - Dist

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Università degli Stu<strong>di</strong> <strong>di</strong> Genova - Polo <strong>di</strong> Savona - Facoltà <strong>di</strong> <strong>Ingegneria</strong><br />

<strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong><br />

Modellistica, Simulazione e Previsione a Breve Term<strong>in</strong>e del<br />

Comportamento D<strong>in</strong>amico del Traffico su Tratti Autostradali<br />

Can<strong>di</strong>dati: Carlo Caligaris, Iacopo Salvarani<br />

Relatore: Ch.mo Prof. Ing. Simona Sacone<br />

Correlatori: Dott. Alessandro Seri, Dott. Ing. Silvia Siri<br />

Con la Collaborazione <strong>di</strong>: Società Autostrade per l’Italia S.p.A.<br />

2006


Sommario<br />

Questa <strong>Tesi</strong> si propone <strong>di</strong> illustrare il lavoro da noi svolto presso la Società Au-<br />

tostrade per l’Italia e f<strong>in</strong>alizzato alla realizzazione <strong>di</strong> uno strumento <strong>in</strong>formatico<br />

<strong>in</strong> grado <strong>di</strong> simulare l’andamento del traffico lungo una tratta autostradale. Que-<br />

ste pag<strong>in</strong>e contengono una descrizione d’<strong>in</strong>sieme dell’ambiente <strong>di</strong> lavoro <strong>in</strong> cui ci<br />

siamo <strong>in</strong>seriti, una spiegazione teorica degli strumenti matematici ed <strong>in</strong>formatici<br />

utilizzati ed una presentazione del risultato f<strong>in</strong>ale che abbiamo conseguito. Gli<br />

argomenti scientifici trattati più nel dettaglio sono i modelli matematici per la rap-<br />

presentazione del traffico e la teoria <strong>in</strong>formatica relativa alla gestione <strong>di</strong> basi <strong>di</strong><br />

dati relazionali basate sul concetto <strong>di</strong> transazione.


R<strong>in</strong>graziamenti e Notazioni<br />

Figura 1: Highway Lanes [58]<br />

3


Carlo Caligaris, Iacopo Salvarani<br />

R<strong>in</strong>graziamenti <strong>di</strong> Carlo Caligaris e Iacopo Salvarani<br />

Scrivere questa <strong>Tesi</strong> e lavorare su questo progetto è stato un lavoro molto lungo<br />

e <strong>di</strong>fficile, ma al contempo gratificante e foriero <strong>di</strong> grande sod<strong>di</strong>sfazione. Per<br />

questi motivi non possiamo che r<strong>in</strong>graziare la prof. Simona Sacone, la quale ci<br />

ha proposto questa attività, ci ha consentito <strong>di</strong> lavorare sempre nelle migliori<br />

con<strong>di</strong>zioni possibili e ci ha seguito con grande puntualità aiutandoci anche ad<br />

<strong>in</strong><strong>di</strong>rizzare il nostro futuro. Con lei, citiamo anche la Dott. Silvia Siri che si è<br />

sempre <strong>di</strong>mostrata gentile e ben <strong>di</strong>sposta nei nostri confronti.<br />

Meritano un r<strong>in</strong>graziamento particolare anche tutte le persone che hanno se-<br />

guito il nostro percorso <strong>di</strong> <strong>in</strong>serimento nella realtà aziendale della Società Auto-<br />

strade per l’Italia. Ci riferiamo sicuramente al Dott. Alessandro Seri che, nono-<br />

stante i mille impegni, ha sempre trovato il tempo (e la pazienza) per ascoltarci<br />

e seguire i nostri progressi. Con lui ricor<strong>di</strong>amo anche Fabio Santucci, che ci ha<br />

aiutato moltissimo sui tanti problemi tecnici che abbiamo <strong>in</strong>contrato, sottraendo<br />

tempo al suo lavoro per de<strong>di</strong>carlo a noi. Inoltre, non possiamo non citare Valerio,<br />

che ha con<strong>di</strong>viso con noi la Sala Conferenze <strong>di</strong> Infoblu per due mesi, <strong>di</strong>mostrando-<br />

si una persona estremamente affabile e simpatica; Vittorugo, che trovava sempre<br />

il modo per tirarci un pò su <strong>di</strong> morale e Mary, una delle persone più gentili con le<br />

quali abbiamo mai avuto a che fare.<br />

Vogliamo r<strong>in</strong>graziare e salutare anche lo staff della sede della Direzione del<br />

Primo Tronco <strong>di</strong> Genova per averci accolto e fornito tutto quello <strong>di</strong> cui abbiamo<br />

avuto bisogno. Citiamo <strong>in</strong> particolare il dott. Paolo Sp<strong>in</strong>gar<strong>di</strong> e Crist<strong>in</strong>a Rossi.<br />

4


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong><br />

R<strong>in</strong>graziamenti <strong>di</strong> Carlo Caligaris<br />

Ebbene, questa è la mia <strong>Tesi</strong>.<br />

Ho sempre pensato alla realizzazione <strong>di</strong> questo lavoro come ad un momento<br />

importante della mia vita. So che, come si <strong>di</strong>ce f<strong>in</strong>o all’abuso, questo non deve<br />

essere un punto <strong>di</strong> arrivo ma anzi un punto <strong>di</strong> partenza, tuttavia, sarebbe nega-<br />

re la realtà sm<strong>in</strong>uire la <strong>di</strong>mensione <strong>di</strong> questo evento. Ho sempre dato un grande<br />

valore alla scuola ed al lavoro fatto <strong>in</strong> funzione <strong>di</strong> essa e la <strong>Laurea</strong> è una meta<br />

che ha con<strong>di</strong>zionato ogni aspetto della mia vita f<strong>in</strong> da quando ho memoria. Aver-<br />

la raggiunta mi pone <strong>in</strong> una <strong>di</strong>mensione nuova che spero possa essere ricca <strong>di</strong><br />

sod<strong>di</strong>sfazione come la precedente.<br />

La possibilità <strong>di</strong> scrivere una pag<strong>in</strong>a come questa nella mia <strong>Tesi</strong> si è pre-<br />

sentata nel momento <strong>in</strong> cui ho visto quelle scritte da alcuni miei colleghi. Da<br />

quel momento, mi sono <strong>in</strong>terrogato molto su come organizzarla e sul criterio con<br />

il quale <strong>in</strong>serire le varie persone che, a mio parere, meritano <strong>di</strong> essere ricordate.<br />

Alla f<strong>in</strong>e, ho deciso <strong>di</strong> r<strong>in</strong>graziare tutti quelli che mi hanno aiutato <strong>in</strong> modo impor-<br />

tante durante questi c<strong>in</strong>que anni e mezzo <strong>di</strong> Universitá, sia <strong>in</strong> ambito prettamente<br />

scolastico che <strong>in</strong> altri settori.<br />

Il primo r<strong>in</strong>graziamento va a Dio e spiegare i motivi mi sembra, come <strong>di</strong>re,<br />

superfluo. Qu<strong>in</strong><strong>di</strong>, vorrei r<strong>in</strong>graziare tutti i membri della mia famiglia: mio papà<br />

Ottavio, che mi ha sempre seguito con grande attenzione, mia mamma Roberta,<br />

che mi ha sempre aiutato con tutto l’affetto <strong>di</strong> cui solo una mamma è capace, ed<br />

i nonni Carlo e Maria (che però tutti chiamano Giovanna) che si sono sempre<br />

<strong>in</strong>teressati ai miei risultati universitari. Vorrei citare e salutare anche i miei due<br />

gatti: Spot e Isis.<br />

Tra i docenti, la prima persona da r<strong>in</strong>graziare è <strong>di</strong> nuovo mio papà: il suo<br />

doppio ruolo non ci ha mai creato grossi problemi e spero che questa situazione<br />

sia stata ben accetatta anche dall’ambiente circostante. Con lui, saluto anche<br />

il prof. Oliva. Voglio poi r<strong>in</strong>graziare la prof. Simona Sacone (e con lei Silvia<br />

Siri) che ci ha proposto questa <strong>Tesi</strong> e ci ha seguito nel lavoro conseguente. Un<br />

5


Carlo Caligaris, Iacopo Salvarani<br />

r<strong>in</strong>graziamento va anche ad Angelo Alessandri, che si è <strong>di</strong>mostrato una persona<br />

molto <strong>in</strong>teressata ed <strong>in</strong>teressante e con il quale spero, <strong>in</strong> futuro, <strong>di</strong> <strong>in</strong>traprendere<br />

qualche fruttuosa collaborazione. R<strong>in</strong>grazio anche il prof. Giribone, che si è<br />

sempre curato delle mie (alterne) fortune. Inf<strong>in</strong>e, voglio r<strong>in</strong>graziare due ragazzi<br />

che, per la loro età potrebbero anche essere <strong>in</strong>clusi nel paragrafo sottostante, ma<br />

il cui ruolo ne impone la presenza <strong>in</strong> questo contesto e me li propone come esempi<br />

da seguire: questi sono Renato Procopio e Federico Delf<strong>in</strong>o (colgo l’occasione<br />

per ricordare il padre <strong>di</strong> Federico, scomparso prematuramente, <strong>in</strong>segnante <strong>di</strong> rara<br />

qualità del quale ho avuto la fortuna <strong>di</strong> seguire un <strong>in</strong>tero corso).<br />

Inf<strong>in</strong>e, vorrei r<strong>in</strong>graziare un pò <strong>di</strong> amici. Il più importante e più grande <strong>di</strong><br />

questi r<strong>in</strong>graziamenti va a Iacopo, il mio amico migliore e l’unica persona con la<br />

quale sarei stato <strong>in</strong> grado <strong>di</strong> svolgere un lavoro così impegnativo come quello <strong>in</strong>e-<br />

rente questa <strong>Tesi</strong>. L’altro amico che ho conosciuto <strong>in</strong> questi anni è Fabio Gungui;<br />

ragazzo <strong>di</strong> grande serietà ed ambizione e cortesia Spero che <strong>in</strong> futuro potremo<br />

ancora <strong>in</strong>crociare le nostre strade che, per adesso, si <strong>di</strong>videranno. Ho avuto la<br />

fortuna <strong>di</strong> con<strong>di</strong>videre il camm<strong>in</strong>o anche con persone con le quali spero <strong>di</strong> mante-<br />

nere un rapporto durevole negli anni: Francesca Viale, Michela Morasso, Andrea<br />

Pitzalis, Livio G<strong>in</strong>evri e Federico Beltram<strong>in</strong>i. Queste sono le persone che hanno<br />

reso il mio soggiorno universitario più leggero e piacevole e la cui amicizia è una<br />

delle cose più preziose che questi anni mi hanno lasciato.<br />

6


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong><br />

R<strong>in</strong>graziamenti <strong>di</strong> Iacopo Salvarani<br />

Onestamente non sono mai stato un drago a fare <strong>di</strong>scorsoni... e non penso <strong>di</strong> aver<br />

imparato proprio prima <strong>di</strong> mettermi a scrivere questa pag<strong>in</strong>a. Non sono mai stato<br />

un grande amante della forma e <strong>in</strong> cuor mio spero <strong>di</strong> non <strong>di</strong>ventarlo mai. Per-<br />

tanto perdonate il l<strong>in</strong>guaggio un poco colloquiale e prendetelo a testimone della<br />

s<strong>in</strong>ceritá <strong>di</strong> ciò che scrivo...<br />

Con queste poche righe voglio cercare <strong>di</strong> mostrare tutta la gratitu<strong>di</strong>ne che provo<br />

verso le persone che <strong>in</strong> questo qu<strong>in</strong>quennio hanno contribuito al raggiungimento<br />

<strong>di</strong> questo mio traguardo.<br />

Grazie a quella gabbia <strong>di</strong> matti che é la mia famiglia, della quale sono felice<br />

e fiero <strong>di</strong> far parte, per il sostegno economico e soprattutto per quello morale.<br />

Grazie alla Vale, che quando preparavo Impianti Industriali 1 mi hai regalato<br />

la cocc<strong>in</strong>ella volante.<br />

Grazie a Carlo, col quale ho potuto lavorare e <strong>di</strong>vertirmi al contempo (e non<br />

mi pare poco). Se non fosse stato per il tuo sprone, pigro come sono, ci avrei<br />

messo almeno un anno <strong>in</strong> piú.<br />

Grazie a tutti i compagni <strong>di</strong> corso coi quali ho vissuto numerose avventure <strong>in</strong>sieme<br />

(partite, risate, aperitivi, cene, feste, fest<strong>in</strong>i, festoni e altre amenitá del genere),<br />

per merito vostro sono stati c<strong>in</strong>que anni piacevoli.<br />

post scriptum<br />

Per tutte le persone alle quali tengo, che amo e che stimo ma che non ho citato<br />

sopra:<br />

Tranquilli... non mi sono <strong>di</strong>menticato <strong>di</strong> voi (anche se conoscendomi <strong>in</strong> effetti il<br />

dubbio era lecito)... semplicemente non avete avuto parte nella mia vita universi-<br />

taria e non mi sembrava l’occasione adatta per <strong>di</strong>rvi grazie.<br />

7


Carlo Caligaris, Iacopo Salvarani<br />

E poi lo sapete, appartenete a qualcosa <strong>di</strong> ben piú importante <strong>di</strong> una tesi <strong>di</strong> lau-<br />

rea; appartenete alla mia vita quoti<strong>di</strong>ana... e per quella vi tributo giá, anche se<br />

silenziosamente, 365 grazie all’anno, e 366 nei bisestili.<br />

8


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong><br />

Notazione Utilizzata<br />

Organizzazione del Testo<br />

La <strong>Tesi</strong> è <strong>di</strong>visa <strong>in</strong> Capitoli, Sezioni, Sottosezioni e Sottosottosezioni.<br />

Nel corso della trattazione, queste quattro sud<strong>di</strong>visioni saranno riconoscibili per<br />

il carattere del loro titolo e per il numero che compare a s<strong>in</strong>istra <strong>di</strong> quest’ultimo<br />

(tranne che nel caso delle Sottosottosezioni).<br />

Il numero identificativo del paragrafo corrente può essere composto da uno, due<br />

o tre elementi. Evidentemente, il primo numero <strong>in</strong><strong>di</strong>ca il Capitolo, il secondo,<br />

ove presente, la Sezione, il terzo, ove presente, la Sottosezione. Le Sottosot-<br />

tosezioni sono considerate come uno strumento <strong>di</strong> organizzazione del testo a li-<br />

vello basso e qu<strong>in</strong><strong>di</strong> non hanno alcun numero identificativo (e, conseguentemen-<br />

te, non compaiono nemmeno sull’In<strong>di</strong>ce). Il paragrafo che state leggendo è una<br />

Sottosezione.<br />

Citazioni<br />

Le citazioni possono comparire <strong>in</strong> seguito ad una figura o ad un campo <strong>di</strong> testo.<br />

Nel caso della figura, <strong>in</strong><strong>di</strong>cano la risorsa dalla quale quella figura è stata estratta.<br />

Se mancante, significa che la figura è stata prodotta dagli Autori della <strong>Tesi</strong>. Per<br />

quanto riguarda le citazioni immerse nel testo, esse <strong>in</strong><strong>di</strong>cano gli strumenti da cui<br />

sono state tratte le <strong>in</strong>formazioni riportate <strong>in</strong> precedenza. A seconda del livello <strong>di</strong><br />

profon<strong>di</strong>tà che la struttura del testo assume <strong>in</strong> un particolare contesto, la citazione<br />

può essere posta <strong>in</strong> coda ad un Capitolo, ad una Sezione o ad una Sottosezione<br />

(non ad una Sottosottosezione). La citazione è valida a ritroso f<strong>in</strong>o al primo titolo<br />

<strong>di</strong> una non Sottosottosezione o f<strong>in</strong>o ad un’altra citazione, se precedente a quel<br />

titolo.<br />

Evidentemente, ove le citazioni fossero assenti, il testo sarebbe frutto della mente<br />

degli Autori ed i loro ispiratori sarebbero tanti e tali da non poter comparire <strong>in</strong> un<br />

solo riferimento bibliografico.<br />

9


10<br />

Carlo Caligaris, Iacopo Salvarani


In<strong>di</strong>ce<br />

1 Presentazione del Lavoro e <strong>di</strong> Autostrade per l’Italia S.p.A. 17<br />

1.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

1.2 La Società Autostrade . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

1.2.1 Autostrade per l’Italia . . . . . . . . . . . . . . . . . . . 19<br />

1.2.2 Infoblu . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

1.3 AutoTraf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

1.3.1 Interfaccia <strong>di</strong> AutoTraf . . . . . . . . . . . . . . . . . . . 22<br />

1.3.2 Possibili Implementazioni . . . . . . . . . . . . . . . . . 25<br />

2 Strumenti Matematici 27<br />

2.1 L’Obiettivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

2.2 Introduzione ai Modelli <strong>di</strong> Traffico . . . . . . . . . . . . . . . . . 30<br />

2.2.1 L’Utilità dei Modelli <strong>di</strong> Traffico . . . . . . . . . . . . . . 30<br />

2.2.2 Modelli Microscopici . . . . . . . . . . . . . . . . . . . . 32<br />

2.2.3 Modelli Macroscopici . . . . . . . . . . . . . . . . . . . 39<br />

2.2.4 Modelli Mesoscopici . . . . . . . . . . . . . . . . . . . . 44<br />

2.2.5 Trattazione Analitica . . . . . . . . . . . . . . . . . . . . 45<br />

2.3 Il Modello Macroscopico <strong>di</strong> Traffico Autostradale . . . . . . . . . 49<br />

2.3.1 Un esempio <strong>di</strong> trasporto nel caso della velocità costante . 51<br />

2.4 Modelli Differenziali <strong>di</strong> Traffico Autostradale . . . . . . . . . . . 53<br />

2.4.1 Ripartenza dopo un blocco . . . . . . . . . . . . . . . . . 55<br />

2.4.2 La formazione <strong>di</strong> code . . . . . . . . . . . . . . . . . . . 61<br />

2.5 Meto<strong>di</strong> <strong>di</strong> calcolo numerici alle Differenze F<strong>in</strong>ite . . . . . . . . . 64<br />

11


INDICE Carlo Caligaris, Iacopo Salvarani<br />

2.5.1 Generalità Sulle Equazioni Iperboliche . . . . . . . . . . 64<br />

2.5.2 Introduzione al Metodo delle Differenze F<strong>in</strong>ite . . . . . . 67<br />

2.6 Il Modello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

2.6.1 La Scelta del Modello . . . . . . . . . . . . . . . . . . . 94<br />

2.6.2 L’equazione fondamentale <strong>di</strong> Papageorgiou . . . . . . . . 95<br />

2.6.3 L’Equazione del Modello . . . . . . . . . . . . . . . . . . 97<br />

2.6.4 Le Equazioni <strong>di</strong> Papageorgiou . . . . . . . . . . . . . . . 100<br />

2.6.5 Inizializzazione del modello . . . . . . . . . . . . . . . . 109<br />

2.6.6 Pregi e <strong>di</strong>fetti del modello . . . . . . . . . . . . . . . . . 110<br />

3 Strumenti Informatici Utilizzati 115<br />

3.1 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

3.1.1 Introduzione al L<strong>in</strong>guaggio <strong>di</strong> Programmazione Java . . . 116<br />

3.1.2 L<strong>in</strong>guaggi Macch<strong>in</strong>a, Assembly e <strong>di</strong> Alto Livello . . . . . 116<br />

3.1.3 La Storia dei L<strong>in</strong>guaggi C e C++ . . . . . . . . . . . . . . 118<br />

3.1.4 La Storia <strong>di</strong> Java . . . . . . . . . . . . . . . . . . . . . . 119<br />

3.1.5 Le Librerie <strong>di</strong> Classi Java . . . . . . . . . . . . . . . . . . 120<br />

3.1.6 Gli Elementi Fondamentali <strong>di</strong> un Tipico Ambiente Java . . 120<br />

3.1.7 Concetti Fondamentali della Tecnologia ad Oggetti . . . . 123<br />

3.2 Le Basi <strong>di</strong> Dati ed i Sistemi <strong>di</strong> Gestione <strong>di</strong> Basi <strong>di</strong> Dati . . . . . . 125<br />

3.2.1 Introduzione alle Basi <strong>di</strong> Dati . . . . . . . . . . . . . . . 125<br />

3.2.2 Modelli dei Dati: il Modello Relazionale . . . . . . . . . 128<br />

3.2.3 Livelli <strong>di</strong> Astrazione nel DBMS ed In<strong>di</strong>pendenza dei Dati 129<br />

3.2.4 Def<strong>in</strong>izioni Fondamentali . . . . . . . . . . . . . . . . . . 131<br />

3.2.5 Relazioni e Basi <strong>di</strong> Dati . . . . . . . . . . . . . . . . . . 132<br />

3.2.6 L<strong>in</strong>guaggi ed Utenti delle Basi <strong>di</strong> Dati . . . . . . . . . . . 134<br />

3.2.7 Vantaggi e Svantaggi dei DBMS . . . . . . . . . . . . . . 135<br />

3.3 Oracle9i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />

3.3.1 Introduzione ad Oracle9i . . . . . . . . . . . . . . . . . . 137<br />

3.3.2 Componenti per lo Sviluppo <strong>di</strong> Applicazioni su Database . 139<br />

3.3.3 Componenti <strong>di</strong> Connessione del Database . . . . . . . . . 140<br />

3.3.4 Oracle9iApplication Server . . . . . . . . . . . . . . . . 141<br />

12


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> INDICE<br />

3.3.5 Confronto con Altri RDBMS . . . . . . . . . . . . . . . . 142<br />

3.4 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

3.4.1 Introduzione ad SQL . . . . . . . . . . . . . . . . . . . . 144<br />

3.4.2 Standar<strong>di</strong>zzazione dell’SQL . . . . . . . . . . . . . . . . 144<br />

3.4.3 Interrogazioni <strong>in</strong> SQL . . . . . . . . . . . . . . . . . . . 145<br />

3.5 JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br />

3.5.1 Cosa Significa JDBC? . . . . . . . . . . . . . . . . . . . 146<br />

3.5.2 Gli Oracle JDBC Drivers . . . . . . . . . . . . . . . . . . 146<br />

3.5.3 La Connessione da Java ad Oracle . . . . . . . . . . . . . 148<br />

3.6 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />

3.6.1 Introduzione ad XML . . . . . . . . . . . . . . . . . . . 149<br />

3.6.2 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

3.6.3 Che Cosa È l’XML . . . . . . . . . . . . . . . . . . . . . 151<br />

3.6.4 Lo Stack <strong>di</strong> Protocolli XML . . . . . . . . . . . . . . . . 151<br />

3.6.5 Specifiche XML . . . . . . . . . . . . . . . . . . . . . . 153<br />

3.6.6 Le Interfacce <strong>di</strong> Programmazione . . . . . . . . . . . . . 154<br />

3.6.7 Altre Specifiche XML . . . . . . . . . . . . . . . . . . . 156<br />

3.6.8 Java ed XML . . . . . . . . . . . . . . . . . . . . . . . . 159<br />

3.7 SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160<br />

3.7.1 Cosa è SVG . . . . . . . . . . . . . . . . . . . . . . . . . 160<br />

3.7.2 Storia e Vantaggi <strong>di</strong> SVG . . . . . . . . . . . . . . . . . . 160<br />

3.8 JavaScript ed HTML . . . . . . . . . . . . . . . . . . . . . . . . 162<br />

3.8.1 Cosa è JavaScript . . . . . . . . . . . . . . . . . . . . . . 162<br />

3.8.2 Script<strong>in</strong>g e Programmazione . . . . . . . . . . . . . . . . 163<br />

3.8.3 Pr<strong>in</strong>cipali Caratteristiche <strong>di</strong> JavaScript . . . . . . . . . . . 163<br />

3.8.4 Come Inserire uno Script <strong>in</strong> un Documento HTML . . . . 164<br />

3.8.5 ECMAScript . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

4 Oggetto del Lavoro 167<br />

4.1 Presentazione del Tratto Milano-Brescia . . . . . . . . . . . . . . 168<br />

4.1.1 La Autostrada A4 . . . . . . . . . . . . . . . . . . . . . . 168<br />

4.1.2 Il Tratto Milano-Brescia . . . . . . . . . . . . . . . . . . 171<br />

13


INDICE Carlo Caligaris, Iacopo Salvarani<br />

4.1.3 Quante Auto hanno il Telepass? . . . . . . . . . . . . . . 177<br />

4.1.4 Matrice <strong>di</strong> Ingresso ed Uscita . . . . . . . . . . . . . . . 183<br />

5 Applicazione del Modello 191<br />

5.1 Il Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192<br />

5.2 Il Simulatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193<br />

5.2.1 Equazione della Densità . . . . . . . . . . . . . . . . . . 195<br />

5.2.2 Equazione della Velocità . . . . . . . . . . . . . . . . . . 197<br />

5.2.3 Equazione Fondamentale <strong>di</strong> Papageorgiou . . . . . . . . 198<br />

5.2.4 Funzionamento del Programma . . . . . . . . . . . . . . 199<br />

5.2.5 Def<strong>in</strong>izioni . . . . . . . . . . . . . . . . . . . . . . . . . 201<br />

5.2.6 Ri<strong>di</strong>mensionamento dei Vettori . . . . . . . . . . . . . . 201<br />

5.2.7 Inizializzazione dei Vettori . . . . . . . . . . . . . . . . . 201<br />

5.2.8 Cancellazione dei Files XML . . . . . . . . . . . . . . . 201<br />

5.2.9 Inizializzazione dei Parametri . . . . . . . . . . . . . . . 202<br />

5.2.10 Inizializzazione degli Ingressi . . . . . . . . . . . . . . . 203<br />

5.2.11 Inizializzazione delle Uscite . . . . . . . . . . . . . . . . 204<br />

5.2.12 Inizializzazione <strong>di</strong> Velocità, Flussi e Densità . . . . . . . 205<br />

5.2.13 Simulazione . . . . . . . . . . . . . . . . . . . . . . . . 208<br />

5.2.14 Come Usiamo la JDBC per Passare Queries al Database . 211<br />

5.2.15 La Nostra Tabella sul Database . . . . . . . . . . . . . . . 214<br />

5.2.16 Interfaccia del Simulatore . . . . . . . . . . . . . . . . . 215<br />

5.2.17 Grafici con Matlab . . . . . . . . . . . . . . . . . . . . . 228<br />

5.3 Considerazioni sui Grafici . . . . . . . . . . . . . . . . . . . . . 231<br />

5.3.1 Grafico Flusso-Densità . . . . . . . . . . . . . . . . . . . 231<br />

5.3.2 Assonometria della Velocità . . . . . . . . . . . . . . . . 232<br />

5.4 Programma <strong>di</strong> Controllo . . . . . . . . . . . . . . . . . . . . . . 235<br />

5.4.1 Elenco.js e Controllo.html . . . . . . . . . . . . 239<br />

5.4.2 Simulazioni Confrontabili e Simulazioni non Confrontabili 241<br />

5.4.3 Esecuzione delle Query . . . . . . . . . . . . . . . . . . . 242<br />

5.4.4 Scrittura sui files xml . . . . . . . . . . . . . . . . . . . 242<br />

5.4.5 Rappresentazione Grafica del Controllo . . . . . . . . . . 249<br />

14


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> INDICE<br />

5.5 Qualche Risultato . . . . . . . . . . . . . . . . . . . . . . . . . . 254<br />

6 Sviluppi Futuri 259<br />

6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260<br />

6.2 Pubblicazione sul Server . . . . . . . . . . . . . . . . . . . . . . 261<br />

6.3 Disegno delle Curve <strong>di</strong> Approssimazione delle Entrate . . . . . . 263<br />

6.4 Applicazione ad Altre Tratte . . . . . . . . . . . . . . . . . . . . 268<br />

15


INDICE Carlo Caligaris, Iacopo Salvarani<br />

16


Capitolo 1<br />

Presentazione del Lavoro e <strong>di</strong><br />

Autostrade per l’Italia S.p.A.<br />

Figura 1.1: Infrared picture of the <strong>in</strong>terchange of I-95 and I-695, northeast of<br />

Baltimore. [61]<br />

17


1.1. INTRODUZIONE Carlo Caligaris, Iacopo Salvarani<br />

1.1 Introduzione<br />

Per la realizzazione <strong>di</strong> questa <strong>Tesi</strong>, abbiamo collaborato con la Società Autostrade<br />

per l’Italia S.p.A..<br />

Il nostro obiettivo era quello <strong>di</strong> realizzare un simulatore <strong>di</strong> traffico autostra-<br />

dale su una tratta specifica (nel nostro caso la Autostrada A4 nel tratto Milano -<br />

Brescia). In pratica, abbiamo costruito un software <strong>in</strong> grado <strong>di</strong> ricevere <strong>in</strong> <strong>in</strong>gres-<br />

so i dati sul traffico rilevati sulla rete, elaborarli secondo un modello matematico<br />

derivante dalle equazioni <strong>di</strong> cont<strong>in</strong>uità e <strong>di</strong> conservazione della massa caratteri-<br />

stiche della <strong>di</strong>namica dei flui<strong>di</strong> ed ottenere dei valori previsti <strong>di</strong> velocità, flusso e<br />

densità per i 30 m<strong>in</strong>uti successivi all’istante <strong>di</strong> partenza. Questi dati vengono poi<br />

visualizzati tramite un’<strong>in</strong>terfaccia che ne consente la comprensione imme<strong>di</strong>ata.<br />

Entreremo nel dettaglio del nostro lavoro nei Capitoli seguenti; per ora ci <strong>in</strong>teres-<br />

sa <strong>in</strong>trodurre l’ambiente al quale abbiamo fatto riferimento durante lo svolgimento<br />

del nostro lavoro, ossia quello della Società Autostrade.<br />

18


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 1. PRESENTAZIONE DEL LAVORO E DI AUTOSTRADE PER L’ITALIA S.P.A.<br />

1.2 La Società Autostrade<br />

Il Gruppo Autostrade si posiziona al primo posto <strong>in</strong> Europa tra i concessionari <strong>di</strong><br />

costruzione e gestione <strong>di</strong> autostrade a pedaggio e <strong>di</strong> servizi alla mobilità. Tra le<br />

società del gruppo è compresa Autostrade per l’Italia S.p.A., che ha <strong>in</strong> gestione<br />

2854.6 km <strong>di</strong> rete autostradale (tra cui anche il tratto <strong>di</strong> nostro <strong>in</strong>teresse). Tra<br />

le attività collegate al proprio core bus<strong>in</strong>ess, il Gruppo Autostrade ha attivato la<br />

Infoblu S.p.A., che svolge attività relative alla produzione e <strong>di</strong>ffusione <strong>di</strong> servizi<br />

<strong>in</strong>formativi sulle con<strong>di</strong>zioni del traffico lungo la rete autostradale. [54]<br />

1.2.1 Autostrade per l’Italia<br />

Autostrade per l’Italia, controllata al 100% dalla hol<strong>di</strong>ng Autostrade S.p.A., è la<br />

società capofila del settore autostradale del Gruppo Autostrade, che dal 1 luglio<br />

del 2003 ha completato il processo <strong>di</strong> riorganizzazione strategica (Progetto Me<strong>di</strong>-<br />

terraneo), attraverso il conferimento delle attività operative a società <strong>di</strong> nuova co-<br />

stituzione. A seguito del conferimento, la società concessionaria delle attività <strong>di</strong><br />

costruzione e gestione della rete autostradale Autostrade concessioni e costruzioni<br />

S.p.A. ha assunto. la nuova denom<strong>in</strong>azione Autostrade per l’Italia S.p.A..<br />

Autostrade per l’Italia, oltre alla rete <strong>in</strong> concessione, controlla a sua volta altre<br />

8 società concessionarie (Traforo Monte Bianco, Raccordo autostradale Valdosta-<br />

no (RAV) Tor<strong>in</strong>o-Savona, Tangenziale <strong>di</strong> Napoli, Società Autostrade Meri<strong>di</strong>ona-<br />

li (SAM), Strada dei Parchi, Società Autostrada Tirrenica (SAT) e Pedemontana<br />

Lombarda). La rete gestita da tutte le società concessionarie appartenenti al Grup-<br />

po ha un’estensione <strong>di</strong> 3408.1 Km, pari al 62% della rete autostradale italiana a<br />

pedaggio.<br />

19


1.2. LA SOCIETÀ AUTOSTRADE Carlo Caligaris, Iacopo Salvarani<br />

Figura 1.2: Organigramma [55]<br />

L’impegno <strong>di</strong> Autostrade per l’Italia è focalizzato ad assicurare la massima<br />

funzionalità della rete autostradale e a perseguire il costante miglioramento del-<br />

la sicurezza e della qualità del servizio offerto alla clientela, anche attraverso lo<br />

sviluppo <strong>di</strong> servizi <strong>in</strong>novativi. La cont<strong>in</strong>uità dell’impegno profuso da Autostra-<br />

de per l’Italia rispetto alla sicurezza, la telematica e l’ambiente hanno consentito<br />

alla Società <strong>di</strong> partecipare con un ruolo <strong>di</strong> primo piano alla Piattaforma Tecnolo-<br />

20


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 1. PRESENTAZIONE DEL LAVORO E DI AUTOSTRADE PER L’ITALIA S.P.A.<br />

gica Europea, de<strong>di</strong>cata al tema della costruzione e della gestione delle <strong>in</strong>frastrut-<br />

ture promossa dalla Direzione Generale Ricerca della Commissione Europea e<br />

f<strong>in</strong>alizzata allo sviluppo <strong>di</strong> piani pluriennali <strong>di</strong> ricerca e <strong>in</strong>novazione tecnologica.<br />

[54]<br />

1.2.2 Infoblu<br />

Infoblu nasce dalle più avanzate tecnologie del gruppo Autostrade e cresce come<br />

società nel settore dell’<strong>in</strong>fomobilità offrendo <strong>in</strong>formazioni e servizi personalzzati<br />

ed <strong>in</strong> tempo reale.<br />

Infoblu, nata nel 2000 con le più avanzate esperienze e tecnologie del gruppo Au-<br />

tostrade, è un progetto che si è evoluto nel tempo e che è oggi partecipato al 100%<br />

da Autostrade SpA con un team composto da persone altamente qualificate <strong>in</strong> gra-<br />

do <strong>di</strong> rispondere alle esigenze <strong>di</strong> mercato.<br />

Infoblu nasce per sod<strong>di</strong>sfare i bisogni <strong>di</strong> <strong>in</strong>formazione sulla viabilità delle per-<br />

sone <strong>in</strong> movimento, con l’obiettivo <strong>di</strong> erogare <strong>in</strong> modo utile, semplice e veloce<br />

servizi sull’<strong>in</strong>fomobilità ad automobilisti ed a chiunque necessiti <strong>in</strong>formazioni e<br />

contenuti autorevoli su traffico, percorribilità delle autostrade, eventi autostradali<br />

che hanno <strong>in</strong>cidenza sulla mobilità, percorsi alternativi, microclima e molto al-<br />

tro. Attraverso le più moderne tecnologie, Infoblu è <strong>in</strong> grado <strong>di</strong> erogare contenuti<br />

sull’<strong>in</strong>fomobilità a emittenti televisive e ra<strong>di</strong>ofoniche, operatori on l<strong>in</strong>e, società <strong>di</strong><br />

servizi e <strong>di</strong>versi altri operatori che necessitano <strong>di</strong> <strong>in</strong>formazioni <strong>in</strong> tempo reale su<br />

percorsi autostradali, traffico, tempi <strong>di</strong> percorrenza, proiezioni ed altro.<br />

A livello concettuale <strong>in</strong> Infoblu si può identificare il seguente ambito <strong>di</strong> sviluppo<br />

tecnologico: sistemi e tecnologie volte a fornire al personale operativo <strong>in</strong>terno,<br />

agli utenti ed al mondo degli operatori del settore le <strong>in</strong>formazioni sulla viabi-<br />

lità, lo stato della percorribilità della rete (tempi <strong>di</strong> percorrenza, immag<strong>in</strong>i e vi-<br />

deo), le criticità nei percorsi (<strong>in</strong>cidenti, cantieri, etc.), gli impe<strong>di</strong>menti <strong>di</strong> natura<br />

meteorologica, servizi e facilities usufruibili su rete. [56]<br />

21


1.3. AUTOTRAF Carlo Caligaris, Iacopo Salvarani<br />

1.3 AutoTraf<br />

Per rispondere alle moderne esigenze <strong>di</strong> <strong>in</strong>fomobilità, Autostrade ha sviluppato<br />

un sistema <strong>di</strong> rilevazione dei tempi <strong>di</strong> percorrenza sulle tratte autostradali. Tale si-<br />

stema, denom<strong>in</strong>ato AutoTraf, consiste nell’effettuare <strong>in</strong> modo completamente au-<br />

tomatico la stima delle con<strong>di</strong>zioni <strong>di</strong> viabilità basandosi su una misura oggettiva:<br />

il tempo <strong>di</strong> percorrenza tra due stazioni successive.<br />

Ogni giorno la rete autostradale è percorsa da 4 milioni <strong>di</strong> veicoli che al loro<br />

<strong>in</strong>gresso <strong>in</strong> autostrada ricevono un biglietto (fisico o virtuale) che viene ritirato <strong>in</strong><br />

uscita. Quando un veicolo entra ed esce dalla rete autostradale vengono registrate<br />

la stazione, la data e l’ora <strong>di</strong> transito. È possibile qu<strong>in</strong><strong>di</strong> ricostruire il tempo <strong>di</strong><br />

percorrenza da una stazione all’altra e, nota la <strong>di</strong>stanza tra queste stazioni, la ve-<br />

locità me<strong>di</strong>a mantenuta. Confrontando i tempi <strong>di</strong> percorrenza con dei tempi me<strong>di</strong><br />

stimati per ciascuna tratta è possibile determ<strong>in</strong>are lo stato della viabilità sulla rete<br />

autostradale.<br />

AutoTraf calcola il tempo necessario per percorrere una tratta base, <strong>in</strong>tesa co-<br />

me tratta autostradale tra due accessi (entrata/uscita) consecutivi, utilizzando i<br />

dati provenienti dalle piste Telepass, ed <strong>in</strong>tegrandoli con quelli provenienti da una<br />

rete <strong>di</strong> sensori collocati <strong>in</strong> it<strong>in</strong>ere. Nel seguito parleremo dettagliamente della<br />

sensoristica utilizzata. [4]<br />

1.3.1 Interfaccia <strong>di</strong> AutoTraf<br />

Il sistema <strong>di</strong>spone <strong>di</strong> un’<strong>in</strong>terfaccia web che mostra, nella prima schermata, lo<br />

stato della percorrenza sull’<strong>in</strong>tera rete autostradale, attraverso l’uso <strong>di</strong> colori che<br />

esprimono le con<strong>di</strong>zioni <strong>di</strong> viabilità attualmente stimate per ogni tratto.<br />

22


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 1. PRESENTAZIONE DEL LAVORO E DI AUTOSTRADE PER L’ITALIA S.P.A.<br />

Figura 1.3: Rete Autostradale gestita da AutoTraf [53]<br />

Il colore blu <strong>in</strong><strong>di</strong>ca una situazione <strong>in</strong>determ<strong>in</strong>ata per carenza <strong>di</strong> dati, mentre il<br />

traffico regolare, rallentato, o con code viene <strong>in</strong><strong>di</strong>cato rispettivamente con i colori<br />

verde, giallo o rosso. L’attribuzione <strong>di</strong> un colore ad un tratto avviene <strong>in</strong> base<br />

all’<strong>in</strong><strong>di</strong>ce <strong>di</strong> percorrenza stimato ed alle soglie def<strong>in</strong>ite per quel tratto: se l’<strong>in</strong><strong>di</strong>ce<br />

<strong>di</strong> percorrenza è m<strong>in</strong>ore <strong>di</strong> 1.5, ovvero se il tempo stimato non supera il 150% del<br />

tempo <strong>di</strong> riferimento, il colore è verde, giallo se l’<strong>in</strong><strong>di</strong>ce è compreso tra 1.5 e 2.0,<br />

23


1.3. AUTOTRAF Carlo Caligaris, Iacopo Salvarani<br />

e rosso se è maggiore <strong>di</strong> 2.0. Con un click su un’area della cart<strong>in</strong>a, si accede ad<br />

una visione <strong>di</strong> dettaglio della rete. Il sistema offre attualmente un dettaglio per<br />

ognuno dei nove tronchi.<br />

Figura 1.4: Dettaglio della A4 e della A8 [53]<br />

È possibile avvic<strong>in</strong>are ulteriormente il punto <strong>di</strong> vista dell’utente visualizzando<br />

una particolare tratta compresa nella schermata precedente.<br />

Figura 1.5: Il tratto Milano-Brescia [53]<br />

Da queste pag<strong>in</strong>e è possibile collegarsi a pag<strong>in</strong>e <strong>di</strong> supporto <strong>in</strong> grado <strong>di</strong> vi-<br />

sualizzare <strong>in</strong>formazioni sui vari tipi <strong>di</strong> congegni elettronici <strong>di</strong>stributi lungo la rete;<br />

24


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 1. PRESENTAZIONE DEL LAVORO E DI AUTOSTRADE PER L’ITALIA S.P.A.<br />

ogni telecamera, boa <strong>in</strong> it<strong>in</strong>ere, stazione etc. è collegata ad un pop-up che propone<br />

<strong>di</strong>verse elaborazioni dei dati ricevuti da quel <strong>di</strong>spositivo. [4]<br />

1.3.2 Possibili Implementazioni<br />

Dalla breve descrizione che abbiamo fornito <strong>di</strong> AutoTraf, appare chiaro come<br />

esso sia <strong>in</strong> grado <strong>di</strong> fornire esaurienti <strong>in</strong>formazioni sullo stato presente della rete<br />

autostradale, ma non abbia la possibilità <strong>di</strong> fornire alcuna <strong>in</strong>formazione <strong>di</strong> tipo<br />

previsionale su ciò che più probabilmente è <strong>in</strong> proc<strong>in</strong>to <strong>di</strong> accadere. Il nostro<br />

compito è proprio quello <strong>di</strong> elaborare uno strumento che sia <strong>in</strong> grado <strong>di</strong> att<strong>in</strong>gere<br />

dalle stesse risorse <strong>di</strong> AutoTraf ma che possa fornire <strong>in</strong><strong>di</strong>cazioni <strong>di</strong> massima sulla<br />

situazione del traffico nell’imme<strong>di</strong>ato futuro.<br />

25


1.3. AUTOTRAF Carlo Caligaris, Iacopo Salvarani<br />

26


Capitolo 2<br />

Strumenti Matematici<br />

Figura 2.1: Atlanta traffic jams at the <strong>in</strong>terstate connector <strong>in</strong> downtown [63]<br />

27


2.1. L’OBIETTIVO Carlo Caligaris, Iacopo Salvarani<br />

2.1 L’Obiettivo<br />

Come già illustrato nella sezione precedente l’obiettivo proposto è quello <strong>di</strong> stu-<br />

<strong>di</strong>are e cercare <strong>di</strong> prevedere, almeno nell’imme<strong>di</strong>ato futuro, il comportamento del<br />

traffico veicolare <strong>in</strong> un momento qualsiasi e su un tratto autostradale.<br />

Per raggiungere questo proposito occorre passare dallo stu<strong>di</strong>o del fenomeno<br />

<strong>in</strong> sè allo stu<strong>di</strong>o <strong>di</strong> una sua modellizzazione. Occorre pertanto seguire i seguenti<br />

punti.<br />

• Trasformare <strong>in</strong> <strong>in</strong>formazioni matematiche tutti i dati relativi all’autostrada,<br />

quali la con<strong>di</strong>zione del traffico (scorrevole, congestionato, rallentato, ecc.),<br />

le caratteristiche della carreggiata (velocità massima delle corsie, capienza<br />

massima <strong>di</strong> veicoli, ecc.), la quantità <strong>di</strong> veicoli <strong>in</strong> <strong>in</strong>gresso ed <strong>in</strong> uscita dalle<br />

stazioni <strong>di</strong> pedaggio e molte altre.<br />

• Scegliere un <strong>in</strong>sieme <strong>di</strong> grandezze che, ad ogni istante <strong>di</strong> tempo t, descriva-<br />

no <strong>in</strong> maniera esauriente lo stato <strong>in</strong> cui si trova il sistema. Esse prendono il<br />

nome <strong>di</strong> variabili <strong>di</strong> stato del sistema:<br />

– ρ(x, t) è la densità veicolare e def<strong>in</strong>isce quanti veicoli stanno impe-<br />

gnando la carreggiata autostradale al tempo t ed <strong>in</strong> x;<br />

– q(x, t) è il flusso veicolare e def<strong>in</strong>isce quanti veicoli attraversano la<br />

sezione <strong>in</strong> x, <strong>in</strong> un determ<strong>in</strong>ato <strong>in</strong>tervallo <strong>di</strong> tempo t;<br />

– v(x, t) è la velocità me<strong>di</strong>a e def<strong>in</strong>sce la velocità me<strong>di</strong>a che i veicoli<br />

mantengono al tempo t ed <strong>in</strong> x.<br />

• Scegliere un <strong>in</strong>sieme <strong>di</strong> grandezze <strong>di</strong>namiche che ad ogni istante <strong>di</strong> tempo<br />

t descrivano <strong>in</strong> maniera esauriente l’<strong>in</strong>terazione fra l’esterno ed il sistema.<br />

Esse prendono il nome <strong>di</strong> variabili <strong>di</strong> <strong>in</strong>gresso del sistema e sono:<br />

– r(x, t) è il flusso <strong>di</strong> veicoli <strong>in</strong> <strong>in</strong>gresso e def<strong>in</strong>isce quanti veicoli si<br />

immettono, <strong>in</strong> un determ<strong>in</strong>ato <strong>in</strong>tervallo <strong>di</strong> tempo, sulla carreggiata, al<br />

tempo t ed <strong>in</strong> x;<br />

28


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

– s(x, t) è il flusso <strong>di</strong> veicoli <strong>in</strong> uscita e def<strong>in</strong>isce quanti veicoli fuo-<br />

riescono, <strong>in</strong> un determ<strong>in</strong>ato <strong>in</strong>tervallo <strong>di</strong> tempo, dalla carreggiata, al<br />

tempo t ed <strong>in</strong> x.<br />

• Scegliere un <strong>in</strong>sieme <strong>di</strong> grandezze statiche che descrivano <strong>in</strong> maniera esau-<br />

riente quelle che sono le caratteristiche fisiche della carreggiata autostrada-<br />

le. Esse prendono il nome <strong>di</strong> parametri fisici del sistema e sono:<br />

– vmax(x) è la velocità massima e def<strong>in</strong>isce la velocità che me<strong>di</strong>amente<br />

possono tenere i veicoli, <strong>in</strong> x con con<strong>di</strong>zioni <strong>di</strong> traffico scorrevole e<br />

carreggiata libera;<br />

– ρmax(x) è la densità massima (o densità <strong>di</strong> congestionamento) def<strong>in</strong>i-<br />

sce, <strong>in</strong> x, il valore <strong>di</strong> densità <strong>di</strong> veicoli che comporta un congestiona-<br />

mento e qu<strong>in</strong><strong>di</strong> il relativo blocco del traffico;<br />

– τ, ν e χ sono ulteriori parametri che def<strong>in</strong>iscono altre proprietà della<br />

carreggiata ed il cui significato fisico verrà illustrato successivamente.<br />

• Def<strong>in</strong>ire <strong>in</strong> quale maniera gli elementi del fenomeno reale <strong>in</strong>teragiscono<br />

e <strong>di</strong>pendono fra <strong>di</strong> loro. Gli stessi comportamenti dovrebbero essere de-<br />

scritti anche dal modello matematico. Le <strong>in</strong>terazioni e le <strong>di</strong>pendenze fra<br />

tutte le grandezze <strong>in</strong> gioco dovranno trasformarsi <strong>in</strong> equazioni e funzioni<br />

matematiche che agiranno sulle variabili <strong>di</strong> stato del modello.<br />

29


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

2.2 Introduzione ai Modelli <strong>di</strong> Traffico<br />

La realtà è multi<strong>di</strong>mensionale. Questa ovvia affermazione è, <strong>in</strong> sostanza, il motivo<br />

dell’<strong>in</strong>teresse a sviluppare modelli matematici basati su equazioni a derivate par-<br />

ziali. Spesso, anche un modello che utilizza equazioni <strong>di</strong>fferenziali or<strong>di</strong>narie è il<br />

risultato della semplificazione <strong>di</strong> un modello orig<strong>in</strong>ariamente formulato <strong>in</strong> più va-<br />

riabili. Nella riduzione del modello si utilizzano solitamente ipotesi che, talvolta,<br />

permettono un’utile semplificazione; tuttavia, questa non può essere la situazione<br />

generale.<br />

Per determ<strong>in</strong>ati obiettivi la forma particolare <strong>di</strong> un corpo, la sua composizione<br />

eterogenea e la presenza <strong>di</strong> stati transitori non possono essere trascurati senza che<br />

il modello perda <strong>di</strong> utilità. Di conseguenza si ha un aumento nel numero delle <strong>di</strong>-<br />

mensioni spaziali e/o l’<strong>in</strong>troduzione <strong>di</strong> una variabile temporale. Il modello cresce<br />

<strong>in</strong> complessità, ma, <strong>in</strong> corrispondenza (almeno questa è la speranza), aumenta la<br />

sua capacità <strong>di</strong> rappresentare un fenomeno reale.<br />

Tuttavia, la potenzialità <strong>in</strong>formativa <strong>di</strong> un modello matematico <strong>di</strong>pende, <strong>in</strong><br />

maniera essenziale, dalla sua risolubilità.<br />

2.2.1 L’Utilità dei Modelli <strong>di</strong> Traffico<br />

Il crescente numero <strong>di</strong> veicoli che ogni giorno circola sull’<strong>in</strong>tera rete autostradale<br />

italiana comporta <strong>in</strong>evitabilmente la generazione <strong>di</strong> <strong>in</strong>gorghi e rallentamenti che,<br />

oltre a creare un notevole <strong>di</strong>sagio agli automobilisti, aumenta il rischio <strong>di</strong> <strong>in</strong>ci-<br />

denti. Esistono due possibili soluzioni, <strong>di</strong>ametralmente opposte, a questo annoso<br />

problema.<br />

La prima prevede <strong>di</strong> aumentare la capacità delle arterie stradali con l’aggiunta<br />

<strong>di</strong> nuove corsie. Tale approccio, seppur molto efficace, risulta essere molto co-<br />

stoso e <strong>di</strong> forte impatto ambientale, <strong>in</strong> quanto richiede sovente la costruzione <strong>di</strong><br />

nuovi ponti, gallerie e altre <strong>in</strong>frastrutture. Inoltre, nella maggior parte dei casi, la<br />

capacità <strong>di</strong> sopportazione del traffico da parte <strong>di</strong> strade ed autostrade risulta essere<br />

<strong>in</strong>sufficiente solo <strong>in</strong> alcune particolari fasce orarie della giornata (fasce <strong>di</strong> punta).<br />

Per tale ragione si è cercata una soluzione alternativa che consiste nello sfrut-<br />

30


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

tare la massimo le potenzialità delle attuali <strong>in</strong>frastrutture andando a monitorare<br />

cont<strong>in</strong>uamente le con<strong>di</strong>zioni del traffico e, attraverso azioni preventive, tentare <strong>di</strong><br />

evitare la creazione <strong>di</strong> <strong>in</strong>gorghi.<br />

La modellizzazione <strong>di</strong> strade urbane ed extraurbane ha attirato l’attenzione <strong>di</strong><br />

molti stu<strong>di</strong>osi del settore già a partire dalla seconda metà degli anni ’50. Negli<br />

ultimi anni, poi, si è notato un notevole aumento dell’<strong>in</strong>teresse e del lavoro <strong>di</strong><br />

ricerca de<strong>di</strong>cato alla risoluzione dei problemi legati al traffico stradale ed auto-<br />

stradale, proprio a causa della sopracitata crescita del numero <strong>di</strong> veicoli circolanti<br />

ed ai sempre più frequenti problemi <strong>di</strong> sovraccarico della rete stradale.<br />

Gli sforzi degli esperti del settore hanno condotto alla creazione <strong>di</strong> modelli<br />

matematici che potessero riprodurre fedelmente la realtà. In tal maniera è stato<br />

possibile ottenere strumenti <strong>in</strong>formatici i quali permettono pr<strong>in</strong>cipalmente due tipi<br />

<strong>di</strong> analisi.<br />

Una <strong>di</strong> queste è quella simulativa e consiste nell’osservare come il modello<br />

si comporta se sollecitato da particolari con<strong>di</strong>zioni esterne, senza che queste deb-<br />

bano per forza verificarsi nella realtà. Infatti, potrebbe sicuramente <strong>in</strong>teressare al<br />

gestore <strong>di</strong> una tratta stradale sapere cosa accadrebbe se, per un qualsiasi motivo<br />

che esula dalla quoti<strong>di</strong>anità, la tratta <strong>in</strong> questione fosse temporaneamente sottopo-<br />

sta a con<strong>di</strong>zioni ben <strong>di</strong>verse da quelle <strong>di</strong> regime (per esempio un drastico aumento<br />

dei veicoli dovuto ad una eventualità particolare o una <strong>di</strong>m<strong>in</strong>uzione del numero <strong>di</strong><br />

corsie percorribili).<br />

La seconda analisi è <strong>di</strong> tipo previsionale, e consiste nel monitorare, istante<br />

per istante (qu<strong>in</strong><strong>di</strong> on-l<strong>in</strong>e e real-time), le con<strong>di</strong>zioni del traffico veicolare e da<br />

queste trarre importanti <strong>in</strong><strong>di</strong>cazioni sulla possibile evoluzione, nel breve futuro,<br />

del comportamento del sistema reale. Questo chiaramente permette <strong>di</strong> anticipare<br />

l’acca<strong>di</strong>mento <strong>di</strong> fenomeni critici quali <strong>in</strong>gorghi o rallentamenti, eventualmente<br />

prevenirli, oppure, qualora non sia comunque possibile restare <strong>in</strong> una situazione<br />

<strong>di</strong> traffico scorrevole, attrezzarsi per affrontare nella maniera migliore la criticità.<br />

In generale, f<strong>in</strong> dall’<strong>in</strong>izio, gli stu<strong>di</strong>osi hanno seguito due vie <strong>di</strong>st<strong>in</strong>te nella<br />

creazione <strong>di</strong> modelli matematici: modelli microscopici e macroscopici. Negli ulti-<br />

mi anni, <strong>in</strong>oltre, si sta affermando una terza famiglia <strong>di</strong> modelli, detti mesoscopici,<br />

31


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

i quali si pongono come una via <strong>di</strong> mezzo tra i due sopra citati.<br />

2.2.2 Modelli Microscopici<br />

I modelli <strong>di</strong> simulazione del traffico basati sull’approccio microscopico permet-<br />

tono <strong>di</strong> determ<strong>in</strong>are la posizione, la velocità e l’accelerazione dei s<strong>in</strong>goli veicoli<br />

o <strong>di</strong> un gruppo <strong>di</strong> essi. La simulazione <strong>di</strong> tali sistemi viene fatta considerando il<br />

comportamento che ogni s<strong>in</strong>golo veicolo viene a tenere <strong>in</strong> relazione ai veicoli con<br />

i quali con<strong>di</strong>vide il tratto stradale.<br />

L’idea è che, per ogni veicolo, la posizione a tempo t + ∆t <strong>di</strong>pende dalla po-<br />

sizione e dalla velocità che caratterizzavano quel veicolo al tempo t; la velocità<br />

al tempo t <strong>in</strong>vece è def<strong>in</strong>ita da una serie <strong>di</strong> grandezze relative al veicolo <strong>in</strong> que-<br />

stione ed a quello imme<strong>di</strong>atamente davanti, quali la <strong>di</strong>stanza, la velocità relativa,<br />

il tempo <strong>di</strong> reazione dell’autista, la presenza <strong>di</strong> altri veicoli nelle corsie a<strong>di</strong>acenti<br />

e quanto altro può rendere più simile il comportamento del modello a quello <strong>di</strong> un<br />

automobilista reale.<br />

I modelli <strong>di</strong> simulazione microscopici vengono applicati a reti <strong>di</strong> traffico urba-<br />

no ed extraurbano e sono caratterizzati da due pr<strong>in</strong>cipali elementi <strong>di</strong> modellistica<br />

che stanno a rappresentare il comportamento reale dei veicoli:<br />

• car follow<strong>in</strong>g;<br />

• lane change con gap acceptance.<br />

Car Follow<strong>in</strong>g<br />

La <strong>di</strong>namica <strong>di</strong> car follow<strong>in</strong>g, detta anche follow the leader, si basa sul fatto che<br />

ogni veicolo deve mantenere una <strong>di</strong>stanza <strong>di</strong> sicurezza dal veicolo che gli sta im-<br />

me<strong>di</strong>atamente davanti e la misura <strong>di</strong> tale <strong>di</strong>stanza è funzione della velocità relativa<br />

fra i due veicoli (come peraltro <strong>in</strong><strong>di</strong>cano e il Co<strong>di</strong>ce Stradale e il buon senso).<br />

In l<strong>in</strong>ea del tutto generale, i modelli microscopici assumono la forma riportata<br />

nella (2.1): ⎧<br />

⎨v(t<br />

+ ∆t) = f � g(t), v(t), ˜v(t), ξ(t), p �<br />

⎩<br />

x(t + ∆t) = x(t) + v(t) · ∆t<br />

32<br />

(2.1)


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

dove<br />

g(t) = ˜x(t) − x(t) − s<br />

è la <strong>di</strong>stanza effettiva fra il veicolo ed il suo predecessore (con s lunghezza del<br />

veicolo).<br />

• v(t) e x(t) sono rispettivamente velocità e posizione al tempo t del veicolo<br />

<strong>in</strong> esame;<br />

• ˜v(t) e ˜x(t) rappresentano la velocità e la posizione del veicolo che precede<br />

quello <strong>in</strong> esame, ∆t è il tempo <strong>di</strong> campionamento;<br />

• ξ(t) è una componente <strong>di</strong> rumore che può essere <strong>in</strong>trodotta per modellizzare<br />

il fatto che ogni autista, essendo un <strong>in</strong><strong>di</strong>viduo dotato <strong>di</strong> un suo modo <strong>di</strong> agire,<br />

si comporterà <strong>in</strong> maniera non uguale a parità <strong>di</strong> con<strong>di</strong>zioni;<br />

• p è un vettore <strong>di</strong> eventuali parametri presenti nel modello.<br />

Figura 2.2: Schematizzazione del modello car follow<strong>in</strong>g<br />

I primi modelli microscopici sono attribuiti a Reuschel e Pipes ([38], [37]). Essi<br />

descrivono il fenomeno del moto <strong>di</strong> una coppia <strong>di</strong> veicoli uno seguente l’altro<br />

tramite l’espressione:<br />

xn − xn+1 = L + S˙xn+1<br />

(2.2)<br />

dove xn+1 è la posizione del veicolo considerato e xn la posizione del veicolo che<br />

sta davanti.<br />

33


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

Figura 2.3: Il modello <strong>di</strong> Reuschel e Pipes<br />

In questa formula si suppone che ogni automobilista mantenga una <strong>di</strong>stanza<br />

<strong>di</strong> sicurezza proporzionale alla velocità del proprio veicolo più una <strong>di</strong>stanza L<br />

relativa al caso <strong>in</strong> cui le auto sono ferme ed idealmente attaccate (˙xn+1 = ˙xn = 0)<br />

e che <strong>in</strong> pratica comprende la lunghezza dell’auto davanti.<br />

Passando alle derivate, dall’equazione (2.2) otteniamo:<br />

¨xn+1 = 1<br />

S (˙xn − ˙xn+1) (2.3)<br />

(proposta per la prima volta dall’americano Chandler <strong>in</strong> [7]) che dal punto <strong>di</strong> vista<br />

fisico significa che l’accelerazione o decelerazione <strong>di</strong> un veicolo è proporzionale<br />

alla sua velocità relativa rispetto al veicolo che lo precede. Se def<strong>in</strong>iamo fattore<br />

<strong>di</strong> sensibilità λ = 1<br />

ed <strong>in</strong>troduciamo un ritardo temporale τ <strong>di</strong> risposta alla sol-<br />

S<br />

lecitazione (nessun essere umano può reagire <strong>in</strong> tempo nullo ad alcuno stimolo),<br />

otteniamo dalla (2.3):<br />

¨xn+1(t + τ) = λ[˙xn(t) − ˙xn+1(t)] (2.4)<br />

che è generalmente nota come l’equazione <strong>di</strong> base dei modelli car follow<strong>in</strong>g.<br />

Si possono ottenere risultati più accurati se il fattore <strong>di</strong> sensibilità λ viene<br />

espresso con la formula<br />

˙xn+1(t + τ) m<br />

λ = λ0<br />

[xn(t) − xn+1(t)] l<br />

34<br />

(2.5)


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

dove λ0 è una costante e l e m sono esponenti <strong>in</strong>teri.<br />

Vari modelli car follow<strong>in</strong>g non l<strong>in</strong>eari sono caratterizzati da coppie <strong>di</strong> valori spe-<br />

cifici (l, m). Per esempio, il modello l<strong>in</strong>eare (2.4) è caratterizzato da (0, 0).<br />

Nel 1958 Chandler e altri ricercatori provarono la correttezza e consistenza del<br />

modello proposto da Reuschel e Pipes con i dati forniti dal General Motors Tech-<br />

nical Center. Questi mostrarono, per via sperimentale, che per con<strong>di</strong>zioni tipiche<br />

<strong>di</strong> traffico autostradale, τ era approssimativamente 1, 5 s e λ assumeva valore pari<br />

0.37 s −1 .<br />

Quello presentato da Pipes sembra il modello migliore tra quelli presentati<br />

nella classe dei microscopici. È stato mostrato come, con questo modello, sia<br />

possibile simulare il comportamento dei flussi veicolari <strong>in</strong> un transitorio.<br />

Lane Change e Gap Acceptance<br />

Come appare chiaro, nel voler modellare tratti stradali che rappresent<strong>in</strong>o adegua-<br />

tamente grosse arterie, sarà sicuramente necessario considerare la possibilità <strong>di</strong><br />

effettuare dei cambi <strong>di</strong> corsia e sorpassare veicoli che si muovono a velocità <strong>in</strong>-<br />

feriore; lo stesso <strong>di</strong>casi per quei casi <strong>in</strong> cui una tratta pr<strong>in</strong>cipale presenta, lungo<br />

il suo snodarsi, corsie <strong>di</strong> <strong>in</strong>gresso e <strong>di</strong> uscita che logicamente vengono impegnate<br />

dagli automobilisti con cambi <strong>di</strong> corsia e <strong>di</strong> velocità.<br />

Per rispondere a questa esigenza i modelli car follow<strong>in</strong>g sono stati migliorati<br />

aggiungendo un’importante componente modellistica.<br />

Gipps è stato il primo a presentare la formulazione <strong>di</strong> un modello che tenesse<br />

conto anche <strong>di</strong> cambi <strong>di</strong> corsia (lane change), <strong>in</strong> [17], non v<strong>in</strong>colando la possibi-<br />

lità <strong>di</strong> superare il veicolo che precede. Questo modello viene sviluppato ed imple-<br />

mentato con MITSIM, che è appunto un simulatore microscopico, dove i guidatori<br />

possono decidere, se sono rallentati dal veicolo che li precede, <strong>di</strong> operare un cam-<br />

bio <strong>di</strong> corsia. Il cambio <strong>di</strong> corsia viene effettuato tenendo <strong>in</strong> considerazione la<br />

corsia attuale, quella prescelta, l’eventualità <strong>di</strong> veicoli <strong>in</strong> arrivo già presenti sulla<br />

corsia futura, la velocità e la <strong>di</strong>stanza <strong>di</strong> tali veicoli e la propensione al rischio<br />

dell’autista che sta decidendo se effettuare o meno il cambio <strong>di</strong> corsia.<br />

In pratica, è necessario def<strong>in</strong>ire una funzione <strong>di</strong> gap acceptance, con cui si<br />

35


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

riescono a descrivere le situazioni <strong>di</strong> sorpasso e tutti i tipi <strong>di</strong> <strong>in</strong>tersezioni non rego-<br />

late da semafori, ove siano identificabili una strada pr<strong>in</strong>cipale ed una secondaria.<br />

Il gap, def<strong>in</strong>ito come la <strong>di</strong>stanza della macch<strong>in</strong>a che arriva dalla strada pr<strong>in</strong>cipale<br />

rispetto al veicolo che si trova nella strada secondaria, varia a seconda dell’au-<br />

tomobilista: <strong>di</strong>pende da quanto un guidatore è <strong>di</strong>sposto a rischiare piuttosto che<br />

rimanere fermo all’<strong>in</strong>crocio.<br />

Figura 2.4: Manovra <strong>di</strong> Lane Change<br />

Pertanto, viene modellata una funzione <strong>di</strong> rischio che <strong>di</strong>pende dalla velocità<br />

dei veicoli che sopraggiungono, da quanto sono <strong>di</strong>stanti e dal fattore <strong>di</strong> rischio che<br />

caratterizza il conducente.<br />

I campi <strong>di</strong> maggiore applicazione dei modelli <strong>di</strong> simulazione microscopici ri-<br />

guardano il test <strong>di</strong> tecniche adattative <strong>di</strong> controllo, <strong>di</strong> strategie real-time per le<br />

autovetture, <strong>di</strong> priorità tra gli autobus e comunque sono <strong>di</strong> maggiore <strong>in</strong>teresse <strong>in</strong><br />

ambito <strong>di</strong> applicazioni a traffico urbano. Questi simulatori sono <strong>in</strong>oltre utilizzati<br />

per prevedere le emissioni <strong>in</strong>qu<strong>in</strong>anti agli <strong>in</strong>croci stradali provvisti <strong>di</strong> segnaletica<br />

semaforica e per testare l’efficienza dei sistemi <strong>di</strong> prevenzione per i rischi <strong>di</strong> <strong>in</strong>-<br />

cidenti nei flussi veicolari. Partendo dal car follow<strong>in</strong>g ed <strong>in</strong>tegrandolo prima con<br />

il lane change e poi con il gap acceptance si riesce a descrivere esaustivamente<br />

anche il problema del traffico autostradale.<br />

Nelle figure 2.5, 2.6, 2.7, 2.8 possiamo osservare un simulatore a modello<br />

microscopico creato per stu<strong>di</strong>are la risposta a determ<strong>in</strong>ate con<strong>di</strong>zioni <strong>di</strong> flussi vei-<br />

colari per alcuni tratti tipici comuni a tutte le autostrade (da [42]). Si può notare<br />

l’<strong>in</strong>terazione fra veicoli follow<strong>in</strong>g e veicoli leader, la cui <strong>di</strong>stanza <strong>di</strong> sicurezza è<br />

36


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

effettivamente proporzionata alla velocità <strong>di</strong> crociera, così come l’<strong>in</strong>gresso dalla<br />

corsia <strong>di</strong> accelerazione sull’arteria pr<strong>in</strong>cipale.<br />

È significativo il verificarsi dei fenomeni tipici del traffico, quali code, stop<br />

and go, e propagazione <strong>di</strong> onde <strong>di</strong> velocità.<br />

Figura 2.5: Simulatore Modello Microscopico [42]<br />

Figura 2.6: Simulatore Modello Microscopico [42]<br />

37


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

Figura 2.7: Simulatore Modello Microscopico [42]<br />

Figura 2.8: Simulatore Modello Microscopico [42]<br />

A fronte <strong>di</strong> una così elevata capacità <strong>di</strong> rappresentare la realtà, i modelli mi-<br />

croscopici richiedono una elevata mole <strong>di</strong> dati. Infatti, come è possibile notare<br />

dalla (2.1), si suppone <strong>di</strong> conoscere <strong>in</strong> ogni istante la posizione e la velocità <strong>di</strong><br />

ogni veicolo. Oltre alla <strong>in</strong><strong>di</strong>scutibile <strong>di</strong>fficoltà computazionale -si hanno 2 × n<br />

(con n numero dei veicoli me<strong>di</strong>amente presenti nella simulazione) variabili <strong>di</strong><br />

stato da aggiornare per ogni istante- è spesso troppo <strong>di</strong>fficile riuscire a trasporre<br />

<strong>in</strong> <strong>in</strong>formazione matematica adattabile al modello la caratteristiche fisiche della<br />

tratta stradale e quelle psico-attitu<strong>di</strong>nali degli automobilisti.<br />

È impensabile gestire un modello <strong>di</strong> questo genere per un’applicazione real-<br />

time. Ecco il motivo per cui l’uso dei modelli microscopici è limitato ai casi <strong>in</strong><br />

38


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

cui la rete stradale risulti relativamente semplice ed il numero <strong>di</strong> veicoli molto<br />

ristretto.<br />

2.2.3 Modelli Macroscopici<br />

I modelli macroscopici si basano su una relazione empirica determ<strong>in</strong>ata osservan-<br />

do un sistema <strong>di</strong> traffico <strong>in</strong> con<strong>di</strong>zioni stazionarie. La maggior parte dei modelli<br />

matematici strutturati <strong>in</strong> maniera macroscopica partono dalla formulazione del<br />

modello <strong>di</strong> traffico microscopico, prima analizzato, prendendo <strong>in</strong> considerazione<br />

un flusso <strong>di</strong> veicoli tutti con la stessa rilevanza; <strong>in</strong> particolare, si prestano alla si-<br />

mulazione <strong>di</strong> corridoi <strong>di</strong> traffico veicolare ed arterie autostradali. Di conseguenza,<br />

non essendo modellabili accelerazioni e decelerazioni <strong>di</strong> velocità, e non essendo<br />

previste <strong>in</strong>tersezioni nel flusso del traffico, questo tipo <strong>di</strong> modelli non si adatta ad<br />

una applicazione <strong>in</strong> ambito urbano.<br />

Fondamentalmente il modello macroscopico si è sviluppato seguendo un’ana-<br />

logia tra lo stato stazionario <strong>di</strong> comportamento del traffico e la legge <strong>di</strong> conserva-<br />

zione propria della teoria della fluido<strong>di</strong>namica.<br />

Infatti, il traffico può essere modellizzato come un fluido omogeneo, senza<br />

porre alcuna <strong>di</strong>st<strong>in</strong>zione tra le classi <strong>di</strong> veicoli. A <strong>di</strong>fferenza delle molecole dei<br />

flui<strong>di</strong> reali i s<strong>in</strong>goli veicoli saranno <strong>in</strong>teressati da una particolare caratteristica<br />

orig<strong>in</strong>e-dest<strong>in</strong>azione <strong>di</strong>versa per ognuno <strong>di</strong> questi; questa è un’<strong>in</strong>formazione che<br />

sarà persa. Nei modelli macroscopici, <strong>in</strong>fatti, non si presta attenzione nel modella-<br />

re il comportamento del s<strong>in</strong>golo veicolo con posizione e velocità; si pensa <strong>in</strong>vece<br />

<strong>di</strong> descrivere l’<strong>in</strong>tero sistema considerando file <strong>di</strong> veicoli come flussi <strong>di</strong> un fluido<br />

<strong>in</strong>comprimibile e, <strong>di</strong> conseguenza, la posizione e la velocità del s<strong>in</strong>golo veicolo<br />

vengono espresse <strong>in</strong> relazione a quella degli altri veicoli.<br />

Pertanto, un modello macroscopico del flusso veicolare implica la def<strong>in</strong>izio-<br />

ne <strong>di</strong> adeguate variabili <strong>di</strong> sistema che esprimano il comportamento me<strong>di</strong>amente<br />

tenuto <strong>in</strong> un preciso punto della tratta stradale ad un istante <strong>di</strong> tempo.<br />

Def<strong>in</strong>izione 2.1<br />

39


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

Def<strong>in</strong>iamo la densità del traffico<br />

ρ(x, t) [veicoli/km]<br />

come il numero <strong>di</strong> veicoli presenti me<strong>di</strong>amente per unità <strong>di</strong> lunghezza. Si misura<br />

<strong>in</strong> veicoli per chilometro.<br />

Def<strong>in</strong>izione 2.2<br />

Def<strong>in</strong>iamo la velocità me<strong>di</strong>a dei veicoli<br />

Si misura <strong>in</strong> chilometri orari.<br />

Def<strong>in</strong>izione 2.3<br />

Def<strong>in</strong>iamo il flusso del traffico<br />

v(x, t) [km/h]<br />

q(x, t) [veicoli/h]<br />

come il numero <strong>di</strong> veicoli passanti da una specifica sezione della tratta stradale<br />

nell’unità <strong>di</strong> tempo. Si misura <strong>in</strong> veicoli per ora.<br />

Per un flusso <strong>di</strong> traffico omogeneo, si può mostrare, sulla base <strong>di</strong> considerazio-<br />

ni microscopiche, che le tre grandezze che abbiamo pocanzi def<strong>in</strong>ito sono legate<br />

fra loro dalla relazione<br />

q = ρ · v (2.6)<br />

analoga alla relazione presente <strong>in</strong> fluido<strong>di</strong>namica. Inoltre, l’equazione (2.6) de-<br />

scrive approssimativamente il flusso <strong>di</strong> traffico anche <strong>in</strong> con<strong>di</strong>zioni <strong>in</strong> cui l’omo-<br />

geneità non è verificata, e pertanto è un’equazione presente nella maggior parte<br />

dei sistemi macroscopici.<br />

Vi è un’altra relazione che lega le variabili <strong>di</strong> stato def<strong>in</strong>ite, ma, a <strong>di</strong>fferenza<br />

della precedente, non ha una analogia con la fluido<strong>di</strong>namica, essendo propria dei<br />

flussi <strong>di</strong> traffico. La velocità me<strong>di</strong>a del traffico decresce monotonamente al cresce-<br />

re della densità dei veicoli, come è stato anche <strong>di</strong>mostrato da parecchi rilevamenti<br />

<strong>di</strong> misure <strong>di</strong> velocità-densità.<br />

40


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Nel 1935 Greenshields ([19]) ipotizzò l’esistenza <strong>di</strong> una relazione l<strong>in</strong>eare tra<br />

velocità e densità del tipo<br />

� ρ(x, t) �<br />

v(x, t) = vf 1 −<br />

ρmax<br />

(2.7)<br />

dove vf è la velocità a corsia completamente libera (ovvero per densità <strong>di</strong> veicoli<br />

nulla o molto prossima a zero) e ρmax è la densità <strong>di</strong> congestionamento, ossia il<br />

valore <strong>di</strong> densità dei veicoli che causa un calo della velocità tale da farla andare a<br />

zero e bloccare il movimento dei veicoli, come si può vedere <strong>in</strong> Figura 2.9.<br />

Figura 2.9: Relazione L<strong>in</strong>eare Velocità-Densità<br />

È molto <strong>in</strong>teressante constatare che la relazione macroscopica (2.7) è la <strong>di</strong>retta<br />

conseguenza del modello microscopico l<strong>in</strong>eare (2.4) per (l = 2, m = 0).<br />

Assumiamo <strong>di</strong> trovarci <strong>in</strong> con<strong>di</strong>zioni <strong>di</strong> omogeneità e <strong>di</strong> regime stazionario<br />

(τ = 0) ed <strong>in</strong>troduciamo la <strong>di</strong>stanza me<strong>di</strong>a fra i veicoli s.<br />

e che:<br />

Si ha che:<br />

s � xn − xn+1<br />

s = 1<br />

ρ<br />

L � 1<br />

ρmax<br />

41<br />

.<br />

(2.8)


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

L’<strong>in</strong>tegrazione dell’equazione (2.4) rende:<br />

v = − λ0<br />

s + b = −λ0ρ + b (2.9)<br />

dove b è una costante <strong>di</strong> <strong>in</strong>tegrazione. Se assumiamo che, per ρ = ρmax, la<br />

velocità me<strong>di</strong>a precipiti a zero, otteniamo:<br />

b = λ0ρmax.<br />

Ponendo vf = λ0/ρmax, l’equazione (2.9) <strong>di</strong>viene identica alla (2.7). Per <strong>di</strong>fferen-<br />

ti valori <strong>di</strong> (l, m) otteniamo <strong>di</strong>verse formule per la curva caratteristica velocità-<br />

densità a regime stazionario. Chiaramente, una volta che si stabilisce <strong>di</strong> utilizzare<br />

un modello macroscopico, il miglior approccio sarebbe quello <strong>di</strong> determ<strong>in</strong>are la<br />

curva caratteristica empiricamente con un set <strong>di</strong> misurazioni.<br />

Una volta che la curva caratteristica velocità-densità è determ<strong>in</strong>ata, possiamo<br />

usare l’equazione (2.6) per determ<strong>in</strong>are la curva flusso-densità. Per esempio nel<br />

caso della formulazione l<strong>in</strong>eare (2.7) otteniamo:<br />

q(x, t) = ρ(x, t) · v(x, t) = vf · ρ(x, t) � ρ(x, t) �<br />

1 −<br />

ρmax<br />

(2.10)<br />

il cui grafico è mostrato <strong>in</strong> Figura 2.10. È facile notare come il flusso veicolare<br />

sia crescente con la densità f<strong>in</strong>o a qmax che è raggiunto per un valore critico <strong>di</strong><br />

densità ρcr.<br />

Un’ulteriore crescita del valore della densità dei veicoli comporta un calo del<br />

flusso <strong>di</strong> traffico f<strong>in</strong>o al raggiungimento <strong>di</strong> ρmax, che causa il congestionamento<br />

dell’arteria e, pertanto, il flusso veicolare nullo.<br />

Questo fenomeno, chiamato capacity drop, è comune a tutti i sistemi <strong>di</strong> veico-<br />

lazione del traffico, ed è dovuto alle considerazioni sulla <strong>di</strong>stanza <strong>di</strong> sicurezza fra<br />

i veicoli <strong>di</strong>pendente dalla velocità dei veicoli stessi.<br />

42


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Figura 2.10: Curva Caratteristica a Regime Stazionario Flusso-Densità<br />

In questo caso, trovare ρcr è molto semplice: nota la funzione q(ρ) (2.10)<br />

basta porre q ′ (ρ) = 0, da cui:<br />

q ′ (ρ) = vf(1 − 2ρ<br />

ρmax<br />

) = 0.<br />

In questo caso, si ha: ρcr = ρmax<br />

2 .<br />

Tale proprietà risulta dal fatto che la regolazione della <strong>di</strong>stanza <strong>di</strong> sicurezza è<br />

effettuata dagli autisti delle vetture. Misurazioni sperimentali estensive mostrano<br />

che autisti umani agenti come regolatori <strong>di</strong> <strong>di</strong>stanza <strong>di</strong> sicurezza conducono a un<br />

flusso veicolare <strong>in</strong>stabile quando la densità supera il valore critico (ρ > ρcr). Per<br />

<strong>in</strong>stabile si <strong>in</strong>tende che, il flusso <strong>di</strong> traffico <strong>di</strong>venta, rapidamente ed, apparente-<br />

mente, senza un’ovvia ragione, sempre più congestionato, f<strong>in</strong>o a quando vengono<br />

raggiunti i valori <strong>di</strong> densità prossimi a quello <strong>di</strong> congestionamento ρmax.<br />

La zona <strong>in</strong>terme<strong>di</strong>a è quella <strong>in</strong>teressata dal fenomeno <strong>di</strong> stop and go. Infatti,<br />

<strong>in</strong> term<strong>in</strong>i microscopici, l’<strong>in</strong>stabilità è dovuta ad un aumento dell’ampiezza della<br />

perturbazione che viene propagata all’<strong>in</strong><strong>di</strong>etro (fenomeno delle shock waves o<br />

back waves) lungo una fila <strong>di</strong> vetture, portando <strong>in</strong>f<strong>in</strong>e all’arresto delle vetture più<br />

arretrate.<br />

[31]<br />

43


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

2.2.4 Modelli Mesoscopici<br />

Questa classe <strong>di</strong> modelli <strong>di</strong> simulazione sta guadagnando popolarità e si pone a<br />

metà tra i modelli precedentemente illustrati, unendo l’approccio aggregato dei<br />

modelli macroscopici con quello particolare e riferito al s<strong>in</strong>golo elemento dei<br />

modelli microscopici.<br />

Tipicamente, i modelli microscopici descrivono le s<strong>in</strong>gole entità ad un elevato<br />

livello <strong>di</strong> dettaglio, ma il loro comportamento e le loro <strong>in</strong>terazioni sono gestite ad<br />

un livello più generale.<br />

Questi modelli possono assumere varie forme. Ad esempio, è possibile rag-<br />

gruppare i veicoli <strong>in</strong> piccoli <strong>in</strong>siemi <strong>in</strong> moto lungo la rete ([25]). Questi <strong>in</strong>siemi<br />

agiscono come se fossero un elemento unico e la loro velocità lungo un percor-<br />

so è ottenuta da una funzione velocità-densità def<strong>in</strong>ita per ciascun tratto stradale.<br />

I cambiamenti <strong>di</strong> corsia e le accelerazioni o decelerazione dei veicoli non sono<br />

modellate.<br />

Una caratteristica importante del modello mesoscopico è che la velocità dei<br />

veicoli non è determ<strong>in</strong>ata dalle decisioni del s<strong>in</strong>golo guidatore, ma dal comporta-<br />

mento <strong>di</strong> gruppi <strong>di</strong> veicoli ([1]). In altri modelli ([21]), ([16]), ([27]) si utilizza<br />

un sistema a coda dove la strada è vista come un <strong>in</strong>sieme <strong>di</strong> zone <strong>di</strong> coda e <strong>di</strong><br />

zone <strong>in</strong> movimento. Le corsie possono essere descritte <strong>in</strong><strong>di</strong>vidualmente, sebbene<br />

generalmente non lo siano.<br />

In questi casi, i veicoli sono rappresentati <strong>in</strong><strong>di</strong>vidualmente e ciascuno è carat-<br />

terizzato dalla propria velocità; tuttavia, il comportamento non è modellato nel<br />

dettaglio. La parte <strong>in</strong> movimento viene percorsa con una velocità ricavata utiliz-<br />

zando una relazione velocità-densità <strong>di</strong> tipo macroscopico mentre la parte <strong>in</strong> coda<br />

è gestita con un sistema coda-server.<br />

Questo ultimo approccio comb<strong>in</strong>a i vantaggi dei modelli <strong>di</strong>namici con flussi<br />

<strong>di</strong> traffico <strong>di</strong>saggregati (i veicoli sono modellati s<strong>in</strong>golarmente) con la facilità <strong>di</strong><br />

utilizzo delle relazioni macroscopiche velocità-densità. Incroci controllati da se-<br />

gnali come i semafori possono essere modellati rimpiazzando il server con un un<br />

gate che apra e chiuda <strong>in</strong> accordo con gli stati del segnale.<br />

Un altro tipo <strong>di</strong> modello mesoscopico utilizza una visione cellulare della stra-<br />

44


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

da, che è <strong>di</strong>scretizzata <strong>in</strong> celle unitarie che possono essere vuote o riempite da un<br />

veicolo. Il veicolo <strong>in</strong> esame segue un <strong>in</strong>sieme <strong>di</strong> regole <strong>di</strong> comportamento piutto-<br />

sto semplici ([29]) che determ<strong>in</strong>ano, ad ogni istante <strong>di</strong> tempo, il numero <strong>di</strong> celle<br />

attraversate dal veicolo ([2]).<br />

Le pr<strong>in</strong>cipali aree <strong>di</strong> applicazione dei modelli mesoscopici sono quelle <strong>in</strong> cui<br />

il dettaglio della simulazione microscopica, sebbene potrebbe risultare utile, non<br />

è applicabile a causa delle gran<strong>di</strong> <strong>di</strong>mensioni della rete o della mancanza <strong>di</strong> alcune<br />

risorse che sono necessarie per implementare uno strumento simulativo basato su<br />

tale pr<strong>in</strong>cipio. [5]<br />

2.2.5 Trattazione Analitica<br />

Ora che abbiamo <strong>in</strong><strong>di</strong>viduato le caratteristiche dei modelli macroscopici descrivia-<br />

mo il problema del traffico <strong>in</strong> maniera analitica, per cogliere a pieno il passaggio<br />

della trattazione dalle s<strong>in</strong>gole vetture ad una descrizione globale del comporta-<br />

mento.<br />

Ipotizziamo un tratto autostradale rettil<strong>in</strong>eo monocorsia senza stazioni <strong>di</strong> en-<br />

trata ed uscita. Il tratto <strong>in</strong> questione può essere sud<strong>di</strong>viso <strong>in</strong> ipotetiche sezioni.<br />

Figura 2.11: Divisione <strong>in</strong> sezioni <strong>di</strong> un ipotetico tratto stradale<br />

q(t1, t2, x) rappresenta il valore me<strong>di</strong>o del flusso veicolare nella sezione stra-<br />

dale x e nell’<strong>in</strong>tervallo <strong>di</strong> tempo [t1, t2] e vale:<br />

q(t1, t2, x) = n(t1, t2, x)<br />

t2 − t1<br />

<strong>in</strong> cui n(t1, t2, x) <strong>in</strong><strong>di</strong>ca il numero <strong>di</strong> veicoli che transitano nella sezione stradale<br />

x e nell’<strong>in</strong>tervallo <strong>di</strong> tempo [t1, t2].<br />

45


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

Abbiamo già <strong>in</strong>trodotto i concetti <strong>di</strong> flusso, densità e velocità me<strong>di</strong>a. Li ri-<br />

proponiamo <strong>in</strong> questo contesto utilizzando una def<strong>in</strong>izione un poco più precisa.<br />

q(x, t) è il flusso istantaneo nella sezione stradale x; può essere misurato tramite<br />

particolari sistemi <strong>di</strong> monitoraggio posti sulla sezione stradale, ed è def<strong>in</strong>ito come:<br />

q(x, t) = lim<br />

∆t→0 q� t − ∆t, t + ∆t, x � .<br />

ρ(x1, x2, t) è <strong>in</strong>vece la densità me<strong>di</strong>a <strong>di</strong> veicoli fra la tratta x1 e la tratta x2 al<br />

tempo t. Può essere misurata tramite osservazione <strong>di</strong>retta ed è def<strong>in</strong>ita come:<br />

ρ(x1, x2, t) = n(x1, x2, t)<br />

x2 − x1<br />

dove, <strong>in</strong> questo caso, n(x1, x2, t) <strong>in</strong><strong>di</strong>ca il numero <strong>di</strong> veicoli presenti fra la sezione<br />

x1 e la sezione x2 al tempo t.<br />

Come fatto <strong>in</strong> precedenza, è possibile ottenere un’espressione della densità<br />

locale nella sezione generica x al tempo t<br />

ρ(x, t) = lim<br />

∆x→0 ρ� x − ∆x, x + ∆x, t � .<br />

È importante ora determ<strong>in</strong>are il legame tra le variabili f<strong>in</strong>o ad ora <strong>in</strong>trodotte; ci<br />

viene qu<strong>in</strong><strong>di</strong> <strong>in</strong> aiuto la relazione fondamentale che si basa sull’equazione <strong>di</strong> con-<br />

servazione della massa, con la quale si impone che le variazioni nell’<strong>in</strong>tervallo<br />

(t1, t2) del numero <strong>di</strong> veicoli tra la sezione x1 e la sezione x2 deve essere uguale<br />

alla <strong>di</strong>fferenza tra il numero <strong>di</strong> veicoli <strong>in</strong> <strong>in</strong>gresso alla sezione x1 e quelli <strong>in</strong> uscita<br />

dalla x2, considerando lo stesso <strong>in</strong>tervallo temporale. Il legame cercato è def<strong>in</strong>ito<br />

dalla seguente espressione:<br />

� x2<br />

x1<br />

� ρ(t2, x) − ρ(t1, x) � dx =<br />

� t2<br />

t1<br />

� q(x1, t) − q(x2, t) � dt. (2.11)<br />

Molti stu<strong>di</strong>osi e ricercatori nel settore dei modelli <strong>di</strong> traffico hanno fornito<br />

un’equazione che potesse rappresentare nella maniera più adeguata possibile le<br />

<strong>di</strong>namiche <strong>di</strong> relazione fra la densità dei veicoli e la loro velocità me<strong>di</strong>a. In Tabella<br />

2.1 sono riportati i vari risultati che la letteratura offre. È possibile def<strong>in</strong>ire la<br />

<strong>di</strong>pendenza <strong>di</strong> v da ρ <strong>in</strong> <strong>di</strong>versi, ragionevoli e più o meno efficaci mo<strong>di</strong>.<br />

46


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Come si vede dalla tabella 2.1 <strong>in</strong> ognuna delle forme proposte la velocità<br />

decresce <strong>in</strong> maniera monotona al crescere <strong>di</strong> ρ.<br />

Un esame più attento conduce ben presto a concludere che, quella <strong>in</strong>trodotta<br />

da Papageorgiou <strong>in</strong> [33] è senz’altro più flessibile e meglio adattabile a <strong>di</strong>verse<br />

situazioni.<br />

Infatti, la forma <strong>di</strong> Greenshields si ottiene per l = m = 1; quella <strong>di</strong> Drew<br />

per l = 1 e m = λ. Per le altre tre, dopo qualche considerazione elementare,<br />

possiamo accorgerci che, fondamentalmente, si riconducono alle prime due.<br />

Infatti, poichè<br />

log ρmax<br />

��<br />

ρ<br />

= = − log<br />

ρ<br />

ρmax<br />

� � ��<br />

− 1 + 1 = = 1 − ρ<br />

� �<br />

+ ρω(ρ)<br />

ρmax<br />

(2.12)<br />

la forma <strong>di</strong> Greenberg è del tipo della forma <strong>di</strong> Greenshields per valori piccoli <strong>di</strong><br />

ρ<br />

mentre, se teniamo conto che,<br />

ρmax<br />

ρ<br />

−<br />

e ρmax = 1 − ρ<br />

+ ρω(ρ) (2.13)<br />

ρmax<br />

ve<strong>di</strong>amo che lo stesso si può <strong>di</strong>re della formula <strong>di</strong> Underwood.<br />

La formula <strong>di</strong> May, <strong>in</strong>f<strong>in</strong>e, è un pò più flessibile, ma comunque si riduce a:<br />

e α( ρ<br />

ρmax ) =<br />

�<br />

1 − ρ<br />

e qu<strong>in</strong><strong>di</strong> è molto simile a quella <strong>di</strong> Drew.<br />

47<br />

ρmax<br />

+ ρω(ρ)<br />

� α<br />

(2.14)


2.2. INTRODUZIONE AI MODELLI DI TRAFFICO Carlo Caligaris, Iacopo Salvarani<br />

Greenshields (1935) v = vf<br />

[19]<br />

�<br />

1 − ρ<br />

�<br />

ρmax<br />

� �<br />

ρ<br />

Greenberg (1959) v = vf ln<br />

ρmax<br />

[18]<br />

“<br />

−<br />

Underwood (1961) v = vfe<br />

ρ<br />

”<br />

ρmax<br />

[43]<br />

Drew (1968) v = vf<br />

[14]<br />

�<br />

1 − ρ<br />

�λ ρmax<br />

May (1988) v = vfe α<br />

“<br />

− ρ<br />

”<br />

ρmax<br />

[28]<br />

Papageorgiou (1995) v = vf<br />

[33]<br />

[6]<br />

�� 1 − ρ<br />

� �<br />

l<br />

m<br />

ρmax<br />

Tabella 2.1: L’evoluzione della relazione tra velocità e densità<br />

48


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

2.3 Il Modello Macroscopico <strong>di</strong> Traffico Autostra-<br />

dale<br />

Vogliamo qui descrivere brevemente le basi del modello macroscopico <strong>di</strong> traffico<br />

autostradale e delle approssimazioni alle <strong>di</strong>fferenze f<strong>in</strong>ite che sono a loro volta<br />

ispiratrici del modello <strong>di</strong>screto <strong>di</strong> Papageorgiou che abbiamo deciso <strong>di</strong> implemen-<br />

tare.<br />

La teoria poggia sulle semplici considerazioni che servono per giustificare<br />

l’equazione <strong>di</strong> cont<strong>in</strong>uità dei flui<strong>di</strong>.<br />

Com<strong>in</strong>ciamo con il vedere come si può giustificare tale equazione. Conside-<br />

riamo una massa fluida che si muove lungo l’asse x nel tempo t. In analogia con<br />

la Sezione precedente, assumiamo:<br />

• x la coor<strong>di</strong>nata relativa all’asse su cui avviene il movimento;<br />

• t la variabile <strong>di</strong> tempo;<br />

• ρ(x, t) la densità della sostanza che <strong>in</strong>ten<strong>di</strong>amo stu<strong>di</strong>are;<br />

• q(x, t) il flusso attraverso x al tempo t.<br />

Ricor<strong>di</strong>amo anche le <strong>di</strong>mensioni <strong>di</strong> ρ, che sono:<br />

unità <strong>di</strong> massa<br />

unità <strong>di</strong> lunghezza ,<br />

e qu<strong>in</strong><strong>di</strong> la massa compresa tra x e x + ∆x può essere calcolata me<strong>di</strong>ante la:<br />

m(t, x, x + ∆x) =<br />

� x+∆x<br />

x<br />

ρ(t, s)ds.<br />

Il flusso q(x, t) attraverso la sezione <strong>in</strong> x al tempo t è la quantità <strong>di</strong> massa che<br />

transita per il punto x nell’istante t.<br />

Le <strong>di</strong>mensioni <strong>di</strong> q sono:<br />

unità <strong>di</strong> massa<br />

unità <strong>di</strong> tempo .<br />

49


2.3. IL MODELLO MACROSCOPICO DI TRAFFICO AUTOSTRADALE Carlo Caligaris, Iacopo Salvarani<br />

Consideriamo un <strong>in</strong>tervallo <strong>di</strong> lunghezza I = [x, x + ∆x] ed un <strong>in</strong>tervallo <strong>di</strong><br />

tempo T = [t, t + ∆t].<br />

Sia<br />

µ(t, x)<br />

la massa che è fluita attraverso il punto x f<strong>in</strong>o all’istante t; il flusso istantaneo puo’<br />

essere def<strong>in</strong>ito me<strong>di</strong>ante la:<br />

per cui:<br />

q(t, x) − q(t, x + ∆x)<br />

∆x<br />

µ(t, x) − µ(t + ∆t, x)<br />

q(t, x) = lim<br />

∆t→0 ∆t<br />

Scambiando derivata ed <strong>in</strong>tegrale si ha:<br />

q(t, x) − q(t, x + ∆x)<br />

∆x<br />

= − ∂µ<br />

(t, x),<br />

∂t<br />

= − 1 ∂<br />

(µ(t, x) − µ(t, x + ∆x)) =<br />

∆x ∂t<br />

= 1<br />

� x+∆x<br />

∂<br />

ρ(t, s)ds. (2.15)<br />

∆x ∂t<br />

= 1<br />

∆x<br />

� x+∆x<br />

x<br />

x<br />

� �<br />

∂<br />

ρ(t, s) ds.<br />

∂t<br />

Passando al limite per ∆x → 0 si ottiene l’equazione 2.16.<br />

∂ρ(x, t)<br />

∂t<br />

= −<br />

∂q(x, t)<br />

. (2.16)<br />

∂x<br />

Possiamo anche tenere conto <strong>di</strong> apporto o sottrazione <strong>di</strong> massa me<strong>di</strong>ante un<br />

term<strong>in</strong>e k(x, t) a secondo membro:<br />

∂ρ(x, t)<br />

∂t<br />

∂q(x, t)<br />

= − + k(x, t). (2.17)<br />

∂x<br />

Tuttavia, f<strong>in</strong>o a questo punto, l’equazione 2.17 contiene troppe <strong>in</strong>cognite (ρ e<br />

q) e qu<strong>in</strong><strong>di</strong> occorre <strong>in</strong>trodurre qualche ulteriore con<strong>di</strong>zione.<br />

A tale scopo occorre ipotizzare una <strong>di</strong>pendenza tra ρ e q. Ad esempio possia-<br />

mo supporre che:<br />

così che:<br />

∂q<br />

∂x =<br />

q = q(ρ),<br />

� dq<br />

dρ<br />

50<br />

� � �<br />

∂ρ<br />

.<br />

∂x


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

L’equazione 2.17 <strong>di</strong>venta allora:<br />

� � � �<br />

∂ρ(x, t) ∂q(ρ(x, t)) ∂ρ(x, t)<br />

= −<br />

+ k(x, t). (2.18)<br />

∂t<br />

∂ρ ∂x<br />

Per def<strong>in</strong>ire la <strong>di</strong>pendenza q(ρ) possiamo supporre, che:<br />

q(ρ) = v(x, t)ρ.<br />

Consideriamo qu<strong>in</strong><strong>di</strong> l’ipotesi <strong>di</strong> advezione; v(x, t) ha <strong>di</strong>mensione:<br />

unità <strong>di</strong> lunghezza<br />

unità <strong>di</strong> tempo<br />

cioè ha le <strong>di</strong>mensioni <strong>di</strong> una velocità che rappresenta la velocità con cui la materia<br />

si muove lungo l’asse x; <strong>in</strong>fatti:<br />

v = q<br />

ρ<br />

= unità <strong>di</strong> massa<br />

unità <strong>di</strong> tempo<br />

Il caso più semplice si <strong>in</strong>contra quando v(x, t) = c.<br />

L’equazione, qu<strong>in</strong><strong>di</strong>, prende la forma:<br />

∂ρ(x, t))<br />

∂t<br />

unità <strong>di</strong> lunghezza<br />

.<br />

unità <strong>di</strong> massa<br />

∂(ρ(x, t)v(x, t))<br />

= − + k(x, t). (2.19)<br />

∂x<br />

2.3.1 Un esempio <strong>di</strong> trasporto nel caso della velocità costante<br />

Consideriamo il caso <strong>in</strong> cui la velocità con cui avviene il moto del fluido sia co-<br />

stante. Si tratta <strong>di</strong> un caso particolarmente semplice ma permette <strong>di</strong> mettere <strong>in</strong><br />

luce alcune <strong>in</strong>teressanti caratteristiche del fenomeno <strong>di</strong> trasporto<br />

Supporremo anche che ci sia una <strong>di</strong>m<strong>in</strong>uzione della densità proporzionale alla<br />

densità stessa.<br />

Fisicamente possiamo trovare un significato pratico a questa equazione consi-<br />

derando l’evoluzione <strong>di</strong> un <strong>in</strong>qu<strong>in</strong>ante organico <strong>in</strong> un fiume che scorre a velocità<br />

c ed è metabolizzato proporzionalmente alla densità stessa.<br />

L’equazione qu<strong>in</strong><strong>di</strong> è:<br />

∂<br />

∂<br />

ρ(x, t) = −c ρ(x, t) − µρ(x, t). (2.20)<br />

∂t ∂x<br />

51


2.3. IL MODELLO MACROSCOPICO DI TRAFFICO AUTOSTRADALE Carlo Caligaris, Iacopo Salvarani<br />

Riscriviamo la 2.20 nella forma:<br />

∂<br />

∂<br />

ρ(x, t) + c ρ(x, t) = −µρ(x, t).<br />

∂t ∂x<br />

Il primo membro è la derivata rispetto a t della funzione<br />

e qu<strong>in</strong><strong>di</strong><br />

ne:<br />

d d<br />

R(x, t) = ρ(x + ct, t) =<br />

dt dt<br />

R(x, t) = ρ(x + ct, t)<br />

= ∂<br />

∂<br />

ρ(x + ct, t) + c ρ(x + ct, t) =<br />

∂t ∂x<br />

= −µρ(x + ct, t) = −µR(x, t).<br />

Integrando rispetto a t l’equazione <strong>di</strong>fferenziale l<strong>in</strong>eare che ne risulta si ottie-<br />

ρ(x + ct, t) = h(x)e −µt .<br />

Imponendo le con<strong>di</strong>zioni <strong>in</strong>iziali ρ(x, 0) = ρ0(x) (è nota la densità <strong>in</strong>iziale <strong>in</strong><br />

ogni luogo del fiume) si ha:<br />

da cui:<br />

e:<br />

ρ0(x) = ρ(x, 0) = h(x),<br />

ρ(x + ct, t) = ρ0(x)e −µt<br />

ρ(x, t) = ρ0(x − ct)e −µt .<br />

Consideriamo ora la situazione <strong>in</strong> cui si verifichi, <strong>in</strong> una locazione x = 0, che<br />

possiamo supporre co<strong>in</strong>cidente con l’orig<strong>in</strong>e, una immissione <strong>di</strong> <strong>in</strong>qu<strong>in</strong>ante con<br />

flusso costante γ.<br />

Allo scopo, posto:<br />

⎧<br />

⎨0<br />

t < 0<br />

γ(t) =<br />

⎩<br />

γ0 t ≥ 0<br />

52


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

possiamo imporre nella 2.3.1 che:<br />

γ(t) = ρ(0, t) = ρ0(−ct)e −µt .<br />

Da cui, posto x = −ct si ricava t = − x<br />

e qu<strong>in</strong><strong>di</strong>:<br />

c<br />

γ(− x<br />

c ) = ρ0(x)e µx/c , ρ0(x) = γ(− x<br />

c )e−µx/c .<br />

Se ne conclude:<br />

Ed <strong>in</strong>f<strong>in</strong>e:<br />

ρ(x, t) = ρ0(x − ct)e −µt = γ(<br />

ct − x<br />

)e<br />

c<br />

−µ(x−ct)/c e −µt .<br />

ρ(x, t) = γ(t − x<br />

c )e−µx/c .<br />

In questa espressione, possiamo osservare che si evidenzia il fatto che, per<br />

t − x<br />

< 0, cioè per x > ct, l’<strong>in</strong>qu<strong>in</strong>ante ha densità ρ nulla. (L’<strong>in</strong>qu<strong>in</strong>ante, <strong>in</strong> quel<br />

c<br />

momento non ha ancora raggiunto quel punto del fiume).<br />

2.4 Modelli Differenziali <strong>di</strong> Traffico Autostradale<br />

Veniamo ora a considerare il caso del traffico lungo un’autostrada utilizzando un<br />

modello <strong>di</strong> trasporto <strong>in</strong> cui il flusso <strong>di</strong>pende dalla densità delle auto.<br />

Denotiamo con x la variabile <strong>di</strong> spazio che identifica un punto sulla retta che<br />

descrive l’autostrada e con t, come al solito, il tempo; ρ(x, t) è la densità delle<br />

auto mentre <strong>in</strong><strong>di</strong>chiamo ancora con q(x, t) il flusso.<br />

L’equazione che usiamo è <strong>di</strong> tipo advettivo, <strong>di</strong> trasporto e, per semplificare la<br />

trattazione, che ha lo scopo <strong>di</strong> mettere <strong>in</strong> evidenza le caratteristiche elementari del<br />

modello, non preve<strong>di</strong>amo che nel tratto <strong>in</strong> esame esistano <strong>in</strong>gressi od uscite.<br />

Occorre anche ipotizzare il comportamento del flusso q rispetto alla densità ρ<br />

delle auto.<br />

A tale scopo possiamo fare riferimento alla più semplice, dal punto <strong>di</strong> vista al-<br />

gebrico, delle <strong>di</strong>pendenze che nell’arco dell’evoluzione del modello macroscopico<br />

sono state proposte da vari autori: quello <strong>di</strong> Greenshields del 1935 ([19]).<br />

Se ρm è la massima densità possibile, supponiamo che:<br />

53


2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE Carlo Caligaris, Iacopo Salvarani<br />

1. la velocità delle auto sia compresa tra 0 e vm, quest’ultimo valore essendo<br />

conseguenza dei limiti <strong>di</strong> velocità o delle con<strong>di</strong>zioni stradali;<br />

2. la velocità delle auto <strong>di</strong>penda dalla densità me<strong>di</strong>ante la:<br />

da cui:<br />

Dalla 2.21 si ricava:<br />

• se ρ = 0 allora v = vm;<br />

• se ρ = ρm allora v = 0.<br />

Tenuto conto che:<br />

v(ρ) = vm<br />

q(ρ) = v(ρ)ρ = vm<br />

�<br />

1 − ρ<br />

ρm<br />

�<br />

ρ − ρ2<br />

ρm<br />

�<br />

. (2.21)<br />

�<br />

,<br />

q ′ (ρ) = d<br />

�<br />

q(ρ) = vm 1 −<br />

dρ 2ρ<br />

�<br />

,<br />

ρm<br />

l’equazione che regola lo scorrere del traffico autostradale potrà essere scritta<br />

nella forma:<br />

o, più brevemente,<br />

∂ρ(x, t)<br />

∂t<br />

ρt = −vm<br />

= −vm<br />

�<br />

1 −<br />

�<br />

1 − 2ρ<br />

ρm<br />

�<br />

2ρ(x, t) ∂ρ(x, t)<br />

∂x<br />

�<br />

ρm<br />

(2.22)<br />

ρx = −q ′ (ρ)ρx. (2.23)<br />

Possiamo stu<strong>di</strong>are la soluzione dell’equazione <strong>in</strong><strong>di</strong>viduandone le curve <strong>di</strong> li-<br />

vello; possiamo cercare cioè <strong>di</strong> trovare le curve descritte dalle equazioni (x(t), t)<br />

sulle quali risulta:<br />

Se:<br />

ρ(x(t), t) = costante = ρ0. (2.24)<br />

ρ(x(t), t) = costante = ρ0<br />

54


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

avremo che:<br />

è esso pure costante.<br />

q ′ (ρ) = q ′ (ρ0) = q ′ 0<br />

Pertanto, possiamo riscrivere la 2.23 come segue:<br />

D’altro canto, derivando la 2.24, si ha:<br />

Da 2.26 e 2.25 possiamo dedurre che:<br />

da cui, ricor<strong>di</strong>amo che: q ′ 0 = q′ (ρ0)<br />

ρt = −q ′ 0ρx. (2.25)<br />

ρt + ˙x(t)ρx = 0. (2.26)<br />

˙x(t) = q ′ o<br />

x(t) = q ′ 0t + x0.<br />

Le curve <strong>di</strong> livello (x(t), t) della soluzione ρ(x, t) sono rette <strong>di</strong> equazione<br />

x = q ′ 0t + x0.<br />

Se ρ(x, 0) = ρ0(x) si ha:<br />

ρ(q ′ 0t + x0, t) = ρ(x0, 0) = ρ0(x0) (2.27)<br />

E se supponiamo nota la densità <strong>in</strong>iziale ρ0(x):<br />

ρ(x, t) = ρ(x − q ′ (ρ0)t) = ρ0(x − q ′ 0t).<br />

Esam<strong>in</strong>iamo ora due casi molto <strong>in</strong>teressanti che possono offrire spunti per<br />

ulteriori stu<strong>di</strong>.<br />

2.4.1 Ripartenza dopo un blocco<br />

Supponiamo che le auto siano <strong>in</strong>colonnate ad un semaforo prima del quale la<br />

densità è massima e dopo il quale la densità è nulla.<br />

55


2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE Carlo Caligaris, Iacopo Salvarani<br />

Sia t = 0 l’istante <strong>in</strong> cui il semaforo <strong>di</strong>venta verde.<br />

Il flusso <strong>di</strong> traffico successivo può essere descritto dall’equazione 2.22 con la<br />

con<strong>di</strong>zione <strong>in</strong>iziale:<br />

⎧<br />

⎨ρm<br />

x < 0<br />

ρ(x, 0) = ρ0(x) =<br />

⎩<br />

0 x > 0.<br />

In corrispondenza <strong>di</strong> tali dati <strong>in</strong>iziali avremo che:<br />

q ′ 0 = q ′ 0(ρ(x, 0)) = q ′ 0(ρ0(x)) = =<br />

⎧<br />

⎨vm<br />

x > 0 (ρ0 = 0)<br />

.<br />

⎩<br />

−vm x < 0 (ρ0 = ρm)<br />

(2.28)<br />

La densità risulta costante su rette che si chiamano l<strong>in</strong>ee caratteristiche dell’e-<br />

quazione e sono date da:<br />

⎧<br />

⎨vmt<br />

+ x0 x0 > 0<br />

x =<br />

.<br />

⎩<br />

−vmt + x0 x0 < 0<br />

Su ognuna <strong>di</strong> tali rette la densità è ρ0 ed il flusso corrispondente è:<br />

q ′ 0 = q ′ (ρ(x, 0)) = q ′ (ρ0).<br />

Tali rette coprono solo una parte del semipiano t > 0, ma non forniscono<br />

alcun dato su quanto accade nella zona del semipiano che è compresa tra le rette<br />

x = ±vmt.<br />

La zona non coperta corrisponde al caso x0 = 0 e non è ragionevole fissare il<br />

valore della densità per x0 = 0; <strong>in</strong>fatti:<br />

• a destra <strong>di</strong> zero la densità è nulla;<br />

• a s<strong>in</strong>istra è massima;<br />

e qu<strong>in</strong><strong>di</strong> la densità presenta <strong>in</strong> zero una <strong>di</strong>scont<strong>in</strong>uità <strong>di</strong> tipo “salto”.<br />

In tale zona ci <strong>in</strong>teressa def<strong>in</strong>ire una soluzione ρ(x, t) <strong>in</strong> grado <strong>di</strong> raccordare il<br />

valore ρm con il valore 0.<br />

56


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Figura 2.12: Le l<strong>in</strong>ee caratteristiche<br />

Per x0 = 0 le curve <strong>di</strong> livello della densità ρ sono:<br />

x = q ′ (ρ(0, 0))t = q ′ (ρ0(0))t (2.29)<br />

ma la densità <strong>in</strong>iziale ρ0(0) non è def<strong>in</strong>ita, possiamo soltanto affermare che:<br />

Qu<strong>in</strong><strong>di</strong>:<br />

q ′ (ρ0(0)) = vm<br />

ρ0(0) ∈ [0, ρm].<br />

�<br />

1 − 2ρ0(0)<br />

�<br />

ρm<br />

∈ [−vm, vm].<br />

Pertanto, per x0 = 0 possiamo considerare non una, ma <strong>in</strong>f<strong>in</strong>ite rette sulle<br />

quali ρ è costante.<br />

Se <strong>in</strong> t = 0 assumiamo un valore della densità ρ, tale valore si manterrà<br />

costante sulla retta<br />

Ricavando ρ si ottiene:<br />

x = q ′ (ρ)t = vm<br />

�<br />

1 − 2ρ<br />

ρm<br />

Osserviamo che per t = 0 la 2.30 non è def<strong>in</strong>ita.<br />

�<br />

t.<br />

ρ = 1<br />

2 ρm<br />

�<br />

1 − x<br />

�<br />

. (2.30)<br />

vmt<br />

57


2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE Carlo Caligaris, Iacopo Salvarani<br />

Figura 2.13: Grafico e livelli della 2.30<br />

La 2.30 sod<strong>di</strong>sfa l’equazione 2.22; <strong>in</strong>fatti si ha:<br />

Per cui, trascurando la costante 1<br />

2 ρm:<br />

�<br />

x<br />

+ vm 1 −<br />

vmt2 2ρ<br />

� � �<br />

−1<br />

=<br />

ρm vmt<br />

ρt = x<br />

2vmt 2 , ρx = −1<br />

2vmt .<br />

= x 1 2ρ<br />

− +<br />

vmt2 t ρmt =<br />

= x 1<br />

−<br />

vmt2 t +<br />

ρm<br />

�<br />

1 − x<br />

�<br />

vmt<br />

ρmt<br />

= 0.<br />

La soluzione così def<strong>in</strong>ita ha l<strong>in</strong>ee <strong>di</strong> livello che sono rette per l’orig<strong>in</strong>e, esse<br />

corrispondono ai <strong>di</strong>versi valori <strong>di</strong> densità che possono essere assunti nell’orig<strong>in</strong>e.<br />

Tali valori vanno da:<br />

• ρm, <strong>in</strong> corrispondenza del quale x = −vmt<br />

• a 0 caso <strong>in</strong> cui x = vmt.<br />

Infatti:<br />

ρ = 1<br />

2 ρm<br />

�<br />

1 − x<br />

�<br />

�<br />

= k ⇐⇒ x = vm 1 −<br />

vmt<br />

2k<br />

�<br />

.<br />

ρm<br />

58


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Le rette (al variare <strong>di</strong> k ∈ [0, ρm] hanno pendenza crescente da −vm a vm e<br />

coprono la zona lasciata scoperta dalle precedenti considerazioni. Sono le curve<br />

caratteristiche che passano per l’orig<strong>in</strong>e.<br />

I punti della retta x = −vmt caratterizzano i tempi ed i luoghi <strong>in</strong> cui <strong>in</strong>izia il<br />

movimento <strong>di</strong> un’auto <strong>in</strong> coda al semaforo.<br />

Al tempo t <strong>in</strong>iziano a muoversi le auto che per t = 0 si trovano alla posizione<br />

x = −vmt mentre al tempo t l’auto che si trova <strong>in</strong> x = 0 per t = 0 avrà raggiunto<br />

la posizione x = vmt.<br />

La velocità con cui le auto si muovono nella zona <strong>in</strong> esame, sarà:<br />

�<br />

v = vm 1 − ρ<br />

�<br />

e qu<strong>in</strong><strong>di</strong> dalla soluzione 2.30 trovata per ρ,<br />

per cui:<br />

e<br />

v = vm<br />

v = vm<br />

�<br />

1 − 1<br />

2<br />

v = vm<br />

2<br />

ρm<br />

�<br />

1 − x<br />

vmt<br />

� �<br />

1 x<br />

+<br />

2 2vmt<br />

+ x<br />

2t .<br />

��<br />

Se x(t) è la posizione <strong>di</strong> un’auto avremo che ˙x(t) = v. Si ottiene:<br />

˙x(t) = vm<br />

2<br />

+ x<br />

2t .<br />

(2.31)<br />

Si è <strong>in</strong> questo modo trovata una equazione <strong>di</strong>fferenziale che def<strong>in</strong>isce il movi-<br />

mento dell’auto alla partenza dopo il verde.<br />

Una con<strong>di</strong>zione <strong>in</strong>iziale può essere dedotta tenendo conto che l’auto com<strong>in</strong>cia<br />

a muoversi da x0 al tempo t0 = −x0/vm;<br />

Ne viene: ⎧ ⎨<br />

˙x(t) = x(t)<br />

2t<br />

vm + 2<br />

⎩<br />

x(− x0 ) = x0.<br />

vm<br />

59


2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE Carlo Caligaris, Iacopo Salvarani<br />

L’<strong>in</strong>tegrale generale dell’equazione è:<br />

e imponendo che:<br />

si ricava:<br />

√<br />

x(t) = C1 t + vmt;<br />

x0 = x(− x0<br />

�<br />

) = C1 −<br />

vm<br />

x0<br />

�<br />

+ vm −<br />

vm<br />

x0<br />

�<br />

vm<br />

C1 = −2 √ −x0vm<br />

per cui la cui soluzione del problema <strong>di</strong> Cauchy è<br />

ricava:<br />

x(t) = −2 √ √<br />

−x0vm t + vmt √ t √ vm<br />

�<br />

√vm√<br />

√ �<br />

t − 2 −x0 .<br />

Si calcola che l’auto raggiungerà il semaforo al tempo ˜t tale che x(˜t) = 0; si<br />

˜t = −4 x0<br />

.<br />

La figura seguente mostra come si muove un’auto <strong>in</strong> coda al semaforo dopo<br />

che il semaforo è <strong>di</strong>ventato verde.<br />

Figura 2.14: Traiettoria <strong>di</strong> un’auto <strong>in</strong>izialmente <strong>in</strong> attesa al semaforo<br />

60<br />

vm


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

2.4.2 La formazione <strong>di</strong> code<br />

Una situazione opposta si verifica quando la densità <strong>di</strong> traffico aumenta. In tal<br />

caso il metodo delle caratteristiche presenta <strong>in</strong>convenienti e si rendono necessari<br />

degli aggiustamenti.<br />

La densità <strong>in</strong>iziale sia data da:<br />

⎧<br />

⎨ ρm x < 0<br />

4<br />

ρ(x, 0) = ρ0(x) =<br />

⎩<br />

ρm x > 0.<br />

Avremo che:<br />

q ′ 0 = q ′ 0(ρ(x, 0)) = q ′ 0(ρ0(x)) = =<br />

⎧<br />

⎨<br />

vm<br />

2 x < 0 (ρ0 = ρm<br />

4 )<br />

⎩<br />

−vm x > 0 (ρ0 = ρm).<br />

(2.32)<br />

Le curve caratteristiche su cui risulta costante la densità dell’equazione, sa-<br />

ranno date da:<br />

come si vede nella figura seguente.<br />

⎧<br />

⎨ vm t + x0 x0 < 0<br />

2<br />

x =<br />

⎩<br />

−vmt + x0 x0 > 0<br />

Figura 2.15:<br />

61


2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE Carlo Caligaris, Iacopo Salvarani<br />

È evidente che la situazione non è affatto chiara: esiste una zona del piano <strong>in</strong><br />

cui le caratteristiche si sovrappongono.<br />

Ciò causa la mancanza <strong>di</strong> unicità della soluzione, o meglio la sua <strong>in</strong>determi-<br />

natezza. Questo è dovuto alla <strong>di</strong>scont<strong>in</strong>uità del dato <strong>in</strong>iziale Dobbiamo pertanto<br />

operare una scelta tra le due soluzioni.<br />

Poichè la densità è <strong>di</strong>scont<strong>in</strong>ua la 2.16 può causare problemi.<br />

Ad esempio può non essere lecito lo scambio tra derivata ed <strong>in</strong>tegrale <strong>in</strong> 2.15.<br />

La 2.15 afferma:<br />

q(t, x) − q(t, x + ∆x) =<br />

= d<br />

dt<br />

� x+∆x<br />

x<br />

ρ(t, s)ds.<br />

Se σ(t) ∈ [x, x + ∆x] è un punto <strong>in</strong> cui si verifica la <strong>di</strong>scont<strong>in</strong>uità la 2.15<br />

applicata agli <strong>in</strong>tervalli [x, σ+(t)] e [σ−(t), x + ∆x] assicura<br />

d<br />

dt<br />

x<br />

� σ(t)<br />

x<br />

ρ(s, t)ds + d<br />

dt<br />

σ(t)<br />

� x+∆x<br />

σ(t)<br />

ρ(s, t)ds =<br />

= q(σ − (t), t) − q(x + ∆x, t) − q(σ + (t), t) + q(x, t).<br />

σ −<br />

σ +<br />

62<br />

x + ∆x


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

d<br />

dt<br />

ovvero<br />

D’altro canto, per le solite regole <strong>di</strong> derivazione, si ha:<br />

� σ(t)<br />

x<br />

ρ(s, t)ds + d<br />

dt<br />

� x+∆x<br />

σ(t)<br />

= ˙σ(t)ρ(σ − (t), t) +<br />

ρ(s, t)ds =<br />

� σ(t)<br />

Qu<strong>in</strong><strong>di</strong>, se x → σ(t) − e x + ∆x → σ(t) + otteniamo:<br />

x<br />

∂ρ(s, t)<br />

ds − ˙σ(t)ρ(σ<br />

∂t<br />

+ (t), t)+<br />

� x+∆x<br />

∂ρ(s, t)<br />

+<br />

ds.<br />

∂t<br />

˙σ(t)ρ(σ − (t), t) − ˙σ(t)ρ(σ + (t), t) = − q(σ + (t), t) + q(σ − (t), t).<br />

Più brevemente:<br />

˙σ(t)ρ− − ˙σ(t)ρ+ = −q+ + q−<br />

˙σ(t) = q+ − q−<br />

ρ+ − ρ−<br />

Nel nostro caso, si verifica subito che:<br />

Per cui:<br />

= ρ+v+ − ρ−v−<br />

.<br />

ρ+ − ρ−<br />

ρ+ = ρm , ρ− = ρm<br />

4 ,<br />

v+ = 0 , v− = 3vm<br />

4 .<br />

˙σ(t) = − vm<br />

4<br />

σ(t)<br />

e σ(t) = − vm<br />

t. (2.33)<br />

4<br />

63


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

La 2.33 rappresenta l’equazione della curva lungo la quale si passa da velocità<br />

v− = 3vm<br />

4 a velocità v+ = 0 ed ivi si riscontra una brusca <strong>in</strong>terruzione del traffico;<br />

qu<strong>in</strong><strong>di</strong> σ(t) <strong>in</strong><strong>di</strong>vidua il punto <strong>in</strong> cui <strong>in</strong> traffico subisce uno shock e ne descrive<br />

l’andamento nel tempo; solitamente σ(t) viene <strong>in</strong><strong>di</strong>cata come “shock wave” (onda<br />

d’urto).<br />

2.5 Meto<strong>di</strong> <strong>di</strong> calcolo numerici alle Differenze F<strong>in</strong>ite<br />

2.5.1 Generalità Sulle Equazioni Iperboliche<br />

Per poter offrire una più comprensibile trattazione del metodo <strong>di</strong> calcolo alle <strong>di</strong>f-<br />

ferenze f<strong>in</strong>ite, partiamo illustrando come esse vengono applicate ai <strong>di</strong>versi tipi <strong>di</strong><br />

equazioni <strong>di</strong>fferenziali.<br />

L’esempio <strong>di</strong> base <strong>di</strong> equazione <strong>di</strong>fferenziale <strong>di</strong> tipo iperbolico è dato dall’e-<br />

quazione del trasporto l<strong>in</strong>eare:<br />

ut + aux = 0 (2.34)<br />

dove a è una costante, t rappresenta la variabile temporale e x è la variabile spa-<br />

ziale. Data la funzione u = u(x, t) ad un istante <strong>in</strong>iziale t = 0, imponendo la<br />

con<strong>di</strong>zione:<br />

u(x, 0) = u0(x) (2.35)<br />

per una certa funzione data u0, vogliamo determ<strong>in</strong>are il valore <strong>di</strong> u per tempi suc-<br />

cessivi (∀ t ≥ 0). Questo è un problema ai valori <strong>in</strong>iziali o <strong>di</strong> Cauchy. Risolvere<br />

questa equazione significa pertanto risolvere <strong>in</strong> maniera analitica il problema del<br />

traffico, ovvero stimare quale sarà il flusso veicolare lungo la variabile spaziale ne-<br />

gli istanti successivi a t = 0, avendo come dato <strong>in</strong>iziale il flusso lungo la variabile<br />

spaziale a t = 0. Purtroppo, come vedremo <strong>in</strong> seguito, questo tipo <strong>di</strong> trattazione<br />

è effettuabile soltanto <strong>in</strong> casi molto semplici e specifici e non sulle tratte autostra-<br />

dali, le quali presentano forti caratteristiche <strong>di</strong> <strong>di</strong>scont<strong>in</strong>uità o elementi che danno<br />

vita ad equazioni <strong>di</strong> <strong>di</strong>fficile risoluzione.<br />

64


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

L’unica soluzione <strong>di</strong> questo problema è data da:<br />

u(x, t) = u0(x − at). (2.36)<br />

Dalla formula (2.36) possiamo dedurre alcune importanti <strong>in</strong><strong>di</strong>cazioni. Innanzitut-<br />

to, la soluzione non è altro che la traslazione (verso destra se a > 0 o verso s<strong>in</strong>istra<br />

se a < 0) del dato <strong>in</strong>iziale, con “velocità dell’ondà’ pari ad a. Inoltre, lungo le<br />

rette ξ = x − at, la soluzione è costante e vale u0(ξ). Queste rette sono le l<strong>in</strong>ee<br />

caratteristiche dell’equazione. Possiamo ritrovare la soluzione utilizzando questo<br />

concetto <strong>di</strong> caratteristica. Si effettui il cambio <strong>di</strong> variabili da (x, t) a (ξ, τ) def<strong>in</strong>ito<br />

da:<br />

La sua <strong>in</strong>versa è data da:<br />

ξ = x − at<br />

τ = t.<br />

x = ξ + aτ<br />

t = τ.<br />

Possiamo allora def<strong>in</strong>ire una nuova funzione ũ(ξ, τ) = u(x, t). Nelle nuove<br />

coor<strong>di</strong>nate, l’equazione (2.34) <strong>di</strong>venta:<br />

ũτ = ∂t<br />

∂τ ut + ∂x<br />

∂τ ux = 0.<br />

Questa è una semplice equazione <strong>di</strong>fferenziale <strong>in</strong> τ che ha come unica soluzione:<br />

ũ(ξ, τ) = u0(ξ)<br />

da cui si può ottenere anche la (2.36). Analogamente è possibile <strong>di</strong>mostrare che<br />

la soluzione dell’equazione<br />

con la con<strong>di</strong>zione <strong>in</strong>iziale (2.35) è data dalla funzione:<br />

u(x, t) = u0(x − at)e −bt +<br />

ut + aux + bu = f(x, t) (2.37)<br />

� t<br />

0<br />

e −b(t−s) f(x − a(t − s), s)ds. (2.38)<br />

65


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Anche <strong>in</strong> questo caso si vede come la soluzione sia <strong>in</strong>fluenzata solo dai valori dei<br />

dati u0 ed f lungo la retta caratteristica ξ = x − a(t − s).<br />

Si osservi che, nonostante l’equazione richieda la <strong>di</strong>fferenziabilità della so-<br />

luzione u, le (2.36) e (2.38) hanno senso per dati <strong>in</strong>iziali molto generali. Que-<br />

sto permette <strong>di</strong> trattare soluzioni generalizzate eventualmente <strong>di</strong>scont<strong>in</strong>ue. Que-<br />

sti meto<strong>di</strong> si possono estendere facilmente, benché <strong>in</strong> quel caso non ci sia più<br />

necessariamente una soluzione esplicita, alle equazioni semil<strong>in</strong>eari.<br />

ut + aux = f(x, t, u) (2.39)<br />

Come vedremo <strong>in</strong> seguito, porre a costante è un caso particolare che mal si<br />

adatterebbe a trattare dal punto <strong>di</strong> vista matematico il fenomeno che andremo a<br />

stu<strong>di</strong>are.<br />

Un’ulteriore estensione della teoria è data da equazioni e sistemi a coefficienti<br />

variabili, eventualmente con term<strong>in</strong>e <strong>di</strong> sorgente <strong>di</strong>pendente dall’<strong>in</strong>cognita. Si<br />

consideri per esempio l’equazione scalare:<br />

dove a(x, t) è una funzione regolare.<br />

ut + a(x, t)ux = 0 (2.40)<br />

Se cerchiamo un cambio <strong>di</strong> variabili che, come prima, ci riporti ad un’equazio-<br />

ne <strong>di</strong>fferenziale or<strong>di</strong>naria, eseguiamo la trasformazione da (x, t) a (ξ, τ) def<strong>in</strong>ita<br />

da:<br />

lasciando per ora ξ <strong>in</strong>determ<strong>in</strong>ata.<br />

τ = t<br />

Tramite questa trasformazione possiamo def<strong>in</strong>ire una nuova funzione ũ(ξ, τ) =<br />

u(x, t). Nelle nuove coor<strong>di</strong>nate, l’equazione (2.40) <strong>di</strong>venta<br />

se imponiamo che<br />

ũτ = ∂t<br />

∂τ ut + ∂x<br />

∂τ ux = 0<br />

dx<br />

dτ<br />

= a(x, τ).<br />

66


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

In pratica, si risolve il sistema <strong>di</strong> equazioni <strong>di</strong>fferenziali or<strong>di</strong>narie:<br />

⎧<br />

⎨ dũ = 0 ũ(ξ, 0) = u0(ξ)<br />

⎩<br />

dτ<br />

dx<br />

dτ = a(x, τ) x0 = ξ.<br />

(2.41)<br />

Essendo x0 = ξ, almeno per piccoli valori <strong>di</strong> τ, la relazione x = x(ξ, τ) è <strong>in</strong>ver-<br />

tibile per τ fissato tramite una funzione ξ = ξ(x, τ). La soluzione del problema<br />

(2.40) sarà allora data dalla funzione<br />

u(x, t) = ũ(ξ, τ) = u0(ξ(x, t), t).<br />

Osserviamo <strong>in</strong>f<strong>in</strong>e che le idee qui esposte non si applicano <strong>di</strong>rettamente al<br />

caso <strong>in</strong> cui le velocità possano <strong>di</strong>pendere dall’<strong>in</strong>cognita u, poichè, come vedremo<br />

<strong>in</strong> seguito, le caratteristiche possono <strong>in</strong>tersecarsi e generare soluzioni <strong>di</strong>scont<strong>in</strong>ue,<br />

che necessitano un trattamento particolare.<br />

2.5.2 Introduzione al Metodo delle Differenze F<strong>in</strong>ite<br />

Il metodo alle <strong>di</strong>fferenze f<strong>in</strong>ite è fondamentale per riuscire a risolvere le equazioni<br />

<strong>di</strong>fferenziali con algoritmi numerici. In pratica, con questo metodo si mo<strong>di</strong>fica il<br />

dom<strong>in</strong>io dell’analisi dal caso cont<strong>in</strong>uo al caso <strong>di</strong>screto. Le equazioni <strong>di</strong>fferenziali<br />

funzionano <strong>in</strong> un <strong>in</strong>sieme cont<strong>in</strong>uo e le derivate stesse sono def<strong>in</strong>ite su <strong>in</strong>terval-<br />

li <strong>in</strong>f<strong>in</strong>itesimi. Evidentemte, questi comportamenti non possono essere simulati<br />

nel modo reale, ma devono essere <strong>di</strong>scretizzati (considerazione, questa, che si<br />

apre a molte obiezioni <strong>di</strong> natura filosofica, oltre che matematica, ma che aiuta a<br />

comprendere la necessità <strong>di</strong> questo passaggio).<br />

Def<strong>in</strong>iamo qu<strong>in</strong><strong>di</strong> una griglia <strong>di</strong> punti nel piano cartesiano (x, t) e, per sem-<br />

plicità, ipotizziamo che il piano rappresenti le coor<strong>di</strong>nate spazio/temporali <strong>di</strong> un<br />

qualsiasi fenomeno he abbia luogo <strong>in</strong> una sola <strong>di</strong>mensione spaziale. Fissati un<br />

passo <strong>di</strong> <strong>di</strong>scretizzazione spaziale ∆x = h ed un passo <strong>di</strong> <strong>di</strong>scretizzazione tempo-<br />

rale ∆t = k, la griglia sarà data dai punti nodali del piano (xm, tn) = (mh, nk),<br />

per valori <strong>in</strong>teri arbitrari m e n.<br />

Per una funzione v def<strong>in</strong>ita sulla griglia, scriveremo vm,n per il suo valore<br />

al nodo (xm, tn), e questa notazione sarà estesa naturalmente a funzioni def<strong>in</strong>ite<br />

ovunque per <strong>in</strong><strong>di</strong>care i valori sui no<strong>di</strong>.<br />

67


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Figura 2.16: Una rappresentazione bi<strong>di</strong>mensionale della griglia<br />

L’idea <strong>di</strong> base dei meto<strong>di</strong> alle <strong>di</strong>fferenze f<strong>in</strong>ite è quella <strong>di</strong> sostituire nell’equa-<br />

zione da approssimare, ad ogni derivata, un rapporto <strong>in</strong>crementale f<strong>in</strong>ito.<br />

Per esempio, per una funzione regolare u, la derivata temporale ∂tu(xm, tn)<br />

può essere approssimata sia dalla <strong>di</strong>fferenza <strong>in</strong> avanti (forward):<br />

∆+tu<br />

∆t<br />

sia dalla <strong>di</strong>fferenza all’<strong>in</strong><strong>di</strong>etro (backward):<br />

∆−tu<br />

∆t<br />

u(mh, (n + 1)k) − u(mh, nk)<br />

� ;<br />

k<br />

u(mh, nk) − u(mh, (n − 1)k)<br />

� ;<br />

k<br />

sia, <strong>in</strong>f<strong>in</strong>e, dalla <strong>di</strong>fferenza centrata (central):<br />

∆tu<br />

2∆t<br />

u(mh, (n + 1)k) − u(mh, (n − 1)k)<br />

� .<br />

2k<br />

Si procede analogamente nel caso <strong>di</strong> una derivata spaziale, ed eventualmente an-<br />

che nel caso <strong>di</strong> più variabili spaziali. In particolare, la derivata seconda spaziale<br />

68


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

sarà spesso approssimata dalla <strong>di</strong>fferenza seconda centrata<br />

∆2 xu u(mh, (n + 1)k) − 2u(mh, nk) + u(mh, (n − 1)k)<br />

�<br />

(∆x) 2 h2 .<br />

Questi schemi sono def<strong>in</strong>iti da un sistema algebrico<br />

Ph,kv = 0<br />

che agisce sullo spazio delle funzioni def<strong>in</strong>ite sui no<strong>di</strong> della griglia.<br />

Usando <strong>di</strong>verse approssimazioni per le derivate si ottengono chiaramente sche-<br />

mi numerici <strong>di</strong>fferenti. Per esempio, per l’equazione (2.34) otteniamo i seguenti<br />

schemi:<br />

vm,n+1 − vm,n<br />

k<br />

vm,n+1 − vm,n<br />

k<br />

vm,n+1 − vm,n<br />

k<br />

vm,n+1 − vm,n−1<br />

2k<br />

+ a vm+1,n − vm,n<br />

h<br />

+ a vm,n − vm−1,n<br />

h<br />

+ a vm+1,n − vm−1,n<br />

2h<br />

+ a vm+1,n − vm−1,n<br />

2h<br />

vm,n+1 − 1<br />

2 (vm+1,n + vm−1,n)<br />

+ a<br />

k<br />

vm+1,n − vm−1,n<br />

2h<br />

= 0 (2.42)<br />

= 0 (2.43)<br />

= 0 (2.44)<br />

= 0 (2.45)<br />

= 0. (2.46)<br />

Il primo schema (2.42) è un forward-forward o upw<strong>in</strong>d con a > 0 (le <strong>di</strong>fferen-<br />

ze prendono la <strong>di</strong>rezione delle caratteristiche), perchè <strong>in</strong> tale approssimazione è<br />

usata la <strong>di</strong>fferenza <strong>in</strong> avanti sia per la variabile temporale che per quella spazia-<br />

le. Lo schema (2.43) è un forward-backward o upw<strong>in</strong>d con a < 0 ed il (2.44)<br />

è un forward-central. Lo schema (2.45) è un central-central o leapfrog men-<br />

tre il (2.46), che ha una struttura leggermente <strong>di</strong>fferente, è chiamato schema <strong>di</strong><br />

Lax-Friedrichs.<br />

Come si è visto, il modo <strong>di</strong> derivare gli schemi è estremamente semplice e<br />

permette <strong>di</strong> approssimare qualsiasi equazione <strong>di</strong>fferenziale, anche a coefficienti<br />

variabili o non l<strong>in</strong>eare. Questo non vuol <strong>di</strong>re che tutti gli schemi così ottenuti<br />

siano ugualmente efficienti e veloci, e <strong>in</strong> effetti non è detto nemmeno che tutti<br />

approssim<strong>in</strong>o la soluzione del problema (2.34). Nel seguito, ci occuperemo <strong>di</strong><br />

69


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

stabilire certi criteri che assicur<strong>in</strong>o la convergenza, ossia la proprietà <strong>di</strong> approssi-<br />

mare la soluzione del problema limite quando i passi <strong>di</strong> <strong>di</strong>scretizzazione spaziale<br />

e temporale tendono entrambi a zero. Tra gli schemi convergenti cercheremo <strong>di</strong><br />

selezionare quelli che danno un’approssimazione più accurata con il m<strong>in</strong>or nume-<br />

ro <strong>di</strong> punti. Una prima osservazione da fare riguardo agli schemi (2.42), (2.43),<br />

(2.44), (2.45) e (2.46) è che tutti possono essere riformulati esprimendo vm,n+1 co-<br />

me una comb<strong>in</strong>azione l<strong>in</strong>eare dei valori <strong>di</strong> v al livello n o, nel caso dello schema<br />

central-central, anche al livello n − 1.<br />

Per esempio lo schema (2.42) può essere riscritto come<br />

avendo posto<br />

vm,n+1 = (1 + aλ)vm,n − aλvm+1,n<br />

λ � k<br />

. (2.47)<br />

h<br />

Questo valore λ, detto anche rapporto <strong>di</strong> CFL (da Courant, Friedrichs, Lewy, noti<br />

stu<strong>di</strong>osi dell’argomento, con riferimento a [9]), apparirà spesso nel seguito e il suo<br />

valore sarà determ<strong>in</strong>ante nello stabilire le proprietà degli schemi. Gli schemi che<br />

<strong>di</strong>pendono dai valori al passo imme<strong>di</strong>atamente precedente sono chiamati schemi<br />

ad un passo, altrimenti, come nel caso dello schema central-central, si parla <strong>di</strong><br />

schemi multistep. Per gli schemi ad un passo, una volta fissato il dato <strong>in</strong>iziale ed<br />

una sua ragionevole approssimazione sulla griglia <strong>di</strong> <strong>di</strong>scretizzazione (per esem-<br />

pio il suo valore sui no<strong>di</strong>), la soluzione approssimata viene costruita facilmente<br />

per ricorrenza. Per gli schemi multistep a k passi, k > 1, bisogna <strong>in</strong>vece pre-<br />

scrivere una procedura <strong>di</strong> <strong>in</strong>izializzazione per assegnare la soluzione nei livelli k<br />

occorrenti. Per fare questo, usualmente si utilizza un metodo ad un passo per i<br />

primi k passi e poi si cont<strong>in</strong>ua con il metodo proposto.<br />

Esempio 2.1<br />

Prima <strong>di</strong> procedere con l’analisi degli schemi a <strong>di</strong>fferenze f<strong>in</strong>ite, analizziamo alcu-<br />

ni risultati numerici ottenuti utilizzando lo schema <strong>di</strong> Lax-Friedrichs. Si consideri<br />

l’equazione<br />

ut + ux = 0<br />

70


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

con il dato <strong>in</strong>iziale<br />

u0 =<br />

⎧<br />

⎨1<br />

− x per | x |≤ 1<br />

⎩<br />

0 per | x |> 1<br />

la cui soluzione è ottenuta semplicemente ponendo u(x, t) = u0(x − t), ossia<br />

traslando verso destra a velocità 1 il dato <strong>in</strong>iziale.<br />

Figura 2.17: Lax-Friedrichs, λ = 0, 8 [30]<br />

Per calcolare la soluzione noi ci limiteremo al caso 0 ≤ t ≤ 2, per cui il sup-<br />

porto della soluzione sarà contenuto solo nell’<strong>in</strong>tervallo −1 ≤ x ≤ 3 e basterà<br />

imporre le con<strong>di</strong>zioni al bordo nulle per la v. La formula relativa allo schema <strong>di</strong><br />

Lax-Friedrichs è<br />

vm,n+1 = 1<br />

2 (vm+1,n + vm−1,n) − 1<br />

2 λ(vm+1,n − vm−1,n)<br />

eccetto negli estremi destri e s<strong>in</strong>istri dove imporremo v = 0. La soluzione al<br />

tempo t = 1, 6 per λ = 0, 8 appare <strong>in</strong> figura (2.17), dove la soluzione esatta è<br />

data dalla l<strong>in</strong>ea cont<strong>in</strong>ua. Si osserva allora un sostanziale rispetto della soluzio-<br />

ne, che viene però smussata negli spigoli a causa del fenomeno della cosiddetta<br />

71


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

viscosità numerica, che verrà <strong>di</strong>scusso <strong>in</strong> seguito. Mantenendo fisso il valore <strong>di</strong><br />

λ e <strong>di</strong>m<strong>in</strong>uendo il valore <strong>di</strong> h, e qu<strong>in</strong><strong>di</strong> <strong>di</strong> k, la precisione migliora e possiamo<br />

constatare una sostanziale convergenza numerica. Se però usiamo λ = 1, 6, co-<br />

me mostrato nella figura (2.18) per il tempo t = 0, 8, ve<strong>di</strong>amo che la soluzione<br />

numerica si comporta <strong>in</strong> modo anomalo, oscillando <strong>in</strong> modo <strong>in</strong>controllato <strong>in</strong>torno<br />

alla soluzione esatta. Questo fatto, che verrà ripreso e spiegato <strong>in</strong> seguito, mostra<br />

l’importanza <strong>di</strong> una corretta scelta del parametro λ.<br />

Convergenza e Consistenza<br />

Figura 2.18: Lax-Friedrichs, λ = 1, 6 [30]<br />

Come già osservato, la proprietà pr<strong>in</strong>cipale <strong>di</strong> uno schema è la sua convergenza<br />

verso la soluzione esatta al tendere dei passi <strong>di</strong> <strong>di</strong>scretizzazione h e k verso lo<br />

zero. Nel seguito estenderemo la nozione <strong>di</strong> schema convergente ad operatori più<br />

generali, ma per ora vogliamo limitarci solo alle equazioni scalari del prim’or<strong>di</strong>ne<br />

iperboliche.<br />

Def<strong>in</strong>izione 2.4<br />

Uno schema alle <strong>di</strong>fferenze f<strong>in</strong>ite ad un passo dato da un operatore <strong>di</strong>screto<br />

72


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Ph,kv = 0 è convergente per l’equazione <strong>di</strong>fferenziale (2.34) se per qualsiasi so-<br />

luzione u dell’equazione con la con<strong>di</strong>zione <strong>in</strong>iziale (2.35), data la soluzione vm,n<br />

dello schema alle <strong>di</strong>fferenze f<strong>in</strong>ite, tale che vm,0 converge a u0 quando mh con-<br />

verge a x, allora vm,n converge a u(x, t) se (mh, nk) tende a (x, t) al tendere <strong>di</strong><br />

h e k a 0.<br />

Per gli schemi multistep la def<strong>in</strong>izione si estende senza <strong>di</strong>fficoltà specificando<br />

la procedura <strong>di</strong> <strong>in</strong>izializzazione.<br />

Per confrontare una soluzione <strong>di</strong>screta v con una def<strong>in</strong>ita ovunque u, dobbia-<br />

mo <strong>in</strong>trodurre delle opportune topologie. Sia Ω un’<strong>in</strong>tervallo reale e JΩ l’<strong>in</strong>sieme<br />

dei valori dell’<strong>in</strong><strong>di</strong>ce m tali che mh ∈ Ω. I valori <strong>di</strong> una <strong>di</strong>scretizzazione<br />

v = {vm,n} al livello temporale n saranno def<strong>in</strong>iti da:<br />

v n � {vm,n, m ∈ JΩ}.<br />

Una notazione analoga sarà utilizzata per la restrizione della funzione u sui<br />

no<strong>di</strong> della griglia.<br />

Possiamo allora considerare due tipi <strong>di</strong> norma. Per prima cosa la norma del<br />

massimo, che è data da:<br />

|| v n ||∞,h� max � �<br />

| vm,n |, m ∈ JΩ . (2.48)<br />

Utilizzando la stessa norma per valutare u n avremo un’approssimazione (dal bas-<br />

so) della norma usuale <strong>in</strong> L ∞ della funzione u(·, tn), che <strong>in</strong> generale non co<strong>in</strong>ci-<br />

derà con essa.<br />

Un’altra norma largamente utilizzata, specialmente nel contesto dei problemi<br />

l<strong>in</strong>eari, sarà la norma <strong>di</strong>screta L 2 :<br />

|| v n ||2,h �<br />

� �<br />

m ∈ JΩ<br />

h | vm,n | 2<br />

� 1<br />

2<br />

. (2.49)<br />

La scelta della norma <strong>di</strong>screta da utilizzare non mo<strong>di</strong>fica <strong>in</strong> modo sostanziale<br />

l’analisi degli schemi, se non dal punto <strong>di</strong> vista tecnico.<br />

Nell’esempio precedente si vedeva che per λ = 0, 8 gli schemi <strong>di</strong> Lax-Friedrichs<br />

e leapfrog erano convergenti, mentre lo schema <strong>di</strong> Lax-Friedrichs mostrava un<br />

73


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

cattivo comportamento per λ = 1, 6. Dimostrare che uno schema è convergente<br />

è spesso <strong>di</strong>fficile per un problema <strong>di</strong> natura generale e procedendo <strong>in</strong> maniera <strong>di</strong>-<br />

retta. Per le equazioni l<strong>in</strong>eari a coefficienti costanti si può però caratterizzare la<br />

convergenza <strong>in</strong> modo completo utilizzando delle con<strong>di</strong>zioni <strong>di</strong> facile verifica, la<br />

consistenza e la stabilità.<br />

Def<strong>in</strong>izione 2.5<br />

L’errore <strong>di</strong> troncatura T <strong>di</strong> uno schema alle <strong>di</strong>fferenze f<strong>in</strong>ite per l’equazione (2.34)<br />

Ph,kv = 0 è def<strong>in</strong>ito sostituendo nello schema della soluzione numerica una<br />

soluzione esatta u <strong>di</strong> (2.34) abbastanza regolare, ossia:<br />

Def<strong>in</strong>izione 2.6<br />

T(x, t) = Ph,ku(x, t). (2.50)<br />

Uno schema si <strong>di</strong>ce consistente con l’equazione (2.34) se:<br />

per ogni (x, t) nel dom<strong>in</strong>io <strong>di</strong> <strong>in</strong>teresse.<br />

T(x, t) → 0 se h, k → 0<br />

Per alcuni schemi dovremmo dare delle restrizioni al modo <strong>in</strong> cui h e k ten-<br />

dono a zero. Le soluzioni dovranno essere abbastanza regolari nel senso <strong>di</strong> essere<br />

derivabili abbastanza volte per eseguire i calcoli.<br />

Esam<strong>in</strong>iamo adesso la consistenza degli schemi proposti:<br />

Esempio 2.2 Lo Schema Upw<strong>in</strong>d con a < 0<br />

In questo caso sia u soluzione <strong>di</strong> (2.34), e:<br />

Ph,kv = vm,n+1 − vm,n<br />

k<br />

+ a vm+1,n − vm,n<br />

h<br />

= 0.<br />

Eseguendo lo sviluppo <strong>di</strong> Taylor <strong>di</strong> u <strong>in</strong> un <strong>in</strong>torno <strong>di</strong> (mh, nk) otteniamo<br />

allora, ponendo um,n = u(mh, nk)<br />

um,n+1 = um,n + kut + 1<br />

2 k2 utt + O(k 3 ),<br />

um+1,n = um,n + hux + 1<br />

2 h2 uxx + O(h 3 ),<br />

74


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

essendo le derivate calcolate nel punto stesso (mh, nk). Da questo si deduce che<br />

T = Ph,ku = ut + aux + 1<br />

2 kutt + 1<br />

2 ahuxx + O(k 2 ) + O(h 2 ) (2.51)<br />

che tende a zero se h e k tendono a zero, per cui lo schema è consistente.<br />

Esempio 2.3 Lo Schema <strong>di</strong> Lax-Friedrichs<br />

Per questo schema abbiamo:<br />

Ph,ku = um,n+1 − 1<br />

2 (um+1,n + um−1,n)<br />

k<br />

+ a um+1,n − um−1,n<br />

.<br />

2h<br />

Sfruttando nuovamente gli sviluppi <strong>di</strong> Taylor si può osservare che:<br />

ed otteniamo qu<strong>in</strong><strong>di</strong>:<br />

e anche:<br />

um±1,n = um,n ± hux + 1<br />

2 h2 uxx ± 1<br />

6 h3 uxxx + O(h 4 )<br />

1<br />

2 (um+1,n + um−1,n) = um,n + 1<br />

2 h2uxx + O(h 4 )<br />

um+1,n − um−1,n<br />

= ux + 1<br />

6 h3 uxxx + O(h 4 ).<br />

2h<br />

Sostituendo queste espressioni nello schema otteniamo:<br />

Ph,ku = ut + aux + 1<br />

2 k2 utt − 1<br />

2 k−1 h 2 uxx + 1<br />

6 ah3 uxxx + O(h 4 + k −1 h 4 + k 2 ).<br />

che, essendo u una soluzione, tende a zero se h e k tendono a zero con k −1 h 2 → 0<br />

Ve<strong>di</strong>amo ora come l’errore <strong>di</strong> troncatura ci possa dare <strong>in</strong> alcuni esempi ele-<br />

mentari una stima dell’errore <strong>di</strong> approssimazione numerica che stiamo commet-<br />

tendo. Per un dato schema denotiamo con Tm,n l’errore <strong>di</strong> troncatura <strong>in</strong> (xn, tm)<br />

e sia data una stima <strong>di</strong> questo errore su <strong>di</strong> un <strong>in</strong>tervallo fissato [0, T0) con<br />

| Tm,n |≤ Γ (2.52)<br />

se nk ≤ T0. Si denoti qu<strong>in</strong><strong>di</strong> con e l’errore v − u nell’approssimazione; più<br />

precisamente sia:<br />

em,n = vm,n − um,n. (2.53)<br />

75


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Analizziamo ora, per esempio, lo schema upw<strong>in</strong>d con a < 0. Inserendo la<br />

quantità em,n nello schema (2.42) troviamo:<br />

em,n+1 = (1 + aλ)em,n − aλem+1,n − kTm,n. (2.54)<br />

Osserviamo allora che se −1 ≤ aλ ≤ 0, i coefficienti dei due primi term<strong>in</strong>i<br />

a destra sono non negativi e sommati danno 1. Introduciamo qu<strong>in</strong><strong>di</strong> la norma del<br />

massimo dell’errore:<br />

E n � max � �<br />

| em,n |, m ∈ JΩ .<br />

A questo punto utilizzando la non negatività dei coefficienti <strong>di</strong> em,n nella<br />

(2.54) si ottiene facilmente:<br />

ovvero, essendo E 0 = 0:<br />

Utilizzando la stima (2.51) abbiamo però che:<br />

Γ ≤ 1<br />

2 k<br />

�<br />

| a |<br />

Mtt +<br />

λ Mxx<br />

�<br />

E n+1 ≤ E n + kΓ. (2.55)<br />

E n ≤ nkΓ ≤ T0Γ. (2.56)<br />

dove Mtt e Mxx sono la norma del massimo per le derivate utt e uxx rispettiva-<br />

mente.<br />

Abbiamo qu<strong>in</strong><strong>di</strong> che l’errore tende a zero, ovvero l’approssimazione numerica<br />

converge, al tendere <strong>di</strong> k = λh a zero, con λ costante, se la soluzione limite<br />

ha le derivate seconde utt e uxx uniformemente limitate su tutto il dom<strong>in</strong>io. Un<br />

ragionamento analogo si applica allo schema <strong>di</strong> Lax-Friedrichs e ovviamente allo<br />

schema upw<strong>in</strong>d con a > 0.<br />

In pratica la consistenza e la convergenza sono legate dal fatto che la prima<br />

<strong>di</strong>ce che la soluzione esatta è una soluzione approssimata dello schema numerico,<br />

mentre la seconda <strong>di</strong>ce che la soluzione dello schema numerico è una soluzio-<br />

ne approssimata dell’equazione. Bisogna però porre attenzione al fatto che la<br />

consistenza da sola non implica necessariamente la convergenza, come si vede<br />

nell’esempio successivo.<br />

76


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Esempio 2.4 Lo Schema Forward-Forward non Sempre Converge<br />

Si riprenda lo schema (2.42), però con a = 1. Possiamo allora scrivere lo<br />

schema come:<br />

vm,n+1 = (1 + λ)vm,n − λvm+1,n<br />

avendo posto come al solito λ � k<br />

. Si prenda, come dato <strong>in</strong>iziale:<br />

h<br />

⎧<br />

⎨1<br />

per − 1 ≤ x ≤ 0<br />

u0 =<br />

⎩<br />

0 altrove.<br />

(2.57)<br />

La soluzione u sarà allora data da una semplice traslazione verso destra<br />

con velocità t, ed <strong>in</strong> particolare ci saranno valori positivi <strong>di</strong> x per cui u = 1.<br />

Analogamente, per lo schema alle <strong>di</strong>fferenze si prenda come dato <strong>in</strong>iziale<br />

vm,0 =<br />

⎧<br />

⎨1<br />

per − 1 ≤ mh ≤ 0<br />

⎩<br />

0 altrove.<br />

Dalla (2.57) si vede che la soluzione numerica <strong>di</strong>pende solo dai valori <strong>di</strong> m<br />

maggiori o uguali al valore nel punto, per cui avremo:<br />

vm,n = 0<br />

per tutti i valori m > 0, n ≥ 0. Per questo, essendo l’approssimazione vm,n<br />

identicamente nulla per x > 0 non può tendere a u nel limite <strong>in</strong> nessun senso<br />

ragionevole.<br />

Stabilità<br />

Abbiamo visto che la sola con<strong>di</strong>zione <strong>di</strong> consistenza non è sufficiente <strong>in</strong> generale<br />

a garantire la convergenza. La con<strong>di</strong>zione supplementare da tenere <strong>in</strong> conside-<br />

razione è la stabilità. Per capire questa con<strong>di</strong>zione si deve tener conto che se la<br />

successione approssimante converge <strong>in</strong> una qualche topologia, allora deve essere<br />

almeno limitata nella stessa topologia.<br />

77


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Def<strong>in</strong>izione 2.7<br />

Uno schema alle <strong>di</strong>fferenze f<strong>in</strong>ite a un passo Ph,kv = 0 che approssima l’equazio-<br />

ne (2.34) è stabile nella norma || · ||·,h nella regione Ω se per ogni T > 0 esiste<br />

una costante CT tale che, per ogni v 0 ,<br />

per 0 ≤ nk ≤ T<br />

|| v n ||·,h≤ CT || v 0 ||·,h<br />

(2.58)<br />

Ci concentreremo nel seguito sugli schemi ad un passo espliciti per l’equazione<br />

(2.34) che possono dunque essere scritti come:<br />

v n+1 = Cv n<br />

dove C è un operatore l<strong>in</strong>eare alle <strong>di</strong>fferenze <strong>in</strong><strong>di</strong>pendente da n del tipo:<br />

vn,m+1 = (Cv n )m = �<br />

k ∈ JΩ<br />

cm,kvk,n<br />

(2.59)<br />

(2.60)<br />

I coefficienti cm,k potranno <strong>in</strong> effetti <strong>di</strong>pendere da m e k per poter <strong>in</strong>cludere <strong>in</strong><br />

seguito il caso a coefficienti variabili e le possibili con<strong>di</strong>zioni al bordo. Eventuali<br />

term<strong>in</strong>i <strong>di</strong> sorgente potranno anche essere <strong>in</strong>clusi senza <strong>di</strong>fficoltà e non cambie-<br />

ranno le proprietà essenziali dello schema.<br />

Poichè stiamo trattando il caso l<strong>in</strong>eare, è facile vedere che <strong>in</strong> generale la nostra<br />

richiesta <strong>di</strong> stabilità equivale ad una con<strong>di</strong>zione sui coefficienti dell’operatore C<br />

del tipo:<br />

|| C n ||≤ CT<br />

per 0 ≤ nk ≤ T usando un’opportuna norma operatoriale.<br />

Diremo <strong>in</strong>f<strong>in</strong>e che uno schema è convergente nella norma prescelta se:<br />

(2.61)<br />

|| v n − u n ||·,h→ 0 (2.62)<br />

con λ = k/h fissato e k → 0 e per nk → t ∈ (0, T), per ogni dato <strong>in</strong>iziale u0<br />

per cui il problema <strong>di</strong> Cauchy per la (2.34) è ben posto nella norma prescelta. Nel<br />

caso presente per la norma del massimo serviranno dati limitati e per la norma<br />

<strong>di</strong> tipo L 2 serviranno dati nello stesso spazio. A questo punto abbiamo tutti gli<br />

elementi per enunciare il risultato fondamentale che vale più generalmente per<br />

tutti gli schemi alle <strong>di</strong>fferenze f<strong>in</strong>ite che approssim<strong>in</strong>o problemi <strong>di</strong> tipo l<strong>in</strong>eare.<br />

78


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Teorema 2.1 Teorema <strong>di</strong> Equivalenza <strong>di</strong> Lax-Richtmyer.<br />

Uno schema alle <strong>di</strong>fferenze f<strong>in</strong>ite consistente per un problema l<strong>in</strong>eare ben<br />

posto <strong>di</strong> evoluzione è convergente se e solo se è stabile.<br />

Il Teorema <strong>di</strong> Equivalenza <strong>di</strong> Lax-Richtmyer, stabilito per la prima volta da<br />

Peter Lax nel 1953 ([23]), quando aveva soltanto 27 anni, è un risultato <strong>di</strong> grande<br />

importanza. Riesce a caratterizzare un concetto utile, ma <strong>di</strong>fficile come la conver-<br />

genza, essenzialmente legata a nozioni <strong>di</strong> carattere topologico, ad altri criteri più<br />

semplici da stabilire come la stabilità e la consistenza. In pratica la consistenza<br />

è un requisito abbastanza facile da verificare. La stabilità comporta un po‘ più<br />

<strong>di</strong> <strong>di</strong>fficoltà, ma come vedremo <strong>in</strong> seguito è possibile operare con manipolazioni<br />

essenzialmente <strong>di</strong> tipo algebrico. Inoltre questa caratterizzazione è ottimale. Os-<br />

sia non <strong>di</strong>ce soltanto che la consistenza e la stabilità implicano la convergenza,<br />

ma anche che uno schema <strong>in</strong>stabile o non consistente non può essere convergente.<br />

Questo permette <strong>di</strong> scartare eventuali can<strong>di</strong>dati con una semplice verifica a priori.<br />

Passiamo ora a considerare la classe degli schemi a tre punti, ossia degli<br />

schemi della forma:<br />

con α, β e γ costanti da fissare.<br />

vm,n+1 = αvm+1,n + βvm,n + γvm−1,n<br />

Abbiamo <strong>in</strong>tanto questo primo risultato <strong>di</strong> stabilità <strong>in</strong> L 2 .<br />

Def<strong>in</strong>izione 2.8<br />

(2.63)<br />

Sia dato uno schema a tre punti della forma (2.63) per l’equazione (2.34). Una<br />

con<strong>di</strong>zione sufficiente affichè lo schema risulti stabile rispetto alla norma (2.49) è<br />

che valga la <strong>di</strong>suguaglianza:<br />

| α | + | β | + | γ | ≤ 1 (2.64)<br />

Per assicurare la consistenza con l’equazione (2.34) abbiamo:<br />

Def<strong>in</strong>izione 2.9<br />

Sia il rapporto k<br />

h<br />

uguale ad una costante fissata λ > 0. Allora uno schema<br />

79


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Schema (α, β, γ) q Convergenza<br />

Upw<strong>in</strong>d con a < 0 (−λa, (1 + λa), 0) −λa −1 ≤ λa ≤ 0<br />

Upw<strong>in</strong>d con a > 0 (0, (1 − λa), λa) λa 0 ≤ λa ≤ 1<br />

Forward-Central (−λa/2, 1, λa/2) 0 Mai<br />

� �<br />

1 − λa 1 + λa<br />

Lax-Friedrichs<br />

, 0, 1 | λa |≤ 1<br />

2 2<br />

Tabella 2.2: Schema Coefficienti [30]<br />

a tre punti della forma (2.63) è consistente con l’equazione (2.34) se e solo se<br />

α + β + γ = 1 e γ − α = λa.<br />

Si osservi che stiamo <strong>in</strong> effetti imponendo una limitazione nel modo <strong>di</strong> con-<br />

vergere delle <strong>di</strong>scretizzazioni spaziali e temporali, richiedendo che λ sia una co-<br />

stante. Da questa proposizione si vede che la classe degli schemi l<strong>in</strong>eari a tre punti<br />

che sono consistenti con l’equazione (2.34) forma una famiglia ad un parametro.<br />

Ponendo:<br />

q = α + γ (2.65)<br />

possiamo riscrivere tutti questi schemi nella forma cosiddetta viscosa;<br />

vm,n+1 = vm,n − aλ<br />

2 (vm+1,n − vm−1,n) + q<br />

2 (vm+1,n − 2vm,n + vm−1,n). (2.66)<br />

Il parametro q è legato <strong>in</strong>fatti alla viscosità numerica dello schema, <strong>in</strong> quanto<br />

formalmente lo schema è consistente all’or<strong>di</strong>ne 2, con l’equazione viscosa;<br />

ut + aux = 1 q<br />

λh(<br />

2 λ2 − a2 )uxx. (2.67)<br />

In particolare, abbiamo la tabella dei coefficienti 2.2.<br />

Le con<strong>di</strong>zioni <strong>di</strong> stabilità trovate grazie alla (2.64) sono <strong>in</strong> questo caso anche<br />

necessarie. Osserviamo tuttavia che, tra gli schemi esam<strong>in</strong>ati, la viscosità mas-<br />

sima, <strong>in</strong> regime <strong>di</strong> stabilità, è quella dello schema <strong>di</strong> Lax-Friedrichs, mentre il<br />

forward-central, che come si potrebbe <strong>di</strong>mostrare non è mai stabile, ha viscosità<br />

negativa nell’equazione equivalente.<br />

80


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

La Con<strong>di</strong>zione <strong>di</strong> CFL<br />

Prima <strong>di</strong> passare a <strong>di</strong>scutere più <strong>in</strong> dettaglio la stabilità dei vari schemi, essenzial-<br />

mente grazie all’analisi <strong>di</strong> von Neumann, presentiamo una con<strong>di</strong>zione necessaria<br />

per la convergenza <strong>di</strong> facile verifica e che permette qu<strong>in</strong><strong>di</strong> una veloce analisi preli-<br />

m<strong>in</strong>are. Questa con<strong>di</strong>zione fu proposta nel 1928 da R. Courant, K.O. Friedrichs e<br />

H. Lewy nel loro lavoro fondamentale sui meto<strong>di</strong> alle <strong>di</strong>fferenze f<strong>in</strong>ite ed è cono-<br />

sciuta oggi come la con<strong>di</strong>zione <strong>di</strong> CFL. Essa esprime una con<strong>di</strong>zione necessaria<br />

<strong>di</strong> convergenza nei term<strong>in</strong>i del dom<strong>in</strong>io <strong>di</strong> <strong>di</strong>pendenza della soluzione. Pren<strong>di</strong>amo<br />

ad esempio la soluzione del problema dato dalle equazioni (2.34) e (2.35). Questa<br />

soluzione è completamente determ<strong>in</strong>ata <strong>in</strong> un punto (x, t) a partire dal valore del<br />

dato <strong>in</strong>iziale nel punto (x − at). La con<strong>di</strong>zione <strong>di</strong> CFL stabilisce che per uno<br />

schema convergente il dom<strong>in</strong>io <strong>di</strong> <strong>di</strong>pendenza dello schema numerico deve con-<br />

tenere il dom<strong>in</strong>io <strong>di</strong> <strong>di</strong>pendenza dell’equazione <strong>di</strong>fferenziale. Nel caso dell’equa-<br />

zione (2.34), eventualmente anche nel caso <strong>di</strong>somogeneo (2.38), questo si riduce<br />

alla caratteristica retrograda uscente dal punto (x, t), ossia la retta <strong>di</strong> equazione<br />

ξ = x − a(t − s).<br />

Teorema 2.2<br />

Se fissiamo il rapporto λ = k<br />

= costante per uno schema esplicito a tre punti<br />

h<br />

per l’equazione (2.34) della forma (2.63), allora una con<strong>di</strong>zione necessaria per<br />

la stabilità è la seguente, detta con<strong>di</strong>zione <strong>di</strong> CFL:<br />

| λa | ≤ 1 (2.68)<br />

In particolare è facile estendere questo risultato ai sistemi l<strong>in</strong>eari fortemente<br />

iperbolici del tipo (2.40) per cui vale qu<strong>in</strong><strong>di</strong> la seguente regola generale: non<br />

ci sono schemi espliciti <strong>in</strong>con<strong>di</strong>zionatamente stabili e consistenti alle <strong>di</strong>fferenze<br />

f<strong>in</strong>ite per sistemi fortemente iperbolici. La stabilità <strong>in</strong>con<strong>di</strong>zionata potrà <strong>in</strong>fatti<br />

essere solo recuperata al prezzo <strong>di</strong> una per<strong>di</strong>ta <strong>di</strong> accuratezza dello schema per la<br />

classe dei cosiddetti schemi impliciti.<br />

81


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Monotonia<br />

Un modo semplice per trovare stime della norma del massimo è quello <strong>di</strong> costruire<br />

degli schemi che verifich<strong>in</strong>o la proprietà del confronto monotono, ossia se due dati<br />

<strong>in</strong>iziali <strong>di</strong>scretizzati verificano vm,0 ≤ ˜vm,0 allora per ogni n > 0 vale:<br />

Def<strong>in</strong>izione 2.10<br />

vm,n ≤ ˜vm,n.<br />

Uno schema nella forma (2.60) è detto essere monotono se tutti i coefficienti<br />

cm,k ≥ 0.<br />

Si vede facilmente che lo schema è monotono se e solo se verifica la proprietà<br />

del confronto monotono. Abbiamo la seguente stima <strong>di</strong> limitatezza.<br />

Teorema 2.3<br />

Sia dato uno schema monotono della forma (2.60). Allora, posto<br />

e<br />

avremo che<br />

vm<strong>in</strong> � m<strong>in</strong>{vm,0}<br />

vmax � max{vm,0}<br />

vm<strong>in</strong> ≤ vm,n ≤ vmax<br />

(2.69)<br />

Dal Teorema <strong>di</strong> Lax-Richtmyer abbiamo imme<strong>di</strong>atamente la convergenza <strong>di</strong><br />

tutti gli schemi consistenti e monotoni (per una <strong>di</strong>mostrazione <strong>di</strong>retta si può pro-<br />

cedere anche stimando <strong>di</strong>rettamente l’errore numerico come nelle (2.54)-(2.56).<br />

È facile <strong>in</strong>oltre caratterizzare gli schemi monotoni tra tutti gli schemi consistenti<br />

a tre punti della forma (2.63). Per enunciare questa caratterizzazione utilizziamo<br />

però la forma viscosa (2.66).<br />

Def<strong>in</strong>izione 2.11<br />

Uno schema esplicito a tre punti consistente con l’equazione (2.34), nella forma<br />

viscosa (2.66), è monotono se e solo se<br />

λ | a | ≤ q ≤ 1 (2.70)<br />

82


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Per <strong>di</strong>mostrare tale risultato basta osservare che valgono le seguenti uguaglianze:<br />

α = 1<br />

(q − aλ)<br />

2<br />

β = 1 − q<br />

γ = 1<br />

(q + aλ)<br />

2<br />

Ve<strong>di</strong>amo dunque che la con<strong>di</strong>zione <strong>di</strong> CFL è ancora necessaria per la conver-<br />

genza. Inoltre gli schemi upw<strong>in</strong>d e Lax-Friedrichs sono monotoni. In particolare<br />

lo schema monotono con la più bassa viscosità numerica è lo schema upw<strong>in</strong>d,<br />

mentre Lax-Friedrichs è quello con la più alta. Osserviamo <strong>in</strong>f<strong>in</strong>e come la con<strong>di</strong>-<br />

zione (2.70) sia <strong>in</strong> effetti equivalente alla con<strong>di</strong>zione (2.64) che avevamo trovato<br />

per la norma L 2 .<br />

Sfortunatamente la classe degli schemi monotoni è troppo ristretta per contenere<br />

delle approssimazioni più accurate, per cui sarà necessario considerare la stabilità<br />

<strong>di</strong> tipo L 2 , che risulterà essere meno restrittiva.<br />

L’Analisi <strong>di</strong> Von Neumann<br />

Lo strumento più efficace per l’analisi delle equazioni l<strong>in</strong>eari alle derivate par-<br />

ziali è senz’altro l’uso estensivo della trasformata e delle serie <strong>di</strong> Fourier. Nel<br />

caso a coefficienti costanti questo permette <strong>di</strong> stabilire <strong>in</strong> modo <strong>di</strong>retto la buona<br />

<strong>di</strong>sposizione e le proprietà qualitative delle soluzioni <strong>di</strong> larghe classi <strong>di</strong> problemi<br />

<strong>di</strong>fferenziali. In particolar modo è possibile caratterizzare <strong>in</strong> modo completo se,<br />

<strong>in</strong> L 2 , i problemi <strong>di</strong> tipo iperbolico e parabolico siano ben posti, e nel caso scalare<br />

e per i sistemi.<br />

Se si considera una funzione v = {vm} def<strong>in</strong>ita su una griglia spaziale <strong>di</strong> passo<br />

h, la sua serie <strong>di</strong> Fourier è data da:<br />

per<br />

^v(ξ) = 1<br />

√ 2π<br />

∞�<br />

m=−∞<br />

83<br />

he −imhξ vm<br />

(2.71)


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

dà:<br />

ξ ∈<br />

�<br />

− π<br />

�<br />

�<br />

π<br />

, . Si ha allora che ^v −<br />

h h<br />

π<br />

� � �<br />

π<br />

= ^v e la formula <strong>di</strong> <strong>in</strong>versione<br />

h h<br />

vm = 1<br />

� π<br />

h<br />

√<br />

2π − π<br />

e<br />

h<br />

imhξ ^v(ξ)dξ. (2.72)<br />

� Si noti che, <strong>di</strong> solito, si parte con una funzione perio<strong>di</strong>ca sull’<strong>in</strong>tervallo<br />

− π<br />

�<br />

π<br />

, e si mostra che sotto opportune ipotesi vale la formula <strong>di</strong> rappresenta-<br />

h h<br />

zione (2.71) con i coefficienti dati da (2.72).<br />

Prima <strong>di</strong> addentrarci ulteriormente nell’analisi degli schemi numerici, vale la<br />

pena <strong>di</strong> dare un cenno alle proprietà della trasformata <strong>di</strong> Fourier che viene utiliz-<br />

zata per la risoluzione dei problemi <strong>di</strong>fferenziali. Sia ad esempio u una soluzione<br />

dell’equazione (2.34) e ^u la sua trasformata <strong>di</strong> Fourier nella variabile spaziale,<br />

ossia:<br />

^u(ω) = 1<br />

� ∞<br />

√ e<br />

2π −∞<br />

−iωx u(x)dx. (2.73)<br />

Allora ^u risolve l’equazione <strong>di</strong>fferenziale or<strong>di</strong>naria<br />

che ha come unica soluzione:<br />

^ut = −iaω^u<br />

^u(ω, t) = e −iatω ^u0(ω).<br />

La norma L 2 viene conservata nell’evoluzione dell’equazione e le proprietà <strong>di</strong><br />

regolarità della soluzione vengono trasformate <strong>in</strong> proprietà <strong>di</strong> decrescenza all’<strong>in</strong>-<br />

f<strong>in</strong>ito della ^u e viceversa. Questo spiega perchè le soluzioni irregolari presentano<br />

oscillazioni sulle frequenze più alte, che <strong>in</strong> questo caso si trovano ad avere grande<br />

ampiezza.<br />

Per illustrare il metodo <strong>di</strong> Von Neumann considereremo un caso particolare,<br />

lo schema forward-backward (2.43) per l’equazione (2.34):<br />

vm,n+1 − vm,n<br />

k<br />

che riscriviamo <strong>in</strong> forma compatta come:<br />

+ a vm,n − vm−1,n<br />

h<br />

vm,n+1 = (1 − aλ)vm,n + aλvm−1,n<br />

84<br />

= 0 (2.74)<br />

(2.75)


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

sempre ponendo λ � k<br />

h .<br />

Dalla (2.83) abbiamo:<br />

vm,n = 1<br />

√ 2π<br />

� π<br />

h<br />

− π<br />

h<br />

e imhξ ^v n (ξ)dξ.<br />

Sostituendo qu<strong>in</strong><strong>di</strong> nella (2.75) si ottiene la relazione<br />

vm,n+1 = 1<br />

√ 2π<br />

� π<br />

h<br />

− π<br />

h<br />

da cui si deduce la relazione per ricorrenza<br />

con<br />

e imhξ [(1 − aλ) + aλe −ihξ ]^v n (ξ)dξ (2.76)<br />

^v n+1 (ξ) = g(hξ)^v n (ξ) (2.77)<br />

g(hξ) � (1 − aλ) + aλe −ihξ .<br />

Questo mostra come l’avanzamento <strong>di</strong> un passo temporale dello schema pro-<br />

vochi un’amplificazione <strong>di</strong> un fattore g(hξ) della trasformata numerica, ottenendo<br />

così<br />

^v n (ξ) = g(hξ) n ^v 0 (ξ). (2.78)<br />

Daremo adesso la con<strong>di</strong>zione per la stabilità <strong>in</strong> L 2 per le approssimazioni nu-<br />

meriche dell’equazione (2.34), nonostante questa analisi sia valida più <strong>in</strong> gene-<br />

rale per problemi iperbolici e parabolici che siano ben posti <strong>in</strong> questa topologia.<br />

Seguendo quanto illustrato nell’esempio precedente possiamo affermare che per<br />

ogni schema alle <strong>di</strong>fferenze ad un passo e su 2l + 1 punti della forma (2.59),<br />

possiamo scrivere la relazione:<br />

con<br />

^v n+1 (ξ) = g(hξ)^v n (ξ) (2.79)<br />

g(hξ) �<br />

l�<br />

cle ilhξ .<br />

k=−l<br />

La funzione g è detta fattore <strong>di</strong> amplificazione e contiene tutte le <strong>in</strong>formazio-<br />

ni importanti sullo schema e, cosa più importante, risulta essere uno strumento<br />

abbastanza facile da analizzare.<br />

85


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Teorema 2.4<br />

Uno schema alle <strong>di</strong>fferenze ad un passo per l’equazione (2.34) è stabile se e solo<br />

se esiste una costante K e alcuni valori fissati k0 e h0 tali che<br />

| g(χ, h, k) |≤ 1 + Kk (2.80)<br />

per tutti i valori <strong>di</strong> χ, 0 < k ≤ k0, e 0 < h ≤ h0. Se <strong>in</strong>oltre g(χ, h, k) è<br />

<strong>in</strong><strong>di</strong>pendente da h e k allora basta porre K = 0 nella (2.80).<br />

Si osservi che si può <strong>di</strong>mostrare che la con<strong>di</strong>zione <strong>di</strong> Von Neumann è neces-<br />

saria per i sistemi a coefficienti costanti, se applicata agli autovalori della matrice<br />

<strong>di</strong> amplificazione, e cont<strong>in</strong>ua ad essere anche sufficiente per tutti gli schemi ad un<br />

passo per le equazioni scalari con una sola derivata nel tempo.<br />

Term<strong>in</strong>iamo <strong>in</strong>f<strong>in</strong>e osservando che l’analisi <strong>di</strong> Von Neumann può essere adat-<br />

tata opportunamente, anche se non <strong>di</strong>rettamente, allo stu<strong>di</strong>o delle equazioni a<br />

coefficienti variabili, me<strong>di</strong>ante il metodo del congelamento dei coefficienti. Per<br />

esempio per l’equazione a coefficienti variabili<br />

ut + a(x, t)ux = 0 (2.81)<br />

varrà ancora la con<strong>di</strong>zione <strong>di</strong> stabilità | a(xm, tn)λ | ≤ 1 per tutti i punti della<br />

griglia (xm, tn) nel dom<strong>in</strong>io computazionale.<br />

Or<strong>di</strong>ne <strong>di</strong> Accuratezza e Schema <strong>di</strong> Lax-Wendroff<br />

F<strong>in</strong>o a questo momento abbiamo considerato gli schemi solamente <strong>in</strong> base alla<br />

loro convergenza o meno, ossia <strong>in</strong> ultima analisi <strong>in</strong> base alla loro consistenza e<br />

stabilità. Tuttavia dal punto <strong>di</strong> vista numerico è altrettanto importante stabilire la<br />

velocità <strong>di</strong> convergenza degli schemi. Questo sarà fatto come conseguenza della<br />

nozione <strong>di</strong> accuratezza dello schema che def<strong>in</strong>iamo qui <strong>di</strong> seguito.<br />

Def<strong>in</strong>izione 2.12<br />

Uno schema consistente con l’equazione (2.34) si <strong>di</strong>ce accurato <strong>di</strong> or<strong>di</strong>ne q <strong>in</strong><br />

spazio e <strong>di</strong> or<strong>di</strong>ne p <strong>in</strong> tempo, <strong>in</strong> breve accurato <strong>di</strong> or<strong>di</strong>ne (q, p), se:<br />

| T(x, t) |= O(k p ) + O(h q ) se (h, k) → 0<br />

86


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

per ogni (x, t) nel dom<strong>in</strong>io <strong>di</strong> <strong>in</strong>teresse. Nel caso <strong>in</strong> cui k = K(h) <strong>di</strong>ciamo che lo<br />

schema è <strong>di</strong> or<strong>di</strong>ne r se:<br />

| T(x, t) |= O(h r ) se h → 0.<br />

In pratica l’accuratezza è una nozione più forte <strong>di</strong> consistenza, che corrisponde<br />

ad un errore <strong>di</strong> troncatura solamente dell’or<strong>di</strong>ne <strong>di</strong> o(1).<br />

Com<strong>in</strong>ciamo adesso a verificare l’or<strong>di</strong>ne <strong>di</strong> accuratezza <strong>di</strong> alcuni degli schemi<br />

conosciuti. Lo schema <strong>di</strong> Lax-Friedrichs dà uno sviluppo del tipo:<br />

1.<br />

T = 1<br />

2 kutt − 1<br />

2 k−1 h 2 uxx + 1<br />

6 ah2 uxxx + O(h 4 + k −1 h 4 + k 2 ).<br />

Fissando k = λh per una costante λ fissata, ve<strong>di</strong>amo che lo schema è <strong>di</strong> or<strong>di</strong>ne<br />

Analogamente abbiamo lo schema upw<strong>in</strong>d con a < 0 che dà:<br />

T = 1<br />

2 kutt + 1<br />

2 ahuxx + O(k 2 ) + O(h 2 ),<br />

corrispondente ad uno schema <strong>di</strong> or<strong>di</strong>ne (1, 1) o, fissando k = λh per una costante<br />

λ fissata, ancora uno schema <strong>di</strong> or<strong>di</strong>ne 1.<br />

Più <strong>in</strong> generale vale la seguente proprietà:<br />

Teorema 2.5<br />

Uno schema l<strong>in</strong>eare monotono nella forma (2.60) è al più del primo or<strong>di</strong>ne, a<br />

meno che non sia lo schema banale vm,n+1 = vm,n con λ | a |= 1.<br />

Si prenda la forma generale (2.66) <strong>di</strong> uno schema a tre punti consistente per<br />

l’equazione (2.34). Uno schema <strong>di</strong> questo tipo può essere <strong>di</strong> or<strong>di</strong>ne (2, 2), oppure<br />

per λ = k/h fissato, <strong>di</strong> or<strong>di</strong>ne 2, se e solo se vale la con<strong>di</strong>zione:<br />

q = (aλ) 2 . (2.82)<br />

Questo significa che esiste un solo schema l<strong>in</strong>eare a tre punti consistente che sia<br />

<strong>di</strong> or<strong>di</strong>ne 2. Questo schema, chiamato schema <strong>di</strong> Lax-Wendroff, è stato proposto<br />

per la prima volta nel 1960 e si scrive:<br />

vm,n+1 = vm,n− aλ<br />

2 (vm+1,n−vm−1,n)+ a2 λ 2<br />

2 (vm+1,n−2vm,n+vm−1,n). (2.83)<br />

87


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

La sua viscosità numerica è la più bassa possibile per lasciare l’equazione<br />

equivalente (2.67) ancora parabolica. Chiaramente, poichè la con<strong>di</strong>zione (2.70)<br />

non è verificata, lo schema non è monotono.<br />

Eseguiamo ora l’analisi <strong>di</strong> stabilità dello schema <strong>di</strong> Lax-Wendroff. Il suo fattore<br />

<strong>di</strong> amplificazione si calcola facilmente ed è dato da<br />

per cui<br />

g(χ) = 1 − aλ<br />

�<br />

e<br />

2<br />

iχ − e −iχ<br />

�<br />

+ a2λ2 �<br />

e<br />

2<br />

iχ − 2 + e −iχ<br />

�<br />

=<br />

= 1 − iaλ s<strong>in</strong>(χ) − 2a 2 λ 2 s<strong>in</strong> 2<br />

� �<br />

χ<br />

2<br />

| g | 2 = 1 − 4a 2 λ 2 (1 − a 2 λ 2 4 χ<br />

) s<strong>in</strong><br />

2<br />

Abbiamo qu<strong>in</strong><strong>di</strong> che g(χ) ≤ 1 se e soltanto se | aλ |≤ 1. Lo schema risulta qu<strong>in</strong><strong>di</strong><br />

L 2 -stabile. In generale vale anzi la seguente caratterizzazione degli schemi a tre<br />

punti consistenti con l’equazione (2.34).<br />

Def<strong>in</strong>izione 2.13<br />

Uno schema esplicito a tre punti consistente con l’equazione (2.34), nella forma<br />

viscosa (2.66), è L 2 -stabile se e solo se<br />

(λa) 2 ≤ q ≤ 1 (2.84)<br />

Ve<strong>di</strong>amo qu<strong>in</strong><strong>di</strong> che la stabilità L 2 è meno restrittiva della stabilità nella norma<br />

del massimo e permette qu<strong>in</strong><strong>di</strong> <strong>di</strong> trovare almeno uno schema del secondo or<strong>di</strong>ne<br />

stabile. Ve<strong>di</strong>amo come si comporta lo schema <strong>di</strong> Lax-Wendroff nei confronti per<br />

esempio dello schema upw<strong>in</strong>d. Si prenda l’equazione (2.34) con il dato <strong>in</strong>iziale<br />

uguale alla funzione caratteristica dell’<strong>in</strong>tervallo (0.2, 0.4). La figura (2.19) mo-<br />

stra il risultato per lo schema upw<strong>in</strong>d, mentre la figura (2.20) per lo schema <strong>di</strong><br />

Lax-Wendroff. Nello schema monotono si nota uno smussamento degli spigoli e<br />

una piccola riduzione dell’altezza, mentre lo schema <strong>di</strong> Lax-Wendroff mantiene<br />

l’altezza dei bor<strong>di</strong> molto meglio, producendo tuttavia delle piccole oscillazioni.<br />

Riducendo h si vede un sostanziale miglioramento, anche se le oscillazioni per-<br />

sistono. Questo è dovuto al fatto che la nostra analisi dell’errore è valida solo<br />

88


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

per soluzioni abbastanza regolari. Si veda <strong>in</strong>fatti come si comporta lo schema <strong>di</strong><br />

Lax-Wendroff con un dato molto più regolare (<strong>di</strong> fatto ∈ C ∞ ) nella figura (2.21).<br />

In pratica, l’<strong>in</strong>stabilità, essendo legata alla crescita delle frequenze elevate, appa-<br />

re prima per dati irregolari, come si vede nelle figure (2.20) e (2.21). Si osservi<br />

anche che <strong>in</strong> generale questa <strong>in</strong>stabilità è <strong>di</strong> fatto un fenomeno locale. Per esem-<br />

pio nella figura (2.2) si vede che l’<strong>in</strong>stabilità nasce essenzialmente nel punto <strong>di</strong><br />

<strong>di</strong>scont<strong>in</strong>uità della derivata e solo dopo si propaga a tutta la soluzione. Questo<br />

permette <strong>di</strong> <strong>di</strong>st<strong>in</strong>guere tra gli effetti <strong>di</strong> un errore <strong>di</strong> programmazione, che spesso<br />

sono globali, e l’<strong>in</strong>stabilità numerica dello schema.<br />

89


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Figura 2.19: Trasporto l<strong>in</strong>eare con il metodo upw<strong>in</strong>d [30]<br />

90


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Figura 2.20: Trasporto l<strong>in</strong>eare con il metodo <strong>di</strong> Lax-Wendroff [30]<br />

91


2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE Carlo Caligaris, Iacopo Salvarani<br />

Figura 2.21: Trasporto l<strong>in</strong>eare (dato regolare) con il metodo <strong>di</strong> Lax-Wendroff [30]<br />

92


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Accenniamo <strong>in</strong>f<strong>in</strong>e alla relazione che <strong>in</strong>tercorre tra uno schema <strong>di</strong> or<strong>di</strong>ne r e<br />

la sua accuratezza. Vale il seguente risultato, e <strong>in</strong> particolare se ne può <strong>di</strong>mostrare<br />

uno analogo nel caso parabolico e più generalmente per tutti i problemi <strong>di</strong> Cauchy<br />

ben posti <strong>in</strong> L 2 .<br />

Teorema 2.6<br />

Sia dato uno schema stabile per l’equazione (2.34) che sia accurato <strong>di</strong> or<strong>di</strong>ne<br />

r ≥ 1. Allora esiste un <strong>in</strong><strong>di</strong>ce <strong>in</strong>tero non negativo s ≥ r tale che se u0 ∈ H s ,<br />

per ogni fissato T > 0 esiste una costante CT tale che<br />

per ogni n tale che 0 ≤ kn ≤ T<br />

|| u n − v n ||2,h ≤ CTh r || u0 ||H s<br />

In generale per i meto<strong>di</strong> iperbolici si trova s = r + 1 e per quelli parabolici<br />

s = r + 2. [30]<br />

93


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

2.6 Il Modello<br />

2.6.1 La Scelta del Modello<br />

Dopo una attenta valutazione delle possibili equazioni che possono meglio rap-<br />

presentare il comportamento della tratta autostradale <strong>di</strong> nostra competenza si è<br />

scelto <strong>di</strong> usufruire, nell’implementazione del software, delle considerazioni mo-<br />

dellistiche suggerite da Markos Papageorgiou, <strong>in</strong>gegnere e ricercatore matematico<br />

greco che a lungo si è occupato <strong>di</strong> problemi <strong>di</strong> controllo del traffico e ha fornito<br />

un metodo per utilizzare equazioni che rappresentano un modello macroscopico<br />

<strong>di</strong> traffico veicolare.<br />

Come già illustrato il tratto <strong>di</strong> competenza appartiene ad una categoria ben<br />

def<strong>in</strong>ita: si tratta, <strong>in</strong>fatti, <strong>di</strong> una autostrada multicorsia con numerose rampe <strong>di</strong> <strong>in</strong>-<br />

gresso e uscita. Questo chiaramente comporta una ulteriore complicazione della<br />

trattazione ma permette <strong>di</strong> adattare adeguatamente un modello <strong>di</strong> tipo macrosco-<br />

pico quale quello suggerito da Papageorgiou. è pertanto possibile considerare il<br />

comportamento del flusso <strong>di</strong> traffico come quello <strong>di</strong> un fluido avente determ<strong>in</strong>ate<br />

grandezze che lo caratterizzano.<br />

Variabili <strong>di</strong> Stato del Modello<br />

Ripren<strong>di</strong>amo le def<strong>in</strong>izioni tipiche dei modelli macroscopici per il traffico:<br />

Def<strong>in</strong>izione 2.14<br />

Si def<strong>in</strong>isca la densità locale dei veicoli alla sezione x al tempo t<br />

ρ(x, t)<br />

come la grandezza che dà un’<strong>in</strong>formazione su quanti veicoli stanno impegnando<br />

la carreggiata. È misurata <strong>in</strong> veicoli per chilometro.<br />

Def<strong>in</strong>izione 2.15<br />

Si def<strong>in</strong>isca la velocità me<strong>di</strong>a dei veicoli alla sezione x al tempo t<br />

v(x, t)<br />

94


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

come la me<strong>di</strong>a delle velocità tenute dai veicoli nella sezione e al tempo <strong>in</strong><strong>di</strong>cato.<br />

È misurata <strong>in</strong> chilometri orari.<br />

Def<strong>in</strong>izione 2.16<br />

Si def<strong>in</strong>isca il flusso veicolare<br />

q(x, t)<br />

come la grandezza che dà un’<strong>in</strong>formazione su quanti veicoli attraversano una<br />

sezione <strong>di</strong> carreggiata <strong>in</strong> un <strong>in</strong>tervallo <strong>di</strong> tempo. È misurato <strong>in</strong> veicoli all’ora.<br />

Agendo <strong>in</strong> maniera ricorsiva su queste variabili <strong>di</strong> stato è possibile farle evolvere<br />

<strong>in</strong> maniera congruente al comportamento del traffico veicolare e da questo ottenere<br />

una previsione sull’effettivo andamento futuro del traffico autostradale.<br />

Le ulteriori variabili che verranno ad essere def<strong>in</strong>ite per necessità rappresentativa<br />

del modello verranno illustrate e def<strong>in</strong>ite <strong>in</strong> seguito quando saranno <strong>in</strong>trodotte nel<br />

modello.<br />

2.6.2 L’equazione fondamentale <strong>di</strong> Papageorgiou<br />

Come già è stato illustrato una delle proprietà fondamentali dei modelli macro-<br />

scopici è proprio la maniera <strong>in</strong> cui le variabili che lo descrivono <strong>in</strong>teragiscono e<br />

sono relazionate fra loro, e questo è tanto più vero nei modelli macroscopici ove le<br />

variabili tentano <strong>di</strong> rappresentare non i s<strong>in</strong>goli elementi ma l’<strong>in</strong>sieme degli stessi.<br />

Sicuramente è sempre valida la relazione<br />

q(x, t) = ρ(x, t) · v(x, t)<br />

ma non possiamo essere altrettanto sicuri della bontà della curva caratteristica ve-<br />

locità-densità che era stata def<strong>in</strong>ita partendo da ipotesi <strong>di</strong> omogeneità e con<strong>di</strong>zione<br />

stazionaria che sicuramente non sono proprie del tratto stradale <strong>in</strong> questione.<br />

Abbiamo utilizzato una delle relazioni tra velocità e densità illustrate <strong>in</strong> Tabel-<br />

la 2.1, cioè quella proposta dallo stesso Papageorgiou, che chiameremo <strong>di</strong>agram-<br />

ma fondamentale o relazione fondamentale:<br />

�<br />

1 − � ρ<br />

vρ = vf<br />

95<br />

ρmax<br />

�m �l (2.85)


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

dove l e m sono parametri determ<strong>in</strong>abili <strong>in</strong> via sperimentale dall’osservazione <strong>di</strong><br />

casi reali. In altre parole è possibile raccogliere una grande quantità <strong>di</strong> dati sulle<br />

coppie (ρ, v) per ogni s<strong>in</strong>gola sezione <strong>in</strong> cui è <strong>di</strong>visa l’autostrada. Tutti i dati pun-<br />

tuali raccolti vengono posti su un piano cartesiano (ρ, v). A tal punto mantenendo<br />

la formulazione <strong>di</strong> Papageorgiou si può cercare la curva che meglio segue il com-<br />

portamento della <strong>di</strong>stribuzione dei punti semplicemente mo<strong>di</strong>ficando i valori degli<br />

esponenti l e m.<br />

Applicando un qualsiasi algoritmo (ad esempio nel nostro caso abbiamo utilizzato<br />

un semplice metodo <strong>di</strong> programmazione l<strong>in</strong>eare volto alla m<strong>in</strong>imizzazione della<br />

somma dei quadrati delle <strong>di</strong>stanze fra punti reali e punti della curva caratteristica)<br />

è possibile cercare la curva caratterizzata dalla migliore approssimazione e fissare<br />

i valori dei due esponenti.<br />

I pr<strong>in</strong>cipali vantaggi della relazione fondamentale sono due. Innanzitutto è ca-<br />

ratterizzata da una grande capacità descrittiva del comportamento dell’autostrada;<br />

<strong>in</strong>fatti possiamo def<strong>in</strong>ire una coppia <strong>di</strong> esponenti (l, m) per ogni s<strong>in</strong>gola sezione<br />

<strong>in</strong> cui abbiamo sud<strong>di</strong>viso il percorso globale. Questo è molto importante poichè<br />

ćhiaro che la relazione fra densità e velocità è <strong>in</strong>fluenzata soprattutto dalle carat-<br />

teristiche della sezione stradale, che possono variare anche <strong>di</strong> parecchio anche su<br />

uno stesso tronco autostradale.<br />

In secondo luogo lo stesso Papageorgiou suggerisce i range entro i quali ricercare<br />

i valori degli esponenti l e m, per cui la ricerca stessa dei valori ha una comples-<br />

sità computazionale relativamente bassa (lo stesso problema <strong>di</strong> m<strong>in</strong>imizzazione<br />

dei quadrati ne risulta molto semplificato). Si consiglia <strong>di</strong> tenere:<br />

e<br />

0, 5 ≤ m ≤ 2, 5<br />

2 ≤ l ≤ 4.<br />

Da ciò derivano le nuove curve caratteristiche velocità-densità e flusso-densità,<br />

una <strong>di</strong>versa per ogni s<strong>in</strong>gola sezione autostradale.<br />

96


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Figura 2.22: Curva Caratteristica velocità-densità<br />

Figura 2.23: Curva Caratteristica flusso-densità<br />

2.6.3 L’Equazione del Modello<br />

Consideriamo nuovamente il caso <strong>in</strong> stu<strong>di</strong>o; si tratta come già detto <strong>di</strong> una lunga<br />

autostrada multicorsia con numerose stazioni <strong>di</strong> <strong>in</strong>gresso e <strong>di</strong> uscita. L’obiettivo è<br />

sviluppare un modello matematico del flusso <strong>di</strong> traffico che descriva l’evoluzione<br />

97


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

<strong>di</strong>namica delle variabili, che abbiamo def<strong>in</strong>ito per descrivere il comportamento<br />

del traffico, lungo l’autostrada.<br />

Come illustrato <strong>in</strong> precedenza osserviamo il flusso veicolare come un un fluido<br />

avente un certo valore <strong>di</strong> densità e flusso. Da ciò possiamo desumere l’equazione<br />

<strong>di</strong> conservazione della materia che già prima abbiamo trattato. La <strong>di</strong>fferenza è che<br />

però <strong>in</strong> questo caso l’equazione:<br />

∂ρ(x, t)<br />

∂t<br />

+ ∂q(x, t)<br />

∂x<br />

non è sufficiente e descrivere il comportamento del modello.<br />

= 0 (2.86)<br />

In effetti, mantenendo il paragone fra comportamento del traffico e comporta-<br />

mento del fluido, appare chiaro che nel nostro caso il canale <strong>di</strong> trasporto del fluido<br />

non è assolutamente un canale chiuso, proprio a causa dei caselli <strong>di</strong> entrata e usci-<br />

ta da cui i veicoli possono liberamente entrare e uscire. Ciò fa sì che l’equazione<br />

che avevamo trattano analiticamente non sia più valida e impone la correzione del<br />

modello.<br />

Def<strong>in</strong>izione 2.17<br />

Def<strong>in</strong>iamo il flusso <strong>di</strong> veicoli entrante alla sezione x e al tempo t<br />

r(x, t)<br />

come la grandezza che dà un’<strong>in</strong>formazione su quanti veicoli entr<strong>in</strong>o nell’unità <strong>di</strong><br />

tempo alla sezione e al tempo <strong>in</strong><strong>di</strong>cati. Si misura <strong>in</strong> veicoli per ora.<br />

Def<strong>in</strong>izione 2.18<br />

Def<strong>in</strong>iamo il flusso <strong>di</strong> veicoli uscente dalla sezione x e al tempo t<br />

s(x, t)<br />

come la grandezza che dà un’<strong>in</strong>formazione su quanti veicoli escano nell’unità <strong>di</strong><br />

tempo alla sezione e al tempo <strong>in</strong><strong>di</strong>cati. Si misura <strong>in</strong> veicoli per ora.<br />

Introdotti questi fondamentali elementi possiamo riscrivere l’equazione che regola<br />

il modello.<br />

∂ρ<br />

∂t<br />

+ ∂q<br />

∂x<br />

98<br />

= r − s (2.87)


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Chiaramente il significato dell’equazione è identico, semplicemente viene anche<br />

considerata la possibilità che alcuni veicoli entr<strong>in</strong>o o escano dall’autostrada.<br />

Trattandosi <strong>di</strong> un’equazione <strong>di</strong>fferenziale alle derivate parziali simile a quella vi-<br />

sta nella trattazione analitica del problema del traffico, la sua risoluzione comporta<br />

le medesime <strong>di</strong>fficoltà che erano state riscontrate <strong>in</strong> precedenza; <strong>in</strong>oltre troviamo<br />

due complicazioni <strong>in</strong> più che <strong>in</strong>troducono ulteriore complessità alla risoluzione:<br />

i due term<strong>in</strong>i relativi agli <strong>in</strong>gressi e alle uscite dei veicoli e il fatto che la fun-<br />

zione v(ρ) non segue più la legge l<strong>in</strong>eare (2.7) ma la relazione fondamentale <strong>di</strong><br />

Papageorgiou (2.85). Per farla breve sarebbe impensabile cercare <strong>di</strong> ottenere una<br />

risoluzione analitica del problema.<br />

Pertanto per poter avere una soluzione dell’equazione conviene passare attraverso<br />

una soluzione numerica del problema sfruttando i meto<strong>di</strong> <strong>di</strong> risoluzione alle <strong>di</strong>f-<br />

ferenze f<strong>in</strong>ite.<br />

Come è stato illustrato <strong>in</strong> precedenza l’idea <strong>di</strong> base dei meto<strong>di</strong> alle <strong>di</strong>fferenze f<strong>in</strong>ite<br />

è quella <strong>di</strong> sostituire, nell’equazione da approssimare, ad ogni derivata un rapporto<br />

<strong>in</strong>crementale f<strong>in</strong>ito. Se ad esempio ci troviamo a trattare un fenomeno che avviene<br />

nel tempo e <strong>in</strong> una sola <strong>di</strong>mensione spaziale (ed è proprio questo il nostro caso),<br />

ciò si ottiene def<strong>in</strong>endo una griglia <strong>di</strong> punti nel piano cartesiano (x, t). Fissati un<br />

passo <strong>di</strong> <strong>di</strong>scretizzazione spaziale ∆x = h ed un passo <strong>di</strong> <strong>di</strong>scretizzazione tempo-<br />

rale ∆t = k, la griglia sarà data dai punti nodali del piano (xm, tn) = (mh, nk),<br />

per valori <strong>in</strong>teri arbitrari m e n. Soluzioni <strong>di</strong> questo genere sono molto facilmente<br />

implementabili e programmabili su calcolatore.<br />

Si pone però a questo punto un problema dovuto pr<strong>in</strong>cipalmente alla natura fisi-<br />

ca del problema. Scegliere un passo <strong>di</strong> <strong>di</strong>scretizzazione ∆t per il tempo è cosa<br />

concettualmente abbastanza semplice: se ci si <strong>di</strong>mentica per un attimo <strong>di</strong> tutti i<br />

problemi relativi alla convergenza e alla stabilità delle soluzioni alle <strong>di</strong>fferenze<br />

f<strong>in</strong>ite, basta scegliere una porzione <strong>di</strong> tempo non troppo piccola, dal momento<br />

che appesantirebbe eccessivamente l’elaborazione, e non troppo grande, poiché<br />

il problema potrebbe perdere capacità descrittiva. Molto più complicato sarebbe<br />

scegliere un passo <strong>di</strong> <strong>di</strong>scretizzazione spaziale da applicare alla lunghezza del-<br />

l’autostrada. Per scegliere un ∆x sensato bisognerebbe tenere conto <strong>di</strong> numerosi<br />

99


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

fattori: la lunghezza dei veicoli, la lunghezza dell’<strong>in</strong>tera autostrada, la lunghezza<br />

delle varie tratte fra una stazione <strong>di</strong> entrata/uscita e quella successiva.<br />

Papageorgiou è riuscito a rispondere a questo problema adattando i meto<strong>di</strong> <strong>di</strong> ri-<br />

soluzione alle <strong>di</strong>fferenze f<strong>in</strong>ite al problema; ciò che ha fatto è stato imporre una<br />

<strong>di</strong>scretizzazione a passo costante sulla <strong>di</strong>mensione temporale (ovvero le variabili<br />

<strong>di</strong> stato vengono calcolate solo per gli istanti nk). Qu<strong>in</strong><strong>di</strong> ha sud<strong>di</strong>viso il percorso<br />

autostradale <strong>in</strong> numerose tratte, ognuna delle quali avesse al massimo una s<strong>in</strong>go-<br />

la stazione <strong>di</strong> entrata e una s<strong>in</strong>gola stazione <strong>di</strong> uscita; <strong>in</strong>f<strong>in</strong>e lungo la <strong>di</strong>mensione<br />

spaziale ha applicato una <strong>di</strong>scretizzazione a passo variabile, <strong>in</strong> cui la lunghezza<br />

del passo è uguale alla lunghezza delle s<strong>in</strong>gole tratte (ovvero le variabili <strong>di</strong> stato<br />

sono calcolate <strong>in</strong> modo da dare un valore per ognuna delle tratte).<br />

Quello che avviene <strong>in</strong> pratica è che ad ogni ricorsione del metodo numerico il mo-<br />

dello avanza <strong>di</strong> un istante temporale e, per ogni s<strong>in</strong>gola tratta, vengono calcolati<br />

i valori delle variabili <strong>di</strong> stato. Per effettuare questo calcolo vengono utilizzati i<br />

valori delle variabili all’istante precedente riferiti a quella medesima tratta e alle<br />

due tratte a<strong>di</strong>acenti (la precedente e la successiva).<br />

2.6.4 Le Equazioni <strong>di</strong> Papageorgiou<br />

L’equazione della densità<br />

L’equazione alle derivate parziali della densità <strong>di</strong>venta l’equazione <strong>di</strong>scretizzata:<br />

ρi(k + 1) = ρi(k) + T<br />

∆i<br />

� qi−1(k) − qi(k) + ri(k) − si(k) �<br />

(2.88)<br />

dove l’<strong>in</strong><strong>di</strong>ce i è quello relativo alle tratte, mentre l’<strong>in</strong><strong>di</strong>ce k è quello relativo agli<br />

istanti temporali. T è il passo <strong>di</strong> <strong>di</strong>scretizzazione temporale; pertanto ρi(k+1) è il<br />

valore della densità sulla tratta i-esima al passo <strong>di</strong> <strong>di</strong>scretizzazione (k + 1)-esimo,<br />

ovvero al tempo T · (k + 1). ∆i è <strong>in</strong>vece la lunghezza della i-esima tratta.<br />

qi(k) è il flusso veicolare <strong>in</strong> uscita dalla tratta i-esima al passo <strong>di</strong> <strong>di</strong>scretizzazione<br />

(k)-esimo; analogamente qi−1(k) è il flusso veicolare <strong>in</strong> uscita al medesimo passo<br />

<strong>di</strong> <strong>di</strong>scretizzazione ma relativo alla tratta (i − 1)-esima, che è quella imme<strong>di</strong>ata-<br />

mente prima; pertanto trattasi del flusso <strong>in</strong> entrata per la tratta i-esima.<br />

100


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

ri(k) è il flusso veicolare entrante proveniente dalla stazione <strong>di</strong> <strong>in</strong>gresso nella trat-<br />

ta i-esima al passo <strong>di</strong> <strong>di</strong>scretizzazione (k)-esimo; si(k) è il flusso veicolare uscen-<br />

te attraverso la stazione <strong>di</strong> uscita nella tratta i-esima al passo <strong>di</strong> <strong>di</strong>scretizzazione<br />

(k)-esimo.<br />

Figura 2.24: Flussi veicolari relativi alla tratta i-esima<br />

Significato dell’equazione della densità<br />

L’equazione della densità ha un significato fisico molto chiaro: il term<strong>in</strong>e<br />

� qi−1(k) − qi(k) + ri(k) − si(k) �<br />

costituisce la somma algebrica dei flussi che <strong>in</strong>teragiscono con la tratta i-esima<br />

immettendo <strong>in</strong> essa veicoli e permettendo l’uscita degli stessi. Tale term<strong>in</strong>e per-<br />

tanto dà come risultante il <strong>di</strong>fferenziale nel tempo del numero dei veicoli (potrem-<br />

mo def<strong>in</strong>irlo un flusso <strong>in</strong>crementale).<br />

Moltiplicato tale valore per il periodo <strong>di</strong> <strong>di</strong>scretizzazione del tempo<br />

T � qi−1(k) − qi(k) + ri(k) − si(k) �<br />

otteniamo il <strong>di</strong>fferenziale effettivo <strong>di</strong> veicoli che si è verificato nel passo temporale<br />

per quella tratta; volendolo vedere espresso dall’analisi <strong>di</strong>mensionale<br />

� �<br />

numero veicoli<br />

[tempo] ·<br />

= [numero veicoli]<br />

tempo<br />

101


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

Dividendo poi il numero <strong>in</strong>crementale <strong>di</strong> veicoli per la lunghezza della tratta<br />

T<br />

∆i<br />

� qi−1(k) − qi(k) + ri(k) − si(k) �<br />

si ottiene il <strong>di</strong>fferenziale <strong>di</strong> densità per quella tratta<br />

� �<br />

numero veicoli<br />

= [densitá]<br />

lunghezza<br />

il quale va sommato al valore della densità al passo <strong>di</strong> <strong>di</strong>scretizzazione temporale<br />

precedente per ottenere il nuovo valore <strong>di</strong> densità.<br />

ρi(k) + T<br />

∆i<br />

Convergenza della densità<br />

� qi−1(k) − qi(k) + ri(k) − si(k) �<br />

[densitá] + [densitá] = [densitá]<br />

Come appena mostrato l’equazione <strong>di</strong>scretizzata della densità proposta da Papa-<br />

georgiou sembra portare a riprodurre esattamente il comportamento dell’anda-<br />

mento <strong>di</strong> ρ(x, t). Non dobbiamo però <strong>di</strong>menticare che questa affermazione è vera<br />

solo se la <strong>di</strong>scretizzazione è tale da assicurare la convergenza.<br />

Ora però appare chiaro che tutta la trattazione <strong>in</strong>trodotta nella sezione teorica<br />

è valida per i meto<strong>di</strong> alle <strong>di</strong>fferenze f<strong>in</strong>ite <strong>di</strong> risoluzione <strong>di</strong> equazioni alle deri-<br />

vate parziali veri e propri. In realtà l’equazione <strong>di</strong>scretizzata <strong>di</strong> Papageorgiou è<br />

un adattamento dell’idea che regola i meto<strong>di</strong> alle <strong>di</strong>fferenze f<strong>in</strong>ite al pr<strong>in</strong>cipio <strong>di</strong><br />

conservazione della materia che porta ad un modello macroscopico del comporta-<br />

mento del traffico. Inoltre come già detto la <strong>di</strong>scretizzazione stessa della variabile<br />

spaziale non segue la trattazione dei meto<strong>di</strong> alle <strong>di</strong>fferenze f<strong>in</strong>ite ma si piega alla<br />

necessità della rappresentazione delle tratte autostradali.<br />

Detto questo proveremo ugualmente ad effettuare alcune considerazioni sulla con-<br />

vergenza delle equazioni <strong>di</strong> Papageorgiou, ma sottol<strong>in</strong>eando che tale trattazione<br />

non ha alcuna pretesa <strong>di</strong> rigore matematico. Semplicemente è nostro desiderio<br />

mostrare che il metodo del matematico greco, che ha offerto <strong>in</strong> già numerosissime<br />

applicazioni ottimi risultati, poggia le sue fondamenta sulla teoria matematica.<br />

102


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Proviamo pertanto a controllare se è verificata la con<strong>di</strong>zione <strong>di</strong> CFL (2.68),<br />

che è con<strong>di</strong>zione necessaria per la stabilità e la convergenza:<br />

applichiamola all’equazione<br />

| aλ | ≤ 1;<br />

ρt + vf(1 − 2 ρ<br />

ρmax<br />

) ρx = 0.<br />

Già ci troviamo davanti ad alcuni problemi: la con<strong>di</strong>zione <strong>di</strong> CFL si riferisce a<br />

equazioni <strong>in</strong> cui il term<strong>in</strong>e a sia <strong>in</strong><strong>di</strong>pendente dalla funzione <strong>in</strong>cognita, e qu<strong>in</strong><strong>di</strong><br />

soltanto a(x, t); nel nostro caso <strong>in</strong>vece a <strong>di</strong>pende anche da ρ. Inoltre alcuni dei<br />

term<strong>in</strong>i costanti che determ<strong>in</strong>ano il valore <strong>di</strong> a nel nostro caso non sono costanti<br />

ma variano da tratta a tratta. Inf<strong>in</strong>e λ, ovvero il rapporto fra i passi <strong>di</strong> <strong>di</strong>scretiz-<br />

zazione, dovrebbe essere costante, ma come ben sappiamo il passo <strong>di</strong> <strong>di</strong>scretizza-<br />

zione sulla coor<strong>di</strong>nata spaziale è variabile e corrisponde alle lunghezze delle tratta<br />

autostradali.<br />

Proviamo pertanto a porci nella con<strong>di</strong>zione peggiore possibile, ovvero lasciamo<br />

che | aλ | resti <strong>in</strong> funzione <strong>di</strong> ρ e assumiamo che i vari elementi (che dovrebbero<br />

essere costanti ma nel nostro caso sono variabili) che concorrono a determ<strong>in</strong>are il<br />

suo valore siano sfavorevoli e qu<strong>in</strong><strong>di</strong> tali da massimizzare | aλ |.<br />

Qu<strong>in</strong><strong>di</strong> poniamo:<br />

· vf = 130 km/h;<br />

· ρmax=150 auto/km;<br />

· ∆t = 0.0167 h;<br />

· ∆x = 2.4 km.<br />

ed otteniamo il grafico <strong>di</strong> Figura 2.25.<br />

103


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

Figura 2.25: | aλ | <strong>in</strong> funzione della densità<br />

Possiamo notare che la con<strong>di</strong>zione <strong>di</strong> CFL è verificata f<strong>in</strong>o a valori <strong>di</strong> densità<br />

<strong>di</strong> circa 160 veicoli per km. Questo è già abbastanza positivo; <strong>in</strong>fatti i valori mas-<br />

simi <strong>di</strong> densità si aggirano <strong>di</strong> solito <strong>in</strong>torno a 180 veicoli per km, questo significa<br />

che la stabilità e la convergenza sono plausibili per quasi la totalità delle situa-<br />

zioni <strong>di</strong> traffico, senza contare che ci si era posti volutamente <strong>in</strong> una con<strong>di</strong>zione<br />

fortemente negativa che non si realizza mai.<br />

Proviamo adesso a porre delle con<strong>di</strong>zioni comunque sfavorevoli alla verifica della<br />

con<strong>di</strong>zione <strong>di</strong> CFL, ma il cui acca<strong>di</strong>mento è possibile; per la precisione ricerchia-<br />

mo la con<strong>di</strong>zione che si può realizzare col valore | aλ | maggiore.<br />

Qu<strong>in</strong><strong>di</strong> poniamo:<br />

· vf = 130 km/h;<br />

· ρmax=180 auto/km;<br />

· ∆t = 0.0167 h;<br />

· ∆x = 2.6 km.<br />

104


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

ed otteniamo il grafico <strong>di</strong> Figura 2.26<br />

Figura 2.26: | aλ | <strong>in</strong> funzione della densità<br />

E osserviamo che la con<strong>di</strong>zione <strong>di</strong> CFL decade per valori <strong>di</strong> densità <strong>di</strong> circa<br />

200 veicoli per km. Come detto pocanzi i valori massimi <strong>di</strong> densità che si riscon-<br />

trano raramente superano i 180 veicoli per km, pertanto si può <strong>di</strong>re che anche nella<br />

situazione più sfavorevole la con<strong>di</strong>zione <strong>di</strong> CFL è verificata per qualsiasi con<strong>di</strong>-<br />

zione del traffico veicolare.<br />

Teniamo a sottol<strong>in</strong>eare per l’ultima volta che questo non equivale a sostenere la<br />

convergenza <strong>di</strong> un metodo alle <strong>di</strong>fferenze f<strong>in</strong>ite, ma certamente si può <strong>di</strong>re che non<br />

solo i risultati sperimentali, ma anche la teoria matematica confermano la bontà<br />

del modello <strong>di</strong> Papageorgiou.<br />

L’equazione della velocità<br />

Una volta che per il passo <strong>di</strong> <strong>di</strong>scretizzazione k-esimo è nota la <strong>di</strong>stribuzione <strong>di</strong> ρ<br />

su tutte le tratte i per conoscere la <strong>di</strong>stribuzione delle velocità allo stesso istante<br />

si potrebbe semplicemente utilizzare la relazione fondamentale v = V(ρ). L’e-<br />

105


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

sperienza conv<strong>in</strong>se però Papageorgiou a non operare semplicemente <strong>in</strong> questa ma-<br />

niera. Infatti la relazione fondamentale non tiene conto del tempo che impiega il<br />

traffico ad adeguare la propria velocità me<strong>di</strong>a alla nuova situazione <strong>di</strong> densità. Si<br />

potrebbe <strong>di</strong>re che il traffico agisce con un certo ritardo, e, pertanto, è opportuno<br />

ipotizzare:<br />

ove τ è appunto il ritardo <strong>di</strong> risposta.<br />

ne:<br />

v(x, t + τ) = V � ρ(x, t) �<br />

(2.89)<br />

Evidentemente passando alla <strong>di</strong>scretizzazione dell’equazione vale la relazio-<br />

e perciò<br />

dv(x, t)<br />

v(x, t + τ) = v(x, t) + τ<br />

dt<br />

(2.90)<br />

˙v = 1�<br />

� 1�<br />

�<br />

v(x, t + τ) − v(x, t) = V(ρ(x, t)) − v(x, t) . (2.91)<br />

τ<br />

τ<br />

La relazione (2.91) è alla base dell’equazione della velocità che Papageorgiou<br />

<strong>in</strong>serisce nel suo modello. Alla base poichè oltre a tale term<strong>in</strong>e <strong>di</strong>fferenziale, <strong>in</strong><br />

seguito a prove sperimentali, sono aggiunti altri due term<strong>in</strong>i correttivi che cercano<br />

<strong>di</strong> rappresentare l’<strong>in</strong>terazione con il comportamento delle due tratte a<strong>di</strong>acenti.<br />

vi(k + 1) = vi(k)+ T<br />

�<br />

� �<br />

�<br />

V(ρi(k))−vi(k)<br />

vi−1(k)−vi(k) + (2.92)<br />

τ<br />

�<br />

νT<br />

−<br />

Significato dell’equazione della velocità<br />

+ T<br />

vi(k)<br />

∆i<br />

�<br />

ρi+1(k) − ρi(k)<br />

� � .<br />

τ∆i ρi(k) + χ<br />

L’equazione delle velocità merita particolare attenzione. Sulla tratta generica i-<br />

esima la velocità al passo temporale (k + 1)-esimo è calcolato come la velocità<br />

sulla medesima tratta al passo temporale precedente variata da tre fattori <strong>in</strong>cre-<br />

mentali. Il primo dei tre term<strong>in</strong>i come si è visto proviene dall’equazione <strong>di</strong>scretiz-<br />

zata della velocità nel cont<strong>in</strong>uo; gli altri due term<strong>in</strong>i sono stati ritenuti significativi<br />

da Papageorgiou a seguito delle prove sperimentali che ha effettuato.<br />

106


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

Il primo term<strong>in</strong>e<br />

�<br />

�<br />

T<br />

V(ρi(k)) − vi(k)<br />

τ<br />

dà un’<strong>in</strong><strong>di</strong>cazione su quanto può variare la velocità dal suo valore al passo tempo-<br />

rale precedente k-esimo rispetto ad valore massimo teorico stabilito dall’equazio-<br />

ne fondamentale <strong>di</strong> Papageorgiou.<br />

Se al passo temporale k-esimo la velocità sulla tratta i-esima valeva<br />

e la densità dei veicoli valeva<br />

vi(k)<br />

ρi(k)<br />

e per V(ρ) si <strong>in</strong><strong>di</strong>ca la relazione fondamentale <strong>di</strong> Papageorgiou, allora la velocità<br />

potrà variare all’istante (k + 1)-esimo <strong>di</strong> un valore <strong>in</strong>crementale dato proprio da<br />

�<br />

�<br />

V(ρi(k)) − vi(k) .<br />

La rapi<strong>di</strong>tà con cui la velocità accetta tale variazione <strong>di</strong>pende dal coefficiente τ<br />

�<br />

�<br />

1<br />

V(ρi(k)) − vi(k)<br />

τ<br />

che rappresenta il ritardo che il traffico impiega per adeguarsi, data una den-<br />

sità veicolare, al valore <strong>di</strong> velocità me<strong>di</strong>o dato dalla relazione fondamentale <strong>di</strong><br />

Papageorgiou per quella densità.<br />

Il secondo term<strong>in</strong>e<br />

T<br />

∆i<br />

�<br />

�<br />

vi(k) vi−1(k) − vi(k)<br />

dà un’<strong>in</strong><strong>di</strong>cazione su quanto può variare la velocità sulla tratta i-esima a causa<br />

del <strong>di</strong>verso valore <strong>di</strong> velocità che si verifica sulla tratta precedente. Si presuppone<br />

<strong>in</strong>fatti che i veicoli entranti <strong>in</strong> una tratta mantengano la velocità che avevavno<br />

sulla tratta precedente (ciò è valido chiaramente se la densità rimane costante, e<br />

<strong>in</strong>fatti ρ non compare nel secondo term<strong>in</strong>e). Con tale term<strong>in</strong>e si traspone tale<br />

comportamento nel modello.<br />

107


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

Se al passo temporale k-esimo le velocità sulle tratte (i − 1)-esima e i-esima<br />

sono rispettivamente:<br />

e<br />

vi−1(k)<br />

vi(k)<br />

allora �<br />

�<br />

vi−1(k) − vi(k)<br />

<strong>in</strong><strong>di</strong>ca <strong>di</strong> quanto può variare la velocità a causa dell’effetto descritto. La rapi<strong>di</strong>tà<br />

con cui la velocità accetta la variazione <strong>di</strong>pende da quanto celermente i veicoli con<br />

la velocità relativa al passo temporale precedente lasciano la tratta <strong>in</strong> questione, e<br />

qu<strong>in</strong><strong>di</strong><br />

T<br />

∆i<br />

�<br />

�<br />

vi(k) vi−1(k) − vi(k)<br />

<strong>di</strong>pende dalla lunghezza della tratta e dalla velocità precedente dei veicoli.<br />

L’ultimo term<strong>in</strong>e<br />

�<br />

�<br />

νT ρi+1(k) − ρi(k)<br />

− � �<br />

τ∆i ρi(k) + χ<br />

dà un’<strong>in</strong>formazione su come si evolve la velocità <strong>in</strong> relazione alla <strong>di</strong>versa densità<br />

sulla tratta successiva. Una densità <strong>di</strong> traffico sulla tratta successiva<br />

ρi+1(k)<br />

molto <strong>di</strong>versa, <strong>in</strong> term<strong>in</strong>i relativi, rispetto alla densità sulla tratta per cui si sta<br />

calcolando la velocità �<br />

�<br />

ρi+1(k) − ρi(k)<br />

[ρi(k)]<br />

provoca rapidamente un effetto all’<strong>in</strong><strong>di</strong>etro <strong>di</strong> variazione della velocità dovuto al<br />

fenomeno delle back waves già <strong>in</strong>contrato nella trattazione dei modelli microsco-<br />

pici. Infatti, come si era visto, <strong>in</strong> una fila <strong>di</strong> veicoli il comportamento della vettura<br />

<strong>di</strong> testa viene seguito, ritardato nel tempo e amplificato nell’ampiezza, dalle vet-<br />

ture che seguono.<br />

108


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

La rapi<strong>di</strong>tà con cui la velocità varia a causa <strong>di</strong> tale fenomeno <strong>di</strong>pende dalla lun-<br />

ghezza della tratta, dalla costante <strong>di</strong> ritardo del traffico τ, dalla costante ν che dà<br />

una misura della velocità <strong>di</strong> propagazione all’<strong>in</strong><strong>di</strong>etro dell’onda, e dalla costante<br />

χ che attenua la misura della <strong>di</strong>fferenza relativa fra i valori delle densità delle due<br />

tratte contigue<br />

L’equazione del flusso<br />

�<br />

�<br />

ν ρi+1(k) − ρi(k)<br />

− � � .<br />

τ∆i ρi(k) + χ<br />

L’equazione del flusso permette <strong>di</strong> calcolare il flusso veicolare; essendo noti per<br />

la tratta i-esima al passo temporale k-esimo il valore della densità dei veicoli<br />

ρi(k)<br />

ed il valore della velocità me<strong>di</strong>a dei veicoli<br />

vi(k)<br />

entrambi calcolati utilizzando le due precedenti equazioni, il flusso relativo alla<br />

medesima tratta sarà:<br />

2.6.5 Inizializzazione del modello<br />

qi(k) = vi(k) · ρi(k). (2.93)<br />

L’<strong>in</strong>izializzazione del modello è sicuramente una delle fasi fondamentali per il<br />

funzionamento della simulazione. Infatti da un <strong>di</strong>verso tipo <strong>di</strong> <strong>in</strong>izializzazione<br />

<strong>di</strong>pende fortemente il tipo <strong>di</strong> risposta che otterremo dal modello.<br />

Ipotizziamo <strong>in</strong>fatti <strong>di</strong> trascurare completamente l’<strong>in</strong>izializzazione delle varia-<br />

bili <strong>di</strong> stato <strong>di</strong> densità dei veicoli, velocità me<strong>di</strong>a e flusso veicolare. Questo signifi-<br />

ca che la simulazione parte con valori casuali, oppure nulli, oppure, per non ritro-<br />

varsi <strong>in</strong> una situazione <strong>in</strong>iziale troppo peculiare, con i valori relativi a con<strong>di</strong>zioni<br />

<strong>di</strong> traffico regolare.<br />

109


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

Ovviamente i valori imme<strong>di</strong>atamente successivi all’istante <strong>di</strong> partenza della<br />

simulazione daranno risultati non congruenti con la realtà. Però, lasciando conti-<br />

nuare la simulazione per un tempo (simulato, ovviamente) sufficientemente lungo,<br />

le variabili <strong>di</strong> <strong>in</strong>gresso e i parametri <strong>in</strong>erenti all’autostrada, se sono stati stimati<br />

con buona accuratezza, porteranno l’andamento della simulazione verso risultati<br />

coerenti col reale comportamento del traffico.<br />

Da questo si ev<strong>in</strong>ce che se il modello viene utilizzato per uno scopo prettamen-<br />

te simulativo, l’<strong>in</strong>izializzazione delle variabili <strong>di</strong> stato riveste un ruolo altamente<br />

marg<strong>in</strong>ale e ad<strong>di</strong>rittura è un passaggio che può essere sacrificato.<br />

Naturalmente è altrettanto vero l’opposto: se il modello viene utilizzato come stru-<br />

mento previsionale on-l<strong>in</strong>e e real-time, la corretta <strong>in</strong>izializzazione delle variabili<br />

<strong>di</strong> stato acquista un’importanza ad<strong>di</strong>rittura drastica. è evidente che se l’<strong>in</strong>tenzione<br />

è <strong>di</strong> avere una previsione per gli N passi <strong>di</strong> <strong>di</strong>scretizzazione temporale successivi,<br />

con N abbastanza piccolo, la bontà della stima <strong>di</strong>pende quasi esclusivamente dalla<br />

bontà dell’<strong>in</strong>izializzazione delle variabili <strong>di</strong> stato.<br />

Il problema <strong>in</strong> tal caso <strong>di</strong>venta, oltre che sistemistico, anche sensoristico; spesso<br />

<strong>in</strong>fatti è <strong>di</strong>fficile poter avere buone misurazioni <strong>in</strong> tempo reale della velocità, del<br />

flusso veicolare e soprattutto della densità delle vetture.<br />

In tal caso ad<strong>di</strong>rittura <strong>di</strong>venta necessario trovare un modo per stimare <strong>in</strong> maniera<br />

adeguata anche le variabili <strong>di</strong> <strong>in</strong>gresso del sistema. Infatti se l’<strong>in</strong>tento del modello<br />

è quello previsionale, l’<strong>in</strong>gresso del sistema sarà costituito dai flussi veicolari <strong>in</strong><br />

<strong>in</strong>gresso e <strong>in</strong> uscita dalle stazioni, relativi ai passi <strong>di</strong> <strong>di</strong>scretizzazione temporale<br />

successivi, che <strong>in</strong> quanto futuri sono ignoti. Per ottenere buoni risultati dalla si-<br />

mulazione previsionale occorre che l’<strong>in</strong>izializzazione delle variabili <strong>di</strong> <strong>in</strong>gresso<br />

all’<strong>in</strong>izio della simulazione sia il più precisa possibile, e che la stima dei valori<br />

futuri sia accurata e coerente con il successivo verificarsi nella realtà.<br />

2.6.6 Pregi e <strong>di</strong>fetti del modello<br />

I pr<strong>in</strong>cipali vantaggi del modello sono i seguenti:<br />

• Capacità <strong>di</strong> modellare sistemi assai vasti. Come si è visto i sistemi macro-<br />

scopici come quello <strong>di</strong> Papageorgiou sono i più <strong>in</strong><strong>di</strong>cati per affrontare situa-<br />

110


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

zioni complesse o molto vaste sia per lunghezza della strada, sia per numero<br />

<strong>di</strong> veicoli <strong>in</strong> gioco. In una situazione autostradale un modello microsco-<br />

pico si troverebbe nell’assoluta <strong>di</strong>fficoltà <strong>di</strong> gestire l’eccessivo numero <strong>di</strong><br />

variabili <strong>di</strong> cui necessita.<br />

• Bontà dei risultati una volta ben tarati i parametri. Applicazioni speri-<br />

mentali (molte <strong>di</strong> queste condotte dallo stesso padre del modello Papa-<br />

georgiou) <strong>di</strong>mostrano che, una volta che tutti i parametri che descrivono<br />

la tratta autostradale sono stimati <strong>in</strong> maniera da rendere perfettamente il<br />

comnportamento reale, i risultati delle simulazioni sono sorprendentemente<br />

vali<strong>di</strong>.<br />

• Maneggevolezza dal punto <strong>di</strong> vista <strong>in</strong>formatico. Come si può facilmente<br />

notare le equazioni <strong>di</strong> Papageorgiou sono molto semplici da implementare<br />

<strong>in</strong> maniera ricorsiva tramite un qualsiasi l<strong>in</strong>guaggio <strong>di</strong> programmazione.<br />

I dati <strong>in</strong> uscita dal modello sono altrettanto maneggevoli, <strong>in</strong> quanto sono<br />

<strong>in</strong> effetti facilmente rappresentabili <strong>in</strong> forma matriciale. Il che permette<br />

una grande semplicità <strong>di</strong> aggregazione secondo la necessità <strong>di</strong> chi vuole<br />

usufruire dei dati <strong>in</strong> uscita.<br />

• Adattabilità perfetta ai tipi <strong>di</strong> autostrada compatibili. Le equazioni <strong>di</strong> Pa-<br />

pageorgiou sono facilmente applicabili a qualsiasi tipo <strong>di</strong> autostrada che<br />

rappresenti un sistema chiuso (ovvero ove si possono avere <strong>in</strong>formazione<br />

su tutti gli elementi che entrano ed escono dal sistema). Per applicare le<br />

equazioni ad un nuovo tratto sarà sufficiente mo<strong>di</strong>ficare il sistema <strong>di</strong> ac-<br />

quisizione dei dati <strong>in</strong>iziali, delle variabili <strong>di</strong> <strong>in</strong>gresso e i parametri relativi<br />

alle tratte autostradali; le equazioni <strong>di</strong> Papageorgiou restano perfettamente<br />

immutate.<br />

I pricipali svantaggi del modello sono i seguenti:<br />

• Difficoltà <strong>di</strong> settaggio dei parametri fisici e <strong>di</strong> simulazione. Per poter settare<br />

tutti i paraetri relativi alle varie tratte occorre effettuare, come già illustrato,<br />

111


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

una serie <strong>di</strong> misurazioni <strong>di</strong> prova. Pertanto è necessario consultare un ar-<br />

chivio <strong>di</strong> dati storici oppure, se non si è <strong>in</strong> possesso <strong>di</strong> dati storici, sfruttare<br />

una sensoristica <strong>di</strong>stribuita capillarmente che permetta <strong>di</strong> effettuare le mi-<br />

surazioni che occorrono.<br />

Quando capita che manch<strong>in</strong>o entrambe le soluzioni occorre stimare i para-<br />

metri secondo il buon senso per poi aff<strong>in</strong>arli effettuando cont<strong>in</strong>ue simula-<br />

zioni e valutandone la bontà.<br />

• Necessità <strong>di</strong> dati per il settaggio <strong>in</strong>iziale e <strong>di</strong>fficile reperibilità dei suddet-<br />

ti. Come spiegato precedentemente, se il modello viene utilizzato <strong>in</strong> ottica<br />

previsionale, e non simulativa, il problema <strong>di</strong> una corretta <strong>in</strong>izializzazione<br />

<strong>di</strong>venta <strong>di</strong> fondamentale importanza. Purtroppo non sempre è facile effet-<br />

tuare rilevamenti e misurazioni del fenomeno reale per <strong>in</strong>izializzare le va-<br />

riabili <strong>di</strong> stato. Specialmente <strong>in</strong> ambito autostradale la sensoristica spesso<br />

<strong>di</strong>fetta <strong>in</strong> quantità e qualità e il rischio <strong>di</strong> <strong>in</strong>ficiare <strong>in</strong> maniera determ<strong>in</strong>ante<br />

la previsione con dati <strong>in</strong>iziali poco accurati <strong>di</strong>venta tangibile.<br />

• Impossibilità <strong>di</strong> prevedere nel futuro le variabili <strong>di</strong> <strong>in</strong>gresso. Un grosso<br />

limite del modello <strong>di</strong> Papageorgiou quando viene utilizzato <strong>in</strong> ottica previ-<br />

sionale è l’impossibilità <strong>di</strong> avere i valori esatti per le variabili <strong>di</strong> <strong>in</strong>gresso.<br />

Infatti, ad eccezione dell’istante 0 <strong>in</strong> cui parte la simulazione ed è possibile<br />

acquisire i dati tramite misurazione sensoristica, i valori futuri dei flussi <strong>in</strong><br />

<strong>in</strong>gresso e <strong>in</strong> uscita relativi alle stazioni non sono noti nè fissi. Chiaramente<br />

nell’arco della giornata i flussi veicolari ai caselli seguono un comportamen-<br />

to abbastanza standard, che può essere stimato <strong>in</strong> maniera anche abbastanza<br />

precisa, se si è <strong>in</strong> possesso dei dati storici relativi agli <strong>in</strong>gressi e alle uscite.<br />

Ad ogni modo la previsione <strong>di</strong> questi valori, per accurata che sia, raramente<br />

centrerà perfettamente il valore reale, e <strong>di</strong> sicuro non potrà prevedere situa-<br />

zioni occasionali (che sovente si manifestano).<br />

L’unico modo sensato <strong>di</strong> dare una soluzione accettabile a questo problema è<br />

quello <strong>di</strong> <strong>in</strong>tegrare le <strong>in</strong>formazioni sul comportamento standard delle varia-<br />

bili <strong>di</strong> <strong>in</strong>gresso con il dato reale misurato all’istante <strong>in</strong>iziale <strong>di</strong> simulazione<br />

112


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 2. STRUMENTI MATEMATICI<br />

e ottenere da questi due elementi la stima più corretta possibile dei valori<br />

futuri.<br />

• Necessità <strong>di</strong> compatibilità con la tipologia <strong>di</strong> autostrada. Nella trattazione<br />

[31]<br />

analitica del problema si era parlato <strong>di</strong> equazione <strong>di</strong> conservazione della<br />

materia, che è l’equazione che regola il sistema, mettendo <strong>in</strong> relazione i<br />

flussi e le densità. Tale equazione presuppone che la tratta autostradale <strong>in</strong><br />

esame sia un sistema chiuso, ovvero che si possa avere l’<strong>in</strong>formazione det-<br />

tagliata su tutti gli elementi che varcano il conf<strong>in</strong>e del sistema, entrandone o<br />

uscendone. Nelle strade extraurbane dove non sia possibile misurare i flussi<br />

<strong>di</strong> <strong>in</strong>gresso o uscita relativi alle stazioni, oppure ove il flusso entrante nella<br />

prima tratta o quello uscente dall’ultima non sono nè noti nè misurabili è im-<br />

possibile applicare il modello <strong>di</strong> Papageorgiou, <strong>in</strong> quanto alcuni dei term<strong>in</strong>i<br />

delle equazioni sono mancanti, e se i loro valori non sono trascurabili chia-<br />

ramente la previsione delle variabili <strong>di</strong> stato risulta ampiamente <strong>di</strong>storta. Per<br />

nostra fortuna le autostrade, essendo munite dei sistemi <strong>di</strong> pagamento del<br />

pedaggio agli <strong>in</strong>gressi e alle uscite, raramente sono caratterizzate da questo<br />

tipo <strong>di</strong> problemi.<br />

113


2.6. IL MODELLO Carlo Caligaris, Iacopo Salvarani<br />

114


Capitolo 3<br />

Strumenti Informatici Utilizzati<br />

Figura 3.1: Boston Traffic [57]<br />

115


3.1. JAVA Carlo Caligaris, Iacopo Salvarani<br />

3.1 Java<br />

3.1.1 Introduzione al L<strong>in</strong>guaggio <strong>di</strong> Programmazione Java<br />

Quasi tutto il software da noi prodotto è stato scritto <strong>in</strong> Java. Java è un l<strong>in</strong>guaggio<br />

<strong>di</strong> programmazione molto potente ed è <strong>di</strong>ventato lo standard <strong>di</strong> riferimento per<br />

l’implementazione <strong>di</strong> applicazioni basate su Internet e per lo sviluppo <strong>di</strong> software<br />

per <strong>di</strong>spositivi che comunicano attraverso una rete. Gran parte della nuova tec-<br />

nologia si basa su questo l<strong>in</strong>guaggio: <strong>in</strong> particolare <strong>di</strong>spositivi wireless come i<br />

telefoni cellulari comunicano tramite la cosiddetta wireless Internet usando appli-<br />

cazioni <strong>di</strong> rete basate su Java. Java è <strong>di</strong> fatto entrato prepotentemente nel terreno<br />

delle applicazioni <strong>di</strong> larga scala; non è più un l<strong>in</strong>guaggio utilizzato per rendere<br />

vive le pag<strong>in</strong>e web, ma è <strong>di</strong>ventato il l<strong>in</strong>guaggio preferito <strong>di</strong> riferimento <strong>di</strong> molte<br />

aziende ed organizzazioni. [10]<br />

Figura 3.2: Gli Aspetti <strong>di</strong> Java [49]<br />

3.1.2 L<strong>in</strong>guaggi Macch<strong>in</strong>a, Assembly e <strong>di</strong> Alto Livello<br />

I programmatori possono scrivere le istruzioni <strong>in</strong> vari l<strong>in</strong>guaggi <strong>di</strong> programma-<br />

zione. Alcuni l<strong>in</strong>guaggi vengono compresi <strong>di</strong>rettamente dai computer, mentre<br />

altri richiedono dei passaggi <strong>in</strong>terme<strong>di</strong> <strong>di</strong> traduzione. Allo stato attuale vengono<br />

116


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

utilizzati cent<strong>in</strong>aia <strong>di</strong> l<strong>in</strong>guaggi <strong>di</strong> programmazione <strong>di</strong>versi, che possono essere<br />

raggruppati <strong>in</strong> tre gran<strong>di</strong> categorie:<br />

1. l<strong>in</strong>guaggi macch<strong>in</strong>a;<br />

2. l<strong>in</strong>guaggi assembly;<br />

3. l<strong>in</strong>guaggi <strong>di</strong> alto livello.<br />

Un computer è <strong>in</strong> grado <strong>di</strong> capire <strong>di</strong>rettamente soltanto il proprio l<strong>in</strong>guaggio mac-<br />

ch<strong>in</strong>a, che deve essere considerato come il suo l<strong>in</strong>guaggio naturale, <strong>in</strong> quanto è<br />

def<strong>in</strong>ito dalla progettazione dell’hardware. In genere i l<strong>in</strong>guaggi macch<strong>in</strong>a con-<br />

sistono <strong>di</strong> str<strong>in</strong>ghe <strong>di</strong> numeri (che si riducono <strong>in</strong>f<strong>in</strong>e a sequenze <strong>di</strong> 0 ed 1) che<br />

or<strong>di</strong>nano al computer <strong>di</strong> eseguire operazioni elementari, una alla volta. I l<strong>in</strong>guag-<br />

gi macch<strong>in</strong>a <strong>di</strong>pendono dall’architettura del computer per cui sono stati def<strong>in</strong>iti e<br />

sono assolutamente oscuri agli occhi <strong>di</strong> un essere umano. Con l’aumentare della<br />

popolarità dei computer ci si rese conto che cont<strong>in</strong>uare a programmare <strong>in</strong> l<strong>in</strong>guag-<br />

gio macch<strong>in</strong>a era un’operazione decisamente noiosa e lenta. Anziché scrivere<br />

str<strong>in</strong>ghe <strong>di</strong> numeri che i computer potevano capire <strong>di</strong>rettamente, i programma-<br />

tori com<strong>in</strong>ciarono a far uso <strong>di</strong> abbreviazioni che rappresentavano le operazioni<br />

elementari dei computer. Tali abbreviazioni costituirono la base dei l<strong>in</strong>guaggi<br />

assembly. Parallelamente furono sviluppati dei programmi <strong>di</strong> traduzione, detti as-<br />

sembler, che convertono i programmi scritti <strong>in</strong> l<strong>in</strong>guaggio assembly <strong>in</strong> l<strong>in</strong>guaggio<br />

macch<strong>in</strong>a. L’utilizzo dei computer aumentò sensibilmente con l’<strong>in</strong>troduzione dei<br />

l<strong>in</strong>guaggi assembly, ma <strong>in</strong> def<strong>in</strong>itiva essi richiedevano ugualmente un gran numero<br />

<strong>di</strong> istruzioni per eseguire anche il compito più banale. Per velocizzare la program-<br />

mazione furono allora <strong>in</strong>ventati i l<strong>in</strong>guaggi <strong>di</strong> alto livello, nei quali una s<strong>in</strong>gola<br />

istruzione poteva eseguire compiti anche complessi. Programmi <strong>di</strong> traduzione<br />

detti compilatori convertono poi i programmi scritti nel l<strong>in</strong>guaggio <strong>di</strong> alto livello<br />

<strong>in</strong> l<strong>in</strong>guaggio macch<strong>in</strong>a. I l<strong>in</strong>guaggi <strong>di</strong> alto livello consentivano ai programmatori<br />

<strong>di</strong> scrivere delle istruzioni che suonavano all’<strong>in</strong>circa come una normale frase <strong>in</strong><br />

l<strong>in</strong>gua <strong>in</strong>glese e che contenevano alcuni simboli matematici. I l<strong>in</strong>guaggi C, C++,<br />

Java e quelli della piattaforma Microsoft .NET sono tra i l<strong>in</strong>guaggi ad alto livello<br />

più potenti ed utilizzati al giorno d’oggi.<br />

117


3.1. JAVA Carlo Caligaris, Iacopo Salvarani<br />

La compilazione <strong>di</strong> un programma ad alto livello <strong>in</strong> l<strong>in</strong>guaggio macch<strong>in</strong>a può<br />

comunque richiedere un considerevole tempo <strong>di</strong> elaborazione. Perciò furono an-<br />

che <strong>in</strong>ventati i cosiddetti <strong>in</strong>terpreti, <strong>in</strong> grado <strong>di</strong> eseguire <strong>di</strong>rettamente i programmi<br />

scritti <strong>in</strong> l<strong>in</strong>guaggio ad alto livello senza doverli prima convertire <strong>in</strong> l<strong>in</strong>guaggio<br />

macch<strong>in</strong>a. Anche se i programmi compilati sono molto più veloci <strong>di</strong> quelli <strong>in</strong>-<br />

terpretati, gli <strong>in</strong>trepreti sono spesso utilizzati negli ambienti <strong>di</strong> sviluppo <strong>in</strong> cui è<br />

necessario apportare cont<strong>in</strong>ue mo<strong>di</strong>fiche ai programmi, così da non doverli compi-<br />

lare frequentemente. Una volta raggiunta la versione def<strong>in</strong>itiva <strong>di</strong> un programma,<br />

però, è possibile compilarlo per avere un’efficienza migliore.<br />

A questo punto è chiaro che esistono fondamentalmente due modalità <strong>di</strong>verse<br />

<strong>di</strong> tradurre un programma scritto con un l<strong>in</strong>guaggio <strong>di</strong> alto livello <strong>in</strong> una forma<br />

che sia <strong>di</strong>rettamente comprensibile da un computer: la compilazione e l’<strong>in</strong>ter-<br />

pretazione. Java utilizza un’approccio ibrido comb<strong>in</strong>ando queste due modalità.<br />

[10]<br />

3.1.3 La Storia dei L<strong>in</strong>guaggi C e C++<br />

Il l<strong>in</strong>guaggio Java è una evoluzione del l<strong>in</strong>guaggio C++ che costituisce l’evoluzio-<br />

ne naturale del l<strong>in</strong>guaggio C, il quale a sua volta <strong>di</strong>scende da altri due l<strong>in</strong>guaggi,<br />

BCPL e B. Il l<strong>in</strong>guaggio BCPL fu sviluppato nel 1967 da Mart<strong>in</strong> Richards per<br />

scrivere sistemi operativi e compilatori. Ken Thompson modellò poi molte delle<br />

caratteristiche del suo l<strong>in</strong>guaggio B sulla base del BCPL ed utilizzò il B per creare<br />

le prime versioni del sistema operativo UNIX presso i Bell Laboratories nel 1970.<br />

Il l<strong>in</strong>guaggio C si sviluppò dal B grazie a Dennis Ritchie presso i Bell Labo-<br />

ratories, e fu implementato orig<strong>in</strong>ariamente nel 1972. Il C fu noto <strong>in</strong>izialmente<br />

come l<strong>in</strong>guaggio <strong>di</strong> sviluppo del sistema operativo UNIX. Oggi la maggior par-<br />

te dei sistemi operativi che possiamo trovare nei computer portatili, nei normali<br />

computer da tavolo, nelle workstation e pers<strong>in</strong>o nei piccoli server sono scritti <strong>in</strong> C<br />

o C++.<br />

Il l<strong>in</strong>guaggio C++, estensione del C, è stato sviluppato da Bjarne Stroustrup<br />

118


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

agli <strong>in</strong>izi degli anni ’80 presso i Bell Laboratories. Il l<strong>in</strong>guaggio C++ offre una<br />

serie <strong>di</strong> funzionalità che potenziano il C e, cosa più importante, lo rendono adatto<br />

per la programmazione orientata agli oggetti. Il C++ è un l<strong>in</strong>guaggio ibrido poi-<br />

ché è possibile scrivere programmi nel vecchio stile procedurale del C, nello stile<br />

orientato agli oggetti, o <strong>in</strong> entrambi. Gli oggetti o, più precisamente, le classi <strong>di</strong><br />

oggetti, sono essenzialmente componenti software riutilizzabili. Possiamo creare<br />

oggetti che rappresentano varie tipologie <strong>di</strong> dati. Ogni nome può essere utilizzato<br />

per rappresentare un oggetto software <strong>in</strong> term<strong>in</strong>i <strong>di</strong> proprietà e comportamento.<br />

Gli sviluppatori <strong>di</strong> software si stanno rendendo conto che usare un approccio mo-<br />

dulare ed orientato agli oggetti nella programmazione e nell’implementazione può<br />

rendere i team <strong>di</strong> programmazione molto più produttivi rispetto alle tecniche del<br />

passato, come la programmazione strutturata. I programmi orientati agli ogget-<br />

ti, <strong>in</strong>fatti, sono spesso più semplici da capire, da correggere e da mo<strong>di</strong>ficare. In<br />

questo scenario, Java è ormai <strong>di</strong>venuto il l<strong>in</strong>guaggio <strong>di</strong> programmazione orientato<br />

agli oggetti più utilizzato. [10]<br />

3.1.4 La Storia <strong>di</strong> Java<br />

Il contributo più importante della rivoluzione dei microprocessori è stato forse lo<br />

sviluppo dei personal computer, che hanno avuto un profondo impatto sulla vita<br />

delle persone ed ancora <strong>di</strong> più sulle organizzazioni e sulle aziende. Sono <strong>in</strong> mol-<br />

ti a credere che il prossimo settore <strong>in</strong> cui i microprocessori avranno un impatto<br />

<strong>di</strong> questo tipo sia quello dei <strong>di</strong>spositivi elettronici <strong>in</strong>telligenti <strong>di</strong> uso comune. In<br />

vista <strong>di</strong> questa nuova rivoluzione, Sun Microsystems ha f<strong>in</strong>anziato, nel 1991, un<br />

progetto <strong>di</strong> ricerca <strong>in</strong>terno, chiamato Green. Questo progetto ha dato vita ad un<br />

l<strong>in</strong>guaggio basato su C e C++, <strong>in</strong>izialmente chiamato Oak dal suo creatore, Ja-<br />

mes Gosl<strong>in</strong>g. Il nome è stato poi mo<strong>di</strong>ficato <strong>in</strong> Java (nome <strong>di</strong> una marca <strong>di</strong> caffé)<br />

quando si è scoperto che già esisteva un l<strong>in</strong>guaggio chiamato Oak. Il progetto<br />

Green ha <strong>in</strong>contrato delle <strong>di</strong>fficoltà, <strong>in</strong> quanto il mercato dei <strong>di</strong>spositivi elettronici<br />

<strong>di</strong> consumo non si è sviluppato tanto rapidamente quanto Sun credeva. Fortunata-<br />

mente, nel 1993 è esploso il World Wide Web e Sun ha <strong>in</strong>travisto imme<strong>di</strong>atamente<br />

il potenziale <strong>di</strong> Java per creare pag<strong>in</strong>e web con contenuti <strong>di</strong>namici ed animazioni.<br />

119


3.1. JAVA Carlo Caligaris, Iacopo Salvarani<br />

Sun ha presentato ufficialmente Java <strong>in</strong> una conferenza tenutasi nel Maggio del<br />

1995, sollevando un clamoroso <strong>in</strong>teresse. Java viene attualmente utilizzato per<br />

sviluppare applicazioni <strong>in</strong>dustriali su larga scala, per estendere le funzionalità dei<br />

server web, per realizzare applicazioni dest<strong>in</strong>ate ai <strong>di</strong>spositivi <strong>di</strong> consumo e per<br />

molti altri scopi. [10]<br />

3.1.5 Le Librerie <strong>di</strong> Classi Java<br />

I programmi <strong>di</strong> Java si compongono <strong>di</strong> parti dette classi, che a loro volta contengo-<br />

no meto<strong>di</strong>, i quali eseguono vari compiti e, alla f<strong>in</strong>e, ritornano delle <strong>in</strong>formazioni.<br />

Sebbene sia possibile creare ogni parte <strong>di</strong> un programma Java, normalmente un<br />

programmatore cerca <strong>di</strong> riutilizzare l’enorme quantità <strong>di</strong> classi già esistenti, rac-<br />

chiuse nelle librerie <strong>di</strong> classi Java. Le librerie <strong>di</strong> classi sono conosciute anche<br />

come Java API (Application Programm<strong>in</strong>g Interface). Per conoscere il mondo<br />

<strong>di</strong> Java, qu<strong>in</strong><strong>di</strong>, è necessario stu<strong>di</strong>are due cose: il l<strong>in</strong>guaggio vero e proprio, per<br />

realizzare le proprie classi, e le librerie <strong>di</strong> classi già esistenti. [10]<br />

Nel corso del nostro lavoro abbiamo utilizzato un gran numero <strong>di</strong> classi prede-<br />

f<strong>in</strong>ite, ma abbiamo anche costruito alcune classi personalmente, al f<strong>in</strong>e <strong>di</strong> raggrup-<br />

pare coman<strong>di</strong> ripetitivi <strong>in</strong> funzioni o al f<strong>in</strong>e <strong>di</strong> avere dei meto<strong>di</strong> che ci consentissero<br />

<strong>di</strong> trattare i tipi <strong>di</strong> dati <strong>di</strong> nostro <strong>in</strong>teresse.<br />

3.1.6 Gli Elementi Fondamentali <strong>di</strong> un Tipico Ambiente Java<br />

Un programma attraversa generalmente c<strong>in</strong>que fasi per essere eseguito:<br />

1. scrittura e mo<strong>di</strong>fica;<br />

2. compilazione;<br />

3. caricamento;<br />

4. verifica;<br />

5. esecuzione.<br />

120


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

Scrittura e Mo<strong>di</strong>fica <strong>di</strong> un Programma<br />

Per scrivere e mo<strong>di</strong>ficare i files che costituiscono il nostro programma Java, si<br />

utilizza generalmente un e<strong>di</strong>tor. I nomi dei file dei programmi Java term<strong>in</strong>ano<br />

generalmente con l’estensione .java. Le aziende che sviluppano grossi sistemi <strong>in</strong>-<br />

formativi utilizzano solitamente ambienti <strong>di</strong> sviluppo Java <strong>in</strong>tegrati (IDE), forniti<br />

da vari <strong>di</strong>stributori <strong>di</strong> software. Gli IDE mettono a <strong>di</strong>sposizione del programma-<br />

tore <strong>di</strong>versi strumenti per lo sviluppo <strong>di</strong> programmi e per la loro messa punto,<br />

facilitando l’<strong>in</strong><strong>di</strong>viduazione degli errori. I nostri supervisori aziendali ci hanno<br />

consigliato Eclipse, un IDE dall’<strong>in</strong>terfaccia e dalle funzioni molto simili a quelle<br />

<strong>di</strong> Microsoft Visual Stu<strong>di</strong>o.<br />

Compilazione <strong>di</strong> un Programma Java <strong>in</strong> Bytecode<br />

Il compilatore Java converte il co<strong>di</strong>ce <strong>in</strong> bytecode, ossia le istruzioni comprese dal-<br />

l’<strong>in</strong>terprete Java. Il compilatore Java può essere lanciato tramite l<strong>in</strong>ea <strong>di</strong> comando<br />

(<strong>in</strong> ambiente Microsoft, ad esempio, si utilizza il prompt MS-DOS) con l’istruzio-<br />

ne javac oppure, se l’IDE supporta questa possibilità, impostando il percorso<br />

del compilatore tra le opzioni dell’IDE stesso e lanciando la compilazione con un<br />

comando <strong>in</strong>terno all’ambiente <strong>di</strong> sviluppo. Se il programma è stato compilato cor-<br />

rettamente, viene prodotto un file con estensione .class contenente i bytecode<br />

che verranno <strong>in</strong>terpretati durante la fase <strong>di</strong> esecuzione.<br />

Il compilatore Java traduce il co<strong>di</strong>ce sorgente <strong>in</strong> un bytecode che rappresenta<br />

le operazioni che verranno eseguite <strong>in</strong> fase <strong>di</strong> esecuzione. I bytecode vengono<br />

eseguiti dalla Java Virtual Mach<strong>in</strong>e (JVM), cioè una parte del JDK ed una com-<br />

ponente fondamentale della piattaforma Java. Una macch<strong>in</strong>a virtuale (VM) è una<br />

applicazione software che simula un computer, nascondendo ai programmi che<br />

con essa <strong>in</strong>teragiscono sia il sistema operativo, sia l’hardware sottostanti. Se la<br />

stessa macch<strong>in</strong>a virtuale è <strong>di</strong>sponibile per <strong>di</strong>verse piattaforme, le stesse appli-<br />

cazioni eseguite dalla VM possono automaticamente essere utilizzate <strong>in</strong> ognuna<br />

<strong>di</strong> tali piattaforme. La macch<strong>in</strong>a virtuale Java è una delle macch<strong>in</strong>e virtuali più<br />

<strong>di</strong>ffuse.<br />

121


3.1. JAVA Carlo Caligaris, Iacopo Salvarani<br />

A <strong>di</strong>fferenza del l<strong>in</strong>guaggio macch<strong>in</strong>a, che è specifico per ciascun <strong>di</strong>verso tipo<br />

<strong>di</strong> hardware, il bytecode è costruito da istruzioni che sono <strong>in</strong><strong>di</strong>pendenti dalla piat-<br />

taforma, ossia non sono specifiche per una particolare piattaforma hardware. In<br />

questo modo il bytecode Java risulta essere portabile: lo stesso bytecode può es-<br />

sere eseguito <strong>in</strong> una qualunque piattaforma contenente una JVM compatibile con<br />

la versione <strong>di</strong> Java nella quale il bytecode è stato orig<strong>in</strong>ariamente compilato. La<br />

JVM è richiamabile da l<strong>in</strong>ea <strong>di</strong> comando con l’istruzione java. La JVM avvia<br />

tutti i passi necessari per eseguire l’applicazione.<br />

Caricamento <strong>di</strong> un Programma <strong>in</strong> Memoria<br />

Prima che un programma possa essere eseguito, deve essere posto <strong>in</strong> memoria.<br />

Il programma class loader trasferisce nella memoria primaria i files .class.<br />

Il class loader può anche caricare eventuali files messi a <strong>di</strong>sposizione da Java<br />

e richiamati dal nostro programma. La sorgente <strong>di</strong> questi files può essere una<br />

sorgente hardware <strong>in</strong>terna al sistema o una rete.<br />

Verifica del Bytecode<br />

Quando le classi vengono caricate, i loro bytecode vengono esam<strong>in</strong>ati dal verifi-<br />

catore <strong>di</strong> bytecode. In questo modo si garantisce che i bytecode delle classi siano<br />

vali<strong>di</strong> e rispett<strong>in</strong>o le norme <strong>di</strong> sicurezza Java. Java prevede <strong>in</strong>fatti norme molto se-<br />

vere nell’ambito della sicurezza, aff<strong>in</strong>ché i programmi Java provenienti dalla rete<br />

non possano danneggiare il sistema ospite.<br />

Esecuzione<br />

F<strong>in</strong>almente, l’<strong>in</strong>terprete, sotto il controllo del sistema operativo, <strong>in</strong>terpreta il pro-<br />

gramma, un bytecode per volta, eseguendo tutte le azioni previste dal programma<br />

stesso. Nelle prime versioni <strong>di</strong> Java, la JVM era un semplice <strong>in</strong>terprete <strong>di</strong> byte-<br />

code. Questa caratteristica rendeva i programmi <strong>in</strong> esecuzione molto lenti poiché<br />

la JVM <strong>in</strong>terpretava ed eseguiva un bytecode alla volta. Le JVM attuali, <strong>in</strong>vece,<br />

eseguono i bytecode sfruttando una comb<strong>in</strong>azione <strong>di</strong> due tecniche: l’<strong>in</strong>terpreta-<br />

122


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

zione e la cosiddetta compilazione just-<strong>in</strong>-time. Durante questo processo la JVM<br />

analizza i bytecode non appena essi vengono <strong>in</strong>terpretati, cercando <strong>di</strong> localizza-<br />

re quelle parti <strong>di</strong> bytecode eseguite più spesso, dette hot spot. Una volta isolate<br />

queste parti, esse vengono passate al compilatore just-<strong>in</strong>-time, il quale le traduce<br />

nel l<strong>in</strong>guaggio macch<strong>in</strong>a specifico per la piattaforma corrente. Quando la JVM<br />

ritrova le stesse parti una seconda volta durante l’esecuzione del programma, ciò<br />

che viene effettivamente eseguito è il più veloce l<strong>in</strong>guaggio macch<strong>in</strong>a. In questo<br />

modo i programmi Java passano per due fasi <strong>di</strong> compilazione <strong>di</strong>st<strong>in</strong>te: la prima<br />

<strong>in</strong> cui il co<strong>di</strong>ce sorgente viene tradotto <strong>in</strong> bytecode (favorendo la portabilità verso<br />

JVM presenti <strong>in</strong> <strong>di</strong>verse piattaforme) e la seconda nella quale, durante l’esecuzio-<br />

ne, i bytecode vengono tradotti <strong>in</strong> l<strong>in</strong>guaggio macch<strong>in</strong>a specifico per il computer<br />

sul quale il programma è <strong>in</strong> esecuzione. [10]<br />

3.1.7 Concetti Fondamentali della Tecnologia ad Oggetti<br />

Conclu<strong>di</strong>amo questa panoramica sul l<strong>in</strong>guaggio <strong>di</strong> programmazione più utilizzato<br />

per il nostro lavoro <strong>in</strong>troducendo la metodologia orientata agli oggetti.<br />

Ovunque si guar<strong>di</strong> nel mondo reale, si vedono oggetti: persone, animali, piante<br />

e così via. Le persone, <strong>in</strong>oltre, pensano <strong>in</strong> term<strong>in</strong>i <strong>di</strong> oggetti. I programmi per<br />

computer, e qu<strong>in</strong><strong>di</strong> i programmi Java, possono essere visti come oggetti costituiti<br />

da tanti altri oggetti software <strong>in</strong>terconnessi. La progettazione orientata agli oggetti<br />

modella il software <strong>in</strong> term<strong>in</strong>i simili a quelli utilizzati dalle persone per descrivere<br />

gli oggetti del mondo reale. Essa sfrutta le relazioni <strong>di</strong> classe, <strong>in</strong> cui gli oggetti <strong>di</strong><br />

una certa classe hanno le stesse caratteristiche, e le relazioni <strong>di</strong> ere<strong>di</strong>tarietà con<br />

cui è possibile derivare nuove classi assorbendo le caratteristiche <strong>di</strong> classi esistenti<br />

ed aggiungendone <strong>di</strong> nuove.<br />

La progettazione orientata agli oggetti è un modo naturale ed <strong>in</strong>tuitivo <strong>di</strong> vede-<br />

re il processo <strong>di</strong> progettazione. Modellando i componenti software proprio come<br />

descriviamo gli oggetti del mondo reale: usando i loro attributi ed il loro compor-<br />

tamento. La progettazione orientata agli oggetti modella anche la comunicazione<br />

tra oggetti che avviene tramite messaggi. Questo tipo <strong>di</strong> progettazione <strong>in</strong>capsula<br />

123


3.1. JAVA Carlo Caligaris, Iacopo Salvarani<br />

gli attributi e le funzionalità (il comportamento) negli oggetti: gli attributi e le<br />

funzionalità <strong>di</strong> un oggetto sono strettamente legati tra loro. Gli oggetti hanno la<br />

proprietà <strong>di</strong> nascondere le <strong>in</strong>formazioni, Questo significa che, sebbene gli oggetti<br />

sappiano come comunicare tra loro attraverso ben def<strong>in</strong>ite <strong>in</strong>terfacce, non posso-<br />

no sapere come altri oggetti sono implementati; i dettagli dell’implementazione<br />

sono nascosti all’<strong>in</strong>terno degli oggetti stessi. Del resto, è possibile guidare una<br />

macch<strong>in</strong>a senza conoscere i dettagli del funzionamento <strong>in</strong>terno del motore, della<br />

trasmissione o del cambio.<br />

Java è un l<strong>in</strong>guaggio orientato agli oggetti; i l<strong>in</strong>guaggi come il C, <strong>in</strong>vece, sono<br />

procedurali e la loro programmazione tende ad essere orientata all’azione. In C,<br />

l’unità <strong>di</strong> programmazione è la funzione. Gruppi <strong>di</strong> azioni che svolgono qualche<br />

compito comune vengono trasformati <strong>in</strong> funzioni e le funzioni sono raggruppate a<br />

loro volta per formare programmi. In Java l’unità <strong>di</strong> programmazione è la classe<br />

da cui gli oggetti vengono istanziati. Le classi Java contengono meto<strong>di</strong>, che im-<br />

plementano funzionalità, e campi, che implementano attributi. I programmatori<br />

Java si concentrano sulla creazione <strong>di</strong> classi. Ogni classe contiene dei campi e<br />

l’<strong>in</strong>sieme dei meto<strong>di</strong> che manipolano questi campi per fornire determ<strong>in</strong>ati servizi<br />

ai clienti. I programmatori usano le classi esistenti come mattoni per costruire<br />

nuove classi. Da una stessa classe è possibile istanziare molti oggetti. Le rela-<br />

zioni tra classi vengono chiamate associazioni. Quando il software viene scritto<br />

come aggregato <strong>di</strong> classi, queste possono essere riusate <strong>in</strong> sistemi software futuri.<br />

Riusare classi esistenti nella costruzione <strong>di</strong> nuove classi e programmi fa rispar-<br />

miare tempo e sforzi. Il riuso aiuta anche i programmatori a costruire sistemi più<br />

affidabili dal momento che le classi ed i componenti esistenti sono stati a lungo<br />

verificati e corretti. Con la tecnologia degli oggetti, possiamo costruire la maggior<br />

parte del software che ci serve comb<strong>in</strong>ando delle classi. [10]<br />

124


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

3.2 Le Basi <strong>di</strong> Dati ed i Sistemi <strong>di</strong> Gestione <strong>di</strong> Basi<br />

<strong>di</strong> Dati<br />

Gran parte della nostra attività ha richiesto una costante <strong>in</strong>terazione con una enor-<br />

me base <strong>di</strong> dati dalla quale abbiamo cercato <strong>di</strong> ricavare le <strong>in</strong>formazioni a noi più<br />

utili. La raccolta e lo storage dei dati rappresenta un enorme campo <strong>di</strong> applica-<br />

zione dei sistemi <strong>in</strong>formatici qu<strong>in</strong><strong>di</strong>, prima <strong>di</strong> descrivere nel dettaglio come abbia-<br />

mo operato per relazionarci con la banca dati, vogliamo <strong>in</strong>trodurre i fondamenti<br />

<strong>di</strong> questo argomento, proprio come abbiamo fatto e faremo con tutte le aree <strong>di</strong><br />

<strong>in</strong>teresse scientifico che abbiamo toccato.<br />

3.2.1 Introduzione alle Basi <strong>di</strong> Dati<br />

Le attività <strong>di</strong> raccolta, organizzazione, conservazione dei dati costituiscono uno<br />

dei pr<strong>in</strong>cipali compiti dei sistemi <strong>in</strong>formatici; essi garantiscono che questi dati<br />

vengano conservati <strong>in</strong> modo permanente su <strong>di</strong>spositivi per la loro memorizzazio-<br />

ne, aggiornati per riflettere rapidamente le loro variazioni e resi accessibili alle<br />

<strong>in</strong>terrogazioni degli utenti, talvolta <strong>di</strong>stribuiti <strong>in</strong> modo capillare sul territorio<br />

Nello svolgimento <strong>di</strong> ogni attività, sia a livello <strong>in</strong><strong>di</strong>viduale sia <strong>in</strong> organizzazio-<br />

ni <strong>di</strong> ogni <strong>di</strong>mensione, sono essenziali la <strong>di</strong>sponibilità <strong>di</strong> <strong>in</strong>formazioni e la capacità<br />

<strong>di</strong> gestirle <strong>in</strong> modo efficace; ogni organizzazione è dotata <strong>di</strong> un sistema <strong>in</strong>forma-<br />

tivo, che organizza e gestisce le <strong>in</strong>formazioni necessarie per perseguire gli scopi<br />

dell’organizzazione stessa. L’esistenza del sistema <strong>in</strong>formativo è <strong>in</strong> parte <strong>in</strong><strong>di</strong>pen-<br />

dente dalla sua automatizzazione. A sostegno <strong>di</strong> questa affermazione possiamo<br />

ricordare che i sistemi <strong>in</strong>formativi esistono da molto prima dell’<strong>in</strong>venzione e del-<br />

la <strong>di</strong>ffusione dei calcolatori elettronici. Per <strong>in</strong><strong>di</strong>care la porzione automatizzata<br />

del sistema <strong>in</strong>formativo viene <strong>di</strong> solito utilizzato il term<strong>in</strong>e sistema <strong>in</strong>formatico.<br />

La <strong>di</strong>ffusione capillare dell’<strong>in</strong>formatica <strong>in</strong> quasi tutte le attività umane ha fatto<br />

sì che gran parte dei sistemi <strong>in</strong>formativi fossero anche, <strong>in</strong> buona misura, sistemi<br />

<strong>in</strong>formatici.<br />

Nei sistemi <strong>in</strong>formatici si porta all’estremo il concetto <strong>di</strong> rappresentazione<br />

125


3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI Carlo Caligaris, Iacopo Salvarani<br />

e co<strong>di</strong>fica: le <strong>in</strong>formazioni vengono rappresentate per mezzo <strong>di</strong> dati che hanno<br />

bisogno <strong>di</strong> essere <strong>in</strong>terpretati. A livello concettuale possiamo <strong>di</strong>re che i dati da soli<br />

non hanno alcun significato ma, una volta <strong>in</strong>terpretati e correlati opportunamente,<br />

essi forniscono <strong>in</strong>formazioni che consentono <strong>di</strong> arricchire la nostra conoscenza<br />

del mondo. Una base <strong>di</strong> dati è una collezione <strong>di</strong> dati, utilizzati per rappresentare<br />

le <strong>in</strong>formazioni <strong>di</strong> <strong>in</strong>teresse per un sistema <strong>in</strong>formativo.<br />

L’attenzione ai dati ha caratterizzato le applicazioni dell’<strong>in</strong>formatica f<strong>in</strong> dalle<br />

sue orig<strong>in</strong>i, ma sistemi software specificamente de<strong>di</strong>cati alla gestione dei dati sono<br />

stati realizzati solo a partire dalla f<strong>in</strong>e degli anni Sessanta. Un sistema <strong>di</strong> gestione<br />

<strong>di</strong> basi <strong>di</strong> dati (DBMS) è un sistema software <strong>in</strong> grado <strong>di</strong> gestire collezioni <strong>di</strong><br />

dati che siano gran<strong>di</strong>, con<strong>di</strong>vise e persistenti, assicurando la loro affidabilità e<br />

riservatezza. Come ogni prodotto <strong>in</strong>formatico, un DBMS deve essere efficiente ed<br />

efficace. Una base <strong>di</strong> dati è una collezione <strong>di</strong> dati gestita da un DBMS. Precisiamo<br />

le caratteristiche dei DBMS su cui si basano le def<strong>in</strong>izioni precedenti.<br />

• Le basi <strong>di</strong> dati possono essere gran<strong>di</strong>, talvolta sono enormi (come quella<br />

con cui abbiamo lavorato) e comunque <strong>in</strong> generale hanno <strong>di</strong>mensioni mol-<br />

to maggiori della memoria centrale <strong>di</strong>sponibile. Di conseguenza, i DBMS<br />

debbono prevedere una gestione dei dati <strong>in</strong> memoria secondaria. È impor-<br />

tante che i sistemi possano gestire i dati senza porre limiti alle <strong>di</strong>mensioni,<br />

oltre a quelli fisici imposti dai <strong>di</strong>spositivi usati.<br />

• Le basi <strong>di</strong> dati sono con<strong>di</strong>vise, nel senso che applicazioni ed utenti <strong>di</strong>versi<br />

debbono poter accedere, secondo opportune modalità, a dati comuni. É im-<br />

portante notare che <strong>in</strong> questo modo si riduce la ridondanza dei dati, poiché<br />

si evitano ripetizioni, e conseguentemente si riduce anche la possibilità <strong>di</strong><br />

<strong>in</strong>consistenze: se esistono varie copie degli stessi dati è possibile che esse,<br />

<strong>in</strong> qualche momento, non siano uguali. Per garantire l’accesso con<strong>di</strong>viso<br />

ai dati da parte <strong>di</strong> molti utenti che operano contemporaneamente, il DBMS<br />

<strong>di</strong>spone <strong>di</strong> un meccanismo apposito detto controllo <strong>di</strong> concorrenza.<br />

• Le basi <strong>di</strong> dati sono persistenti, cioè hanno un tempo <strong>di</strong> vita che non è li-<br />

mitato a quello delle s<strong>in</strong>gole esecuzioni dei programmi che le utilizzano. In<br />

126


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

contrasto, ricor<strong>di</strong>amo che i dati gestiti da un programma <strong>in</strong> memoria centra-<br />

le hanno una vita che <strong>in</strong>izia e term<strong>in</strong>a con l’esecuzione del programma; tali<br />

dati, qu<strong>in</strong><strong>di</strong>, non sono persistenti.<br />

• I DBMS garantiscono l’affidabilità, cioè la capacità del sistema <strong>di</strong> conser-<br />

vare sostanzialmente <strong>in</strong>tatto il contenuto della base <strong>di</strong> dati (o almeno <strong>di</strong> per-<br />

metterne la ricostruzione) <strong>in</strong> caso <strong>di</strong> malfunzionamenti hardware e software.<br />

A questo scopo i DBMS forniscono specifiche funzionalità <strong>di</strong> salvataggio e<br />

riprist<strong>in</strong>o (backup e recovery).<br />

• I DBMS garantiscono la riservatezza dei dati. Ciascun utente, riconosciuto<br />

<strong>in</strong> base ad un nome <strong>di</strong> utente che è specificato all’atto <strong>di</strong> <strong>in</strong>teragire con il<br />

DBMS, viene abilitato a svolgere solo determ<strong>in</strong>ate azioni sui dati, attraverso<br />

meccanismi <strong>di</strong> autorizzazione.<br />

• Per efficienza si <strong>in</strong>tende la capacità <strong>di</strong> svolgere le operazioni utilizzando un<br />

<strong>in</strong>sieme <strong>di</strong> risorse (tempo e spazio) che sia accettabile per gli utenti. Que-<br />

sta caratteristica <strong>di</strong>pende dalle tecniche utilizzate nell’implementazione del<br />

DBMS e dalla bontà della realizzazione della base <strong>di</strong> dati da parte dei suoi<br />

progettisti. Va sottol<strong>in</strong>eato che i DBMS forniscono un <strong>in</strong>sieme piuttosto<br />

ampio <strong>di</strong> funzionalità che richiedono molte risorse, e qu<strong>in</strong><strong>di</strong> possono garan-<br />

tire efficienza solo a con<strong>di</strong>zione che il sistema <strong>in</strong>formatico su cui <strong>in</strong>stallati<br />

sia adeguatamente <strong>di</strong>mensionato.<br />

• Per efficacia <strong>in</strong>ten<strong>di</strong>amo la capacità della base <strong>di</strong> dati <strong>di</strong> rendere produt-<br />

tive, <strong>in</strong> ogni senso, le attività dei suoi utenti. Questa def<strong>in</strong>izione è chia-<br />

ramente generica e non corrisponde ad un aspetto specifico, dato che un<br />

DBMS fornisce vari servizi e funzionalità ad utenti <strong>di</strong>fferenti. L’attività <strong>di</strong><br />

progettazione della base <strong>di</strong> dati e delle applicazioni che la utilizzano mira<br />

essenzialmente a garantire una buona efficacia complessiva del sistema.<br />

I DBMS sono stati concepiti e realizzati per estendere le funzioni dei file system,<br />

fornendo la possibilità <strong>di</strong> accesso con<strong>di</strong>viso agli stessi dati da parte <strong>di</strong> più utenti ed<br />

applicazioni e garantendo anche molti altri servizi <strong>in</strong> maniera <strong>in</strong>tegrata. I DBMS<br />

127


3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI Carlo Caligaris, Iacopo Salvarani<br />

utilizzano a loro volta files per la memorizzazione ma i files così gestiti ammettono<br />

organizzazioni dei dati più sofisticate. [3]<br />

3.2.2 Modelli dei Dati: il Modello Relazionale<br />

Un modello dei dati è un <strong>in</strong>sieme <strong>di</strong> concetti utilizzati per organizzare i dati <strong>di</strong><br />

<strong>in</strong>teresse e descriverne la struttura <strong>in</strong> modo che essa risulti comprensibile ad un<br />

elaboratore. Ogni modello dei dati fornisce meccanismi <strong>di</strong> strutturazione, ana-<br />

loghi ai costruttori <strong>di</strong> tipo dei l<strong>in</strong>guaggi <strong>di</strong> programmazione, che permettono <strong>di</strong><br />

def<strong>in</strong>ire nuovi tipi sulla base <strong>di</strong> tipi elementari predef<strong>in</strong>iti e <strong>di</strong> costruttori <strong>di</strong> tipo.<br />

Il modello relazionale dei dati, attualmente il più <strong>di</strong>ffuso, permette <strong>di</strong> def<strong>in</strong>ire<br />

tipi per mezzo del costruttore relazione, che consente <strong>di</strong> organizzare i dati <strong>in</strong> <strong>in</strong>sie-<br />

mi <strong>di</strong> record a struttura fissa. Una relazione viene spesso rappresentata per mezzo<br />

<strong>di</strong> una tabella, le cui righe descrivono specifici record e le cui colonne corrispon-<br />

dono ai campi del record; l’or<strong>di</strong>ne delle righe e delle colonne è sostanzialmente<br />

irrilevante. Il modello relazionale, def<strong>in</strong>ito formalmente agli <strong>in</strong>izi degli anni Set-<br />

tanta, si è affermato negli anni Ottanta con una certa lentezza, dovuta all’elevato<br />

livello <strong>di</strong> astrazione: non è stato imme<strong>di</strong>ato <strong>in</strong><strong>di</strong>viduare relazioni efficienti per<br />

strutture significativamente da quelle utilizzate allora.<br />

Il modello relazionale qu<strong>in</strong><strong>di</strong> si basa sui concetti: relazione e tabella, che so-<br />

no <strong>di</strong> natura <strong>di</strong>versa ma facilmente riconducibili l’uno all’altro. La nozione <strong>di</strong><br />

relazione proviene dalla matematica e, <strong>in</strong> particolare, dalla teoria degli <strong>in</strong>siemi,<br />

mentre il concetto <strong>di</strong> tabella è semplice ed <strong>in</strong>tuitivo. La presenza contemporanea<br />

<strong>di</strong> un concetto prevalentemente formale e <strong>di</strong> uno <strong>in</strong>tuitivo è responsabile del gran-<br />

de successo del modello: <strong>in</strong>fatti, le tabelle risultano naturali e comprensibili anche<br />

per gli utenti f<strong>in</strong>ali (che le usano nei più svariati contesti per <strong>di</strong>versi scopi, senza<br />

un riferimento <strong>di</strong>retto alle basi <strong>di</strong> dati sottostanti). D’altra parte, la presenza <strong>di</strong><br />

una formalizzazione semplice e precisa ha permesso anche uno sviluppo teorico a<br />

supporto del modello con risultati <strong>di</strong> <strong>in</strong>teresse concreto.<br />

Il modello relazionale risponde al requisito dell’<strong>in</strong><strong>di</strong>pendenza dei dati, che pre-<br />

vede una <strong>di</strong>st<strong>in</strong>zione, nella descrizione dei dati, tra livello fisico e livello logico;<br />

128


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

gli utenti che accedono ai dati ed i programmatori che sviluppano le applicazio-<br />

ni fanno riferimento solo al livello logico; i dati descritti al livello logico sono<br />

poi realizzati per mezzo <strong>di</strong> opportune strutture fisiche, ma per accedere ai dati<br />

non è necessario conoscere le strutture fisiche stesse. Infatti, i modelli proposti<br />

precedentemente al modello relazionale, <strong>in</strong>cludevano espliciti riferimenti alla sot-<br />

tostante struttura realizzativa, attraverso l’uso <strong>di</strong> puntatori e l’or<strong>di</strong>namento fisico<br />

dei dati.<br />

Il term<strong>in</strong>e relazione viene utilizzato <strong>in</strong> questa trattazione <strong>in</strong> tre accezioni che<br />

<strong>di</strong>fferiscono nella sostanza:<br />

[3]<br />

1. relazione matematica secondo la def<strong>in</strong>izione normalmente data nella teoria<br />

degli <strong>in</strong>siemi elementare;<br />

2. relazione secondo la def<strong>in</strong>izione del modello relazionale, che presenta alcu-<br />

ne <strong>di</strong>fferenze rispetto a quella della teoria degli <strong>in</strong>siemi;<br />

3. relazione come traduzione dell’<strong>in</strong>glese relationship, costrutto del modello<br />

concettuale Entità-Relazione utilizzato per descrivere legami tra entità del<br />

mondo reale.<br />

3.2.3 Livelli <strong>di</strong> Astrazione nel DBMS ed In<strong>di</strong>pendenza dei Dati<br />

Nelle basi <strong>di</strong> dati esiste una parte sostanzialmente <strong>in</strong>variante nel tempo, detta sche-<br />

ma della base <strong>di</strong> dati, costituita dalle caratteristiche dei dati, ed una variabile nel<br />

tempo, detta istanza o stato della base <strong>di</strong> dati, costituita dai valori effettivi. lo<br />

schema <strong>di</strong> una relazione è costituito dalla sua <strong>in</strong>testazione, cioè dal nome della<br />

relazione seguito dai nomi dei suoi attributi. L’istanza <strong>di</strong> una relazione è costi-<br />

tuita dall’<strong>in</strong>sieme, variante nel tempo, delle sue righe. Si <strong>di</strong>ce anche che lo sche-<br />

ma è la componente <strong>in</strong>tensionale della base <strong>di</strong> dati e l’istanza è la componente<br />

estensionale.<br />

129


3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI Carlo Caligaris, Iacopo Salvarani<br />

La nozione <strong>di</strong> modello e <strong>di</strong> schema può essere ulteriormente sviluppata te-<br />

nendo presenti altre <strong>di</strong>mensioni nella descrizione dei dati. Esiste una proposta <strong>di</strong><br />

architettura standar<strong>di</strong>zzata per DBMS articolata su tre livelli, detti rispettivamente<br />

esterno, logico ed <strong>in</strong>terno; per ciascun livello esiste uno schema.<br />

• Lo schema logico costituisce una descrizione dell’<strong>in</strong>tera base <strong>di</strong> dati per<br />

mezzo del modello logico adottato dal DBMS.<br />

• Lo schema <strong>in</strong>terno costituisce la rappresentazione dello schema logico per<br />

mezzo <strong>di</strong> strutture fisiche <strong>di</strong> memorizzazione.<br />

• Lo schema esterno costituisce la descrizione <strong>di</strong> una porzione della base <strong>di</strong><br />

dati <strong>di</strong> <strong>in</strong>teresse, per mezzo del modello logico. Uno schema esterno può<br />

prevedere organizzazioni dei dati <strong>di</strong>verse rispetto a quelle utilizzate nello<br />

schema logico, che riflettono il punto <strong>di</strong> vista <strong>di</strong> un particolare utente o<br />

<strong>in</strong>sieme <strong>di</strong> utenti. Pertanto, è possibile associare ad uno schema logico vari<br />

schemi esterni.<br />

Nei sistemi più moderni il livello esterno non è esplicitamente presente, ma è<br />

possibile def<strong>in</strong>ire relazioni derivate (o viste).<br />

L’architettura a livelli così def<strong>in</strong>ita garantisce l’<strong>in</strong><strong>di</strong>pendenza dei dati, la pr<strong>in</strong>-<br />

cipale proprietà dei DBMS. In generale, questa proprietà permette ad utenti e pro-<br />

grammi applicativi che utilizzano una base <strong>di</strong> dati <strong>di</strong> <strong>in</strong>teragire ad un elevato livel-<br />

lo <strong>di</strong> astrazione, che presc<strong>in</strong>de dai dettagli realizzativi utilizzati nella costruzione<br />

della base <strong>di</strong> dati. In particolare, l’<strong>in</strong><strong>di</strong>pendenza dei dati può essere caratterizzata<br />

ulteriormente come <strong>in</strong><strong>di</strong>pendenza fisica e logica.<br />

• L’<strong>in</strong><strong>di</strong>pendenza fisica consente <strong>di</strong> <strong>in</strong>teragire con il DBMS <strong>in</strong> modo <strong>in</strong><strong>di</strong>pen-<br />

dente dalla struttura fisica dei dati. In base a questa proprietà è possibile<br />

mo<strong>di</strong>ficare le strutture fisiche (per esempio le modalità <strong>di</strong> organizzazione<br />

dei files gestiti dal DBMS o la allocazione fisica dei files sui <strong>di</strong>spositivi <strong>di</strong><br />

memorizzazione) senza <strong>in</strong>fluire sulle descrizioni dei dati ad alto livello e<br />

qu<strong>in</strong><strong>di</strong> sui programmi che utilizzano i dati stessi.<br />

130


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

• L’<strong>in</strong><strong>di</strong>pendenza logica consente <strong>di</strong> <strong>in</strong>teragire con il livello esterno della base<br />

<strong>di</strong> dati <strong>in</strong> modo <strong>in</strong><strong>di</strong>pendente dal livello logico. Per esempio, è possibile<br />

aggiungere uno schema esterno <strong>in</strong> base alle esigenze <strong>di</strong> un nuovo utente<br />

oppure mo<strong>di</strong>ficare uno schema esterno senza dover mo<strong>di</strong>ficare lo schema<br />

logico e perciò la sottostante organizzazione fisica dei dati. Dualmente,<br />

è possibile mo<strong>di</strong>ficare il livello logico, mantenendo <strong>in</strong>alterate le strutture<br />

esterne (mo<strong>di</strong>ficandone la def<strong>in</strong>izione <strong>in</strong> term<strong>in</strong>i delle strutture logiche) <strong>di</strong><br />

<strong>in</strong>teresse per l’utente.<br />

È importante sottol<strong>in</strong>eare che gli accessi alla base <strong>di</strong> dati avvengono solo attraver-<br />

so il livello esterno (che può co<strong>in</strong>cidere con quello logico); è il DBMS che traduce<br />

le operazioni <strong>in</strong> term<strong>in</strong>i dei livelli sottostanti. L’architettura a livelli è qu<strong>in</strong><strong>di</strong> il<br />

meccanismo fondamentale attraverso cui i DBMS realizzano l’<strong>in</strong><strong>di</strong>pendenza dei<br />

dati. [3]<br />

3.2.4 Def<strong>in</strong>izioni Fondamentali<br />

In questo contesto non riteniamo necessario assumere un livello <strong>di</strong> dettaglio ecces-<br />

sivamente profondo per quanto riguarda il modello relazionale e le sue <strong>in</strong>terazioni<br />

con i DBMS; tuttavia, ci sembra coerente con lo scopo <strong>di</strong> questa trattazione <strong>in</strong>tro-<br />

durre alcune def<strong>in</strong>izioni fondamentali e chiarire alcuni concetti <strong>di</strong> base relativi a<br />

questi argomenti <strong>in</strong> modo da consentire anche ad un neofita <strong>di</strong> comprendere per<br />

sommi capi gli approcci che abbiamo utilizzato.<br />

Def<strong>in</strong>izione 3.1 Una relazione matematica su due <strong>in</strong>siemi D1 e D2 (chiamati do-<br />

m<strong>in</strong>i della relazione) è un sotto<strong>in</strong>sieme <strong>di</strong> D1×D2 dove l’operatore × rappresenta<br />

il prodotto cartesiano <strong>di</strong> due <strong>in</strong>siemi, ossia l’<strong>in</strong>sieme <strong>di</strong> tutte le coppie possibili<br />

<strong>in</strong> cui il primo elemento appartiene al primo <strong>in</strong>sieme ed il secondo elemento al<br />

secondo <strong>in</strong>sieme.<br />

A livello teorico si assume, ove necessario, che le basi <strong>di</strong> dati siano costituite<br />

da relazioni f<strong>in</strong>ite su dom<strong>in</strong>i eventualmente <strong>in</strong>f<strong>in</strong>iti. Generalmente le <strong>in</strong>formazioni<br />

131


3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI Carlo Caligaris, Iacopo Salvarani<br />

che siamo <strong>in</strong>teressati ad organizzare nelle relazioni delle nostre basi <strong>di</strong> dati hanno<br />

una struttura che si può naturalmente ricondurre a quella dei record: una relazione<br />

è sostanzialmente un <strong>in</strong>sieme <strong>di</strong> record omogenei, cioè def<strong>in</strong>iti sugli stessi cam-<br />

pi. Nel casi dei record, ad ogni campo è associato un nome, detto attributo, che<br />

descrive il ruolo giocato dal dom<strong>in</strong>io stesso. Nella rappresentazione tabellare uti-<br />

lizziamo gli attributi come <strong>in</strong>testazioni per le colonne. Si noti come l’or<strong>di</strong>namento<br />

degli attributi risulti irrilevante.<br />

Def<strong>in</strong>izione 3.2 [3] Per formalizzare i concetti, stabiliamo la corrispondenza tra<br />

attributi e dom<strong>in</strong>i per mezzo <strong>di</strong> una funzione dom : X → D, che associa a ciascun<br />

attributo A ∈ X un dom<strong>in</strong>io dom(A) ∈ D. Poi, <strong>di</strong>ciamo che una t-upla su un<br />

<strong>in</strong>sieme <strong>di</strong> attributi X è una funzione t che associa a ciascun attributo A ∈ X<br />

un valore del dom<strong>in</strong>io dom(A). Possiamo qu<strong>in</strong><strong>di</strong> dare la nuova def<strong>in</strong>izione <strong>di</strong><br />

relazione: una relazione su X è un <strong>in</strong>sieme <strong>di</strong> t-uple su X. La <strong>di</strong>fferenza tra<br />

questa def<strong>in</strong>izione e quella tra<strong>di</strong>zionale <strong>di</strong> relazione matematica risiede solo nella<br />

def<strong>in</strong>izione <strong>di</strong> t-upla: nella relazione matematica abbiamo n−uple <strong>in</strong> cui elementi<br />

sono <strong>in</strong><strong>di</strong>viduati per posizione, mentre nelle t-uple della nuova def<strong>in</strong>izione gli<br />

elementi sono <strong>in</strong><strong>di</strong>viduati per mezzo degli attributi, cioè secondo una notazione<br />

posizionale.<br />

3.2.5 Relazioni e Basi <strong>di</strong> Dati<br />

La base <strong>di</strong> dati nella Figura 3.2.5 mostra una delle caratteristiche fondamentali del<br />

modello relazionale, che viene spesso <strong>in</strong><strong>di</strong>cata <strong>di</strong>cendo che esso è basato sui valo-<br />

ri: i riferimenti fra dati <strong>in</strong> relazioni <strong>di</strong>verse sono rappresentati per mezzo <strong>di</strong> valori<br />

dei dom<strong>in</strong>i che compaiono nelle t-uple. Va notato che gli altri modelli realizzano<br />

le corrispondenze <strong>in</strong> modo esplicito attraverso puntatori e vengono pertanto detti<br />

modelli basati su record e puntatori.<br />

132


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

Figura 3.3: Una base <strong>di</strong> dati relazionale<br />

La Figura 3.2.5 rappresenta la stessa base <strong>di</strong> dati della Figura 3.2.5 con punta-<br />

tori al posto dei riferimenti realizzati tramite valori.<br />

Figura 3.4: Una base <strong>di</strong> dati non relazionale con puntatori<br />

Rispetto ad un modello basato su record e puntatori, il modello relazionale<br />

basato sui valori presenta <strong>di</strong>versi vantaggi:<br />

133


3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI Carlo Caligaris, Iacopo Salvarani<br />

• esso richiede <strong>di</strong> rappresentare solo ciò che è rilevante dal punto <strong>di</strong> vista del-<br />

l’applicazione (dell’utente); i puntatori sono qualcosa <strong>di</strong> aggiuntivo, legato<br />

ad aspetti realizzativi; nei modelli con puntatori, il programmatore delle ap-<br />

plicazioni fa riferimento a dati che non sono significativi per l’applicazione;<br />

• la rappresentazione logica dei dati (costituita dai soli valori) non fa alcun<br />

riferimento a quella fisica, che può anche cambiare nel tempo: il modello<br />

relazionale permette qu<strong>in</strong><strong>di</strong> l’<strong>in</strong><strong>di</strong>pendenza fisica dei dati;<br />

• essendo tutta l’<strong>in</strong>formazione contenuta nei valori, è relativamente semplice<br />

trasferire i dati da un contesto ad un altro (per esempio se si deve trasferire<br />

una base <strong>di</strong> dati da un calcolatore ad un altro); <strong>in</strong> presenza <strong>di</strong> puntatori<br />

l’operazione è più complessa hanno un significato locale, relativo al s<strong>in</strong>golo<br />

sistema, che non è sempre imme<strong>di</strong>ato esportare.<br />

In una base <strong>di</strong> dati relazionale, a livello fisico, i dati possono essere rappresen-<br />

tati secondo modalità che prevedono l’uso dei puntatori. La <strong>di</strong>fferenza, rispetto<br />

ai modelli basati su puntatore, è nel fatto che qui i puntatori non sono visibili a<br />

livello logico. Inoltre, nei sistemi <strong>di</strong> basi <strong>di</strong> dati ad oggetti, che rappresentano una<br />

delle <strong>di</strong>rezioni <strong>di</strong> evoluzione delle basi <strong>di</strong> dati, vengono <strong>in</strong>trodotti gli identificatori<br />

<strong>di</strong> oggetto, che, pur ad un livello <strong>di</strong> astrazione più alto, presentano alcune delle<br />

caratteristiche dei puntatori. [3]<br />

3.2.6 L<strong>in</strong>guaggi ed Utenti delle Basi <strong>di</strong> Dati<br />

I DBMS sono caratterizzati, da un lato, dalla presenza <strong>di</strong> molteplici l<strong>in</strong>guaggi per<br />

la gestione dei dati; dall’altro, dalla presenza <strong>di</strong> molteplici tipologie <strong>di</strong> utenti.<br />

L<strong>in</strong>guaggi per Basi <strong>di</strong> Dati<br />

Su un DBMS è possibile specificare operazioni <strong>di</strong> vario tipo, <strong>in</strong> particolare quelle<br />

relative agli schemi ed alle istanze. Al riguardo, i l<strong>in</strong>guaggi per basi <strong>di</strong> dati si<br />

<strong>di</strong>vidono <strong>in</strong> due categorie:<br />

134


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

• l<strong>in</strong>guaggi <strong>di</strong> def<strong>in</strong>izione dei dati o Data Def<strong>in</strong>ition Language (DDL), uti-<br />

lizzati per def<strong>in</strong>ire gli schemi logici, esterni e fisici e le autorizzazioni per<br />

l’accesso;<br />

• l<strong>in</strong>guaggi <strong>di</strong> manipolazione dei dati o Data Manipulation Language (DML),<br />

utilizzati per l’<strong>in</strong>terrogazione e l’aggiornamento delle istanze <strong>di</strong> basi <strong>di</strong> dati.<br />

Il l<strong>in</strong>guaggio SQL, da noi estensivamente utilizzato, presenta <strong>in</strong> forma <strong>in</strong>tegrata le<br />

funzionalità <strong>di</strong> entrambe le categorie.<br />

L’accesso ai dati può essere effettuato con <strong>di</strong>verse modalità:<br />

• tramite l<strong>in</strong>guaggi testuali <strong>in</strong>terattivi, per esempio il l<strong>in</strong>guaggio SQL;<br />

• tramite coman<strong>di</strong> simili a quelli <strong>in</strong>terattivi immersi <strong>in</strong> l<strong>in</strong>guaggi <strong>di</strong> program-<br />

mazione tra<strong>di</strong>zionali;<br />

• tramite coman<strong>di</strong> simili a quelli <strong>in</strong>terattivi immersi <strong>in</strong> l<strong>in</strong>guaggi <strong>di</strong> sviluppo<br />

ad hoc, spesso con funzionalità specifiche e varianti da sistema a sistema.<br />

• tramite <strong>in</strong>terfacce che permettono <strong>di</strong> s<strong>in</strong>tetizzare <strong>in</strong>terrogazioni senza usare<br />

un l<strong>in</strong>guaggio testuale<br />

Varie categorie <strong>di</strong> persone possono <strong>in</strong>teragire con una base <strong>di</strong> dati o con un<br />

DBMS. L’amm<strong>in</strong>istratore della base <strong>di</strong> dati è il responsabile della progettazio-<br />

ne, controllo ed amm<strong>in</strong>istrazione della base <strong>di</strong> dati. I progettisti e programmatori<br />

<strong>di</strong> applicazioni def<strong>in</strong>iscono e realizzano i programmi che accedono alla base <strong>di</strong><br />

dati. Gli utenti utilizzano la base <strong>di</strong> dati per le proprie attività. Gli utenti f<strong>in</strong>ali<br />

utilizzano transazioni, cioè programmi che realizzano attività predef<strong>in</strong>ite e <strong>di</strong> fre-<br />

quenza elevata, con poche eccezioni previste a priori. Gli utenti casuali <strong>in</strong> grado<br />

<strong>di</strong> impiegare l<strong>in</strong>guaggi <strong>in</strong>terattivi possono <strong>in</strong>vece essere specializzati ed <strong>in</strong>teragire<br />

frequentemente con la base <strong>di</strong> dati con <strong>in</strong>terrogazioni non predef<strong>in</strong>ite. [3]<br />

3.2.7 Vantaggi e Svantaggi dei DBMS<br />

In conclusione, possiamo riassumere come segue i vantaggi derivanti dall’utilizzo<br />

dei DBMS.<br />

135


3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI Carlo Caligaris, Iacopo Salvarani<br />

• I DBMS permettono <strong>di</strong> considerare i dati come una risorsa comune <strong>di</strong> una<br />

organizzazione, a <strong>di</strong>sposizione (con opportune forme <strong>di</strong> controllo) <strong>di</strong> tutte<br />

le sue componenti.<br />

• La base <strong>di</strong> dati fornisce un modello unificato e preciso della parte del mondo<br />

reale <strong>di</strong> <strong>in</strong>teresse per l’organizzazione, utilizzabile nelle applicazioni attuali<br />

e, con possibili estensioni, <strong>in</strong> applicazioni future.<br />

• Con l’uso <strong>di</strong> un DBMS è possibile un controllo centralizzato dei dati, che<br />

può essere arricchito da forme <strong>di</strong> standar<strong>di</strong>zzazione e beneficiare <strong>di</strong> econo-<br />

mie <strong>di</strong> scala.<br />

• La con<strong>di</strong>visione permette <strong>di</strong> ridurre ridondanze ed <strong>in</strong>consistenze.<br />

• L’<strong>in</strong><strong>di</strong>pendenza dei dati, caratteristica fondamentale dei DBMS, favorisce<br />

lo sviluppo <strong>di</strong> applicazioni più flessibili e facilmente mo<strong>di</strong>ficabili.<br />

L’uso dei DBMS comporta anche alcuni aspetti negativi, o almeno delicati, fra cui<br />

i seguenti.<br />

[3]<br />

• I DBMS sono prodotti costosi, complessi ed abbastanza <strong>di</strong>versi da molti<br />

altri strumenti <strong>in</strong>formatici. La loro <strong>in</strong>troduzione comporta qu<strong>in</strong><strong>di</strong> notevoli<br />

<strong>in</strong>vestimenti, <strong>di</strong>retti (acquisto del prodotto) ed <strong>in</strong><strong>di</strong>retti (acquisizione del-<br />

le risorse hardware e software necessarie, conversione delle applicazioni,<br />

formazione del personale).<br />

• I DBMS forniscono, <strong>in</strong> forma <strong>in</strong>tegrata, una serie <strong>di</strong> servizi, che sono neces-<br />

sariamente associati ad un costo. Nei casi <strong>in</strong> cui alcuni <strong>di</strong> questi servizi non<br />

siano necessari, è <strong>di</strong>fficile scorporare quelli effettivamente richiesti dagli<br />

altri, e ciò può comportare una riduzione <strong>di</strong> prestazioni.<br />

136


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

3.3 Oracle9i<br />

Il centro Infoblu della Società Autostrade per l’Italia utilizza un gestore <strong>di</strong> data-<br />

base relazionali tra i più noti e performanti: Oracle9i. Ve<strong>di</strong>amo alcuni concetti<br />

legati al software Oracle ed a questa versione <strong>in</strong> particolare.<br />

3.3.1 Introduzione ad Oracle9i<br />

Oracle è il fornitore leader nel mondo <strong>di</strong> software per l’<strong>in</strong>formation management<br />

ma è conosciuto soprattutto per i suoi prodotti <strong>di</strong> gestione dei database relazionali<br />

(<strong>in</strong> particolar modo la versione 9i). Questo software è stato il primo a supportare<br />

l’SQL (Structured Query Language), che ora è uno standard del settore.<br />

Come detto, Oracle è un DBMS, ovvero un programma che consente ad uno<br />

o più utenti <strong>di</strong> computer <strong>di</strong> accedere ai dati nei database. In particolare, siamo <strong>di</strong><br />

fronte ad un RDBMS, cioè un programma che consente <strong>di</strong> creare, aggiornare ed<br />

amm<strong>in</strong>istrare un database relazionale. [48]<br />

Oracle è salita alla posizione <strong>di</strong> conclamata leadership da orig<strong>in</strong>i molto umili<br />

che risalgono agli anni Settanta. Con prodotti come Oracle8, Oracle8i ed Ora-<br />

cle9i, Oracle ha aggiunto maggiore potenza espressiva alla sua già solida base.<br />

Oracle8, lanciato nel 1977, ha messo a <strong>di</strong>sposizione degli utenti un livello <strong>di</strong> per-<br />

formance clamorosamente superiore a tutti gli altri dell’epoca. Oracle8i, datato<br />

1999, ha aggiunto una nuova serie <strong>di</strong> sviluppi <strong>in</strong> grado <strong>di</strong> rendere questo software<br />

un punto focale nel nuovo mondo dell’<strong>in</strong>formatica basata su Internet.<br />

Lo Sviluppo dei Database Relazionali<br />

Il concetto <strong>di</strong> database relazionale è stato <strong>in</strong>izialmente <strong>in</strong>trodotto nel 1970 dal<br />

Dott. Edgar F. Codd <strong>in</strong> una ricerca svolta per conto dell’IBM ed <strong>in</strong>titolata System<br />

R4 Relational Databases. Inizialmente, non era affatto facile capire se un sistema<br />

basato su questi concetti avrebbe potuto ambire al successo commerciale. No-<br />

nostante ciò, nel 1979, venne fondata la RSI (Relational Software Incorporated)<br />

che mise sul mercato Oracle V.2, il primo database relazionale al mondo. Entro<br />

137


3.3. ORACLE9I Carlo Caligaris, Iacopo Salvarani<br />

il 1985, Oracle poteva contare su più <strong>di</strong> 1000 clienti operanti con database rela-<br />

zionali. Abbiamo già visto <strong>in</strong> 3.2.5 i motivi che hanno portato questo modello a<br />

dom<strong>in</strong>are la scena mon<strong>di</strong>ale.<br />

Come Oracle Crebbe<br />

Nel 1983, RSI è stata r<strong>in</strong>om<strong>in</strong>ata Oracle Corporation per evitare confusione con<br />

un competitor chiamato RTI. Al tempo, gli sviluppatori decisero <strong>di</strong> creare una<br />

versione <strong>di</strong> Oracle portabile, <strong>in</strong> grado <strong>di</strong> funzionare non solo su sistemi Digital<br />

VAX/VMS, ma anche su Unix ed altre piattaforme. Nel 1985 Oracle ha reso nota<br />

la possibilità <strong>di</strong> funzionare su 30 piattaforme <strong>di</strong>fferenti (che nel frattempo sono<br />

arrivate a 70). Alcune <strong>di</strong> queste piattaforme, al giorno d’oggi non sono altro che<br />

delle curiosità storiche mentre altre sono tuttora utilizzabili. Oggi, Oracle ha este-<br />

so la sua portabilità a sistemi come Microsoft W<strong>in</strong>dows NT/2000/XP e L<strong>in</strong>ux per<br />

conquistare una importante fetta <strong>di</strong> mercato anche su queste piattaforme. F<strong>in</strong> dal-<br />

la metà degli anni Ottanta, il modello <strong>di</strong> sviluppo si è evoluto da applicazione per<br />

database sui server ad una architettura client/server orientata all’utilizzo <strong>di</strong> Inter-<br />

net per accedere alla base <strong>di</strong> dati tramite un browser. A partire dalla versione 8i<br />

Oracle ha messo a <strong>di</strong>sposizione anche una JVM <strong>in</strong>tegrata nel database.<br />

Oracle ha centrato lo sviluppo <strong>in</strong>torno ad un s<strong>in</strong>golo nucleo <strong>di</strong> co<strong>di</strong>ce sorgente<br />

f<strong>in</strong> dal 1983. Ogni versione successiva del database <strong>in</strong>clude alcune parti <strong>di</strong> co<strong>di</strong>-<br />

ce sorgente specifiche per il sistema, mentre gran parte del co<strong>di</strong>ce è comune tra<br />

le varie implementazioni. Le <strong>in</strong>terfacce con cui gli utenti, gli sviluppatori e gli<br />

amm<strong>in</strong>istratori hanno a che fare sono coerenti attraverso le varie versioni.<br />

La Famiglia <strong>di</strong> Prodotti Oracle<br />

La famiglia dei prodotti messi a <strong>di</strong>sposizione da Oracle comprende 4 <strong>di</strong>fferenti<br />

tipi <strong>di</strong> database.<br />

1. Oracle Server/Standard E<strong>di</strong>tion: la versione <strong>di</strong> Oracle per un server che<br />

deve avere a che fare con un numero limitato <strong>di</strong> utenti e con una banca dati<br />

<strong>di</strong> piccole <strong>di</strong>mensioni.<br />

138


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

[20]<br />

2. Oracle Enterprise E<strong>di</strong>tion: la versione <strong>di</strong> Oracle per un grande numero <strong>di</strong><br />

utenti e per un grande database con componenti avanzate per estensibilità,<br />

prestazione e gestione. È la versione da noi utilizzata.<br />

3. Oracle Personal E<strong>di</strong>tion: versione <strong>di</strong> Oracle per un s<strong>in</strong>golo utente, tipica-<br />

mente usato per lo sviluppo <strong>di</strong> applicazioni da utilizzare su altre versioni <strong>di</strong><br />

Oracle.<br />

4. Oracle Lite: motore <strong>di</strong> piccole <strong>di</strong>mensioni per consentire il lavoro su <strong>di</strong>spo-<br />

sitivi portatili come i notebooks.<br />

3.3.2 Componenti per lo Sviluppo <strong>di</strong> Applicazioni su Database<br />

Le applicazioni sono spesso costruite sulle fondamenta del sistema <strong>di</strong> base <strong>di</strong> dati<br />

<strong>di</strong> Oracle.<br />

Programmazione verso il Database<br />

Oracle offre ai programmatori <strong>di</strong>versi l<strong>in</strong>guaggi e <strong>di</strong>verse <strong>in</strong>terfacce per consentire<br />

l’accesso e la manipolazione dei dati. Il primo l<strong>in</strong>guaggio naturalmente supportato<br />

è l’SQL (si veda 3.4) che mette a <strong>di</strong>sposizione funzioni <strong>di</strong> base per la manipola-<br />

zione dei dati, il controllo delle transazioni ed il recupero dei dati dalla banca dati.<br />

Molti utenti, utilizzano <strong>in</strong>terfacce che nascondono coman<strong>di</strong> SQL semplificandone<br />

l’utilizzo. L’SQL viene esteso <strong>in</strong> Oracle <strong>in</strong> PL/SQL, un l<strong>in</strong>guaggio procedura-<br />

le comunemente usato per implementare moduli applicativi contenenti elementi<br />

logici <strong>di</strong> programmazione. PL/SQL può essere usato per costruire stored proce-<br />

dures e triggers, controlli <strong>in</strong> loop ed istruzioni con<strong>di</strong>zionali oltre ad una gestione<br />

degli errori. Le procedure PL/SQL possono essere compilate e memorizzate al-<br />

l’<strong>in</strong>terno del database. I blocchi PL/SQL sono eseguibili anche via SQL*Plus, uno<br />

strumento <strong>in</strong>terattivo fornito con tutte le versioni <strong>di</strong> Oracle.<br />

Con Oracle8isi è <strong>in</strong>trodotto l’uso <strong>di</strong> Java come l<strong>in</strong>guaggio procedurale appog-<br />

giato ad una JVM <strong>in</strong>terna al database (<strong>in</strong>izialmente chiamata JServer). [20]<br />

139


3.3. ORACLE9I Carlo Caligaris, Iacopo Salvarani<br />

3.3.3 Componenti <strong>di</strong> Connessione del Database<br />

La connessione tra il client ed il server del database è una componente chiave del-<br />

l’architettura globale <strong>di</strong> un sistema <strong>di</strong> computazione. La connessione al database<br />

è responsabile <strong>di</strong> tutte le comunicazioni tra una applicazione ed i dati che essa usa.<br />

Oracle <strong>in</strong>clude un numero <strong>di</strong> strumenti per stabilire e calibrare le connessioni al<br />

database.<br />

Gli utenti <strong>di</strong> Oracle si collegano al database tramite una connessione <strong>di</strong> rete.<br />

L’<strong>in</strong>terfaccia <strong>di</strong> rete utilizzata da Oracle è Oracle Net; questa può essere usata con<br />

una ampia varietà <strong>di</strong> protocolli <strong>di</strong> rete, tra cui il più utilizzato TCP/IP. Oracle Na-<br />

mes consente ai clients <strong>di</strong> collegarsi al server senza un file <strong>di</strong> configurazione per<br />

ogni utente. Questo consente <strong>di</strong> ridurre il carico del lavoro <strong>di</strong> manutenzione, dal<br />

momento che una mo<strong>di</strong>fica nella topologia della propria rete non richiede un cor-<br />

rispondente cambio nei files <strong>di</strong> configurazione su ogni macch<strong>in</strong>a client. La stessa<br />

funzione, ma con protocolli <strong>di</strong>versi da Oracle Net, è svolta da Oracle Internet<br />

Directory.<br />

Figura 3.5: Concentratori per un grande numero <strong>di</strong> utenti [20]<br />

Ogni connessione al database sfrutta le risorse <strong>di</strong> rete <strong>in</strong> modo <strong>in</strong>tensivo, al<br />

punto <strong>di</strong> poter <strong>in</strong>fluenzare le performance globali <strong>di</strong> una applicazione per databa-<br />

140


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

se. Il Connection Manager <strong>di</strong> Oracle (Figura 3.5) riduce il numero <strong>di</strong> connessioni<br />

<strong>di</strong> rete verso il database tramite l’utilizzo <strong>di</strong> concentratori che eseguono un mul-<br />

tiplex<strong>in</strong>g per implementare connessioni multiple su una s<strong>in</strong>gola connessione <strong>di</strong><br />

rete. Questa tecnica consente gran<strong>di</strong> benefici nel caso <strong>in</strong> cui molti utenti siano<br />

attivi contemporaneamente.<br />

Il Connection Manager consente anche <strong>di</strong> provvedere ad una connettività mul-<br />

tiprotocollo nel caso <strong>in</strong> cui client e server si servano <strong>di</strong> protocolli <strong>di</strong>fferenti. La<br />

connessione <strong>di</strong> rete è resa sicura tramite un meccanismo <strong>di</strong> criptatura dei dati. [20]<br />

3.3.4 Oracle9iApplication Server<br />

Il successo delle applicazioni via Internet o Intranet ha condotto ad uno sviluppo<br />

da una architettura <strong>di</strong> tipo client/server ad una che viene generalmente <strong>in</strong><strong>di</strong>cata<br />

con il term<strong>in</strong>e three tier (tre livelli).<br />

Il modello three-tier si struttura su tre livelli. Il primo livello, quello dei client<br />

che eseguono le richieste e gestiscono l’<strong>in</strong>terfaccia con l’utente, resta sostanzial-<br />

mente lo stesso del modello client-server, ma la parte server viene sud<strong>di</strong>visa <strong>in</strong><br />

due livelli, <strong>in</strong>troducendo un middle-tier, su cui deve appoggiarsi tutta la logica <strong>di</strong><br />

analisi delle richieste dei client per ottimizzare l’accesso al terzo livello, che si<br />

limita a fornire i dati <strong>di</strong>namici che verranno usati dalla logica implementata nel<br />

middle-tier per eseguire le operazioni richieste dai client. In questo modo si può<br />

<strong>di</strong>saccoppiare la logica dai dati, replicando la prima, che è molto meno soggetta<br />

a cambiamenti ed evoluzioni, e non soffre <strong>di</strong> problemi <strong>di</strong> s<strong>in</strong>cronizzazione, e cen-<br />

tralizzando opportunamente i secon<strong>di</strong>. In questo modo si può <strong>di</strong>stribuire il carico<br />

ed accedere <strong>in</strong> maniera efficiente i dati. [36]<br />

Oracle9iAS (Application Server) funziona da middle-tier. Nella Figura 3.6<br />

ve<strong>di</strong>amo le <strong>di</strong>verse tipiche connessioni che si possono avere tra un client ed un<br />

server <strong>in</strong> una architettura Oracle.<br />

141


3.3. ORACLE9I Carlo Caligaris, Iacopo Salvarani<br />

Figura 3.6: Tipiche connessioni <strong>di</strong> un database Oracle [20]<br />

3.3.5 Confronto con Altri RDBMS<br />

Esistono altri sistemi <strong>di</strong> gestione dei database forse ancora più famosi <strong>di</strong> Oracle:<br />

<strong>in</strong> particolare ci riferiamo a Microsoft Access e Microsoft SQL Server. MS Access<br />

non è un vero sistema <strong>di</strong> gestione <strong>di</strong> database relazionali. Fornisce effettivamen-<br />

te le funzioni <strong>di</strong> un database relazionale, dal momento che memorizza i dati <strong>in</strong><br />

tabelle relazionali, ma non è un sistema <strong>di</strong> gestione. Infatti ha una scarsa imple-<br />

mentazione dei concetti <strong>di</strong> transazioni multi-utente, <strong>di</strong> sicurezza multi-utente e<br />

<strong>di</strong> altre caratteristiche che def<strong>in</strong>iscono un gestore <strong>di</strong> database. D’altra parte MS<br />

Access è stato progettato dall’<strong>in</strong>izio come un database per un s<strong>in</strong>golo utente. [35]<br />

SQL Server 2000 lavora solo su piattaforme W<strong>in</strong>dows mentre Oracle lavora<br />

anche su piattaforme alternative come Unix L<strong>in</strong>ux Intel e Sun Solaris. È molto <strong>di</strong>f-<br />

ficile fare un confronto <strong>di</strong> performance tra SQL Server 2000 ed Oracle 9i. Questa<br />

caratteristica viene <strong>in</strong>fluenzata da fattori fortemente <strong>di</strong>pendenti dall’esperienza <strong>di</strong><br />

chi sviluppa ed amm<strong>in</strong>istra il database. A parità <strong>di</strong> piattaforma, SQL Server 2000<br />

può vantare un valore del TPC-C più alto, mentre Oracle si rende preferibile sul-<br />

le piattaforme alternative. Il TPC (Transaction Process<strong>in</strong>g Performance Council)<br />

è una organizzazione che determ<strong>in</strong>a le transazioni tipiche utilizzate <strong>in</strong> sistemi <strong>di</strong><br />

controllo <strong>di</strong> <strong>in</strong>ventario, sistemi <strong>di</strong> prenotazione nelle l<strong>in</strong>ee aeree e sistemi bancari<br />

ed alcune regole generali che queste transazioni dovrebbero sod<strong>di</strong>sfare. Lo scopo<br />

142


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

è produrre benchmarks che misur<strong>in</strong>o le performance <strong>di</strong> un database nel processare<br />

transazioni <strong>in</strong> una certa unità <strong>di</strong> tempo. Il TPC-C è il più popolare tra questi valori<br />

<strong>di</strong> confronto. [8]<br />

143


3.4. SQL Carlo Caligaris, Iacopo Salvarani<br />

3.4 SQL<br />

3.4.1 Introduzione ad SQL<br />

SQL è il l<strong>in</strong>guaggio <strong>di</strong> riferimento per le basi <strong>di</strong> dati relazionali. Il nome SQL<br />

<strong>in</strong>izialmente rappresentava l’acronimo <strong>di</strong> Structured Query Language, ma lo stan-<br />

dard specifica ora che SQL deve essere considerato come un nome proprio. SQL<br />

è ben più <strong>di</strong> un l<strong>in</strong>guaggio per scrivere <strong>in</strong>terrogazioni. Contiene, <strong>in</strong>fatti, al suo<br />

<strong>in</strong>terno, sia le funzionalità <strong>di</strong> un Data Def<strong>in</strong>ition Language sia quelle <strong>di</strong> un Data<br />

Manipulation Language. [3]<br />

3.4.2 Standar<strong>di</strong>zzazione dell’SQL<br />

La <strong>di</strong>ffusione <strong>di</strong> SQL è dovuta <strong>in</strong> buona parte alla <strong>in</strong>tensa opera <strong>di</strong> standar<strong>di</strong>zza-<br />

zione de<strong>di</strong>cata a questo l<strong>in</strong>guaggio, svolta pr<strong>in</strong>cipalmente nell’ambito degli orga-<br />

nismi ANSI (American National Standards Institute, l’organismo nazionale sta-<br />

tunitense degli standard) ed ISO (l’organismo <strong>in</strong>ternazionale che coor<strong>di</strong>na i vari<br />

organismi nazionali). Gran parte dei produttori del settore hanno avuto modo<br />

<strong>di</strong> partecipare al processo decisionale. Il processo <strong>di</strong> standar<strong>di</strong>zzazione ha avu-<br />

to <strong>in</strong>izio nella prima metà degli anni Ottanta e cont<strong>in</strong>ua tuttora. Sono state così<br />

prodotte nel tempo <strong>di</strong>verse versioni, sempre più complesse e sofisticate, dello stan-<br />

dard del l<strong>in</strong>guaggio. La prima def<strong>in</strong>izione <strong>di</strong> uno standard per il l<strong>in</strong>guaggio SQL<br />

è stata emanata nel 1986 dall’ANSI. Questo primo standard possedeva già gran<br />

parte delle primitive <strong>di</strong> formulazione <strong>di</strong> <strong>in</strong>terrogazioni, mentre offriva un suppor-<br />

to limitato per la def<strong>in</strong>izione e manipolazione degli schemi e delle istanze. Sono<br />

state poi sviluppare versioni successive come SQL-92 ed SQL:1999; quest’ultimo<br />

è un l<strong>in</strong>guaggio estremamente complesso ed è molto <strong>di</strong>fficile trovare un sistema<br />

commerciale che metta a <strong>di</strong>sposizione tutte le funzionalità previste dal l<strong>in</strong>guaggio.<br />

Analizzando con cura i sistemi relazionali, si osserva che ciascuno <strong>di</strong> essi<br />

offre <strong>in</strong> effetti piccole <strong>di</strong>fferenze nella implementazione del l<strong>in</strong>guaggio SQL; le<br />

<strong>di</strong>fferenze emergono soprattutto quando si conforntano fra <strong>di</strong> loro le funzionalità<br />

<strong>in</strong>novative. Invece, per quanto riguarda gli aspetti più consolidati del l<strong>in</strong>guaggio,<br />

144


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

l’adesione allo standard è maggiore e questo permette agli utenti <strong>di</strong> <strong>di</strong>alogare <strong>in</strong><br />

SQL standard con sistemi completamente <strong>di</strong>versi, come possono essere l’imple-<br />

mentazione <strong>di</strong> un DBMS per un personal computer monoutente ed una base <strong>di</strong><br />

dati su ma<strong>in</strong>frame su cui si appoggia il sistema <strong>in</strong>formativo <strong>di</strong> una grossa azienda.<br />

[3]<br />

In questo contesto non scriveremo nulla sui coman<strong>di</strong> dell’SQL, ma solo <strong>in</strong>for-<br />

mazioni <strong>di</strong> alto livello riguardanti questo l<strong>in</strong>guaggio.<br />

3.4.3 Interrogazioni <strong>in</strong> SQL<br />

La parte <strong>di</strong> SQL de<strong>di</strong>cata alla formulazione <strong>di</strong> <strong>in</strong>terrogazioni fa parte del DML.<br />

SQL esprime le <strong>in</strong>terrogazioni <strong>in</strong> modo <strong>di</strong>chiarativo, ovvero si specifica l’obietti-<br />

vo dell’<strong>in</strong>terrogazione e non il modo <strong>in</strong> cui ottenerlo. In ciò SQL segue i pr<strong>in</strong>cipi<br />

del calcolo relazionale e si contrappone a l<strong>in</strong>guaggi <strong>di</strong> <strong>in</strong>terrogazione procedurali,<br />

come l’algebra relazionale, <strong>in</strong> cui l’<strong>in</strong>terrogazione specifica i passi da compiere<br />

per estrarre le <strong>in</strong>formazioni dalla base <strong>di</strong> dati. L’<strong>in</strong>terrogazione SQL per essere<br />

eseguita viene passata all’ottimizzatore <strong>di</strong> query (query optimizer), un compo-<br />

nente del DBMS il quale analizza l’<strong>in</strong>terrogazione e formula a partire da questa<br />

un’<strong>in</strong>terrogazione equivalente nel l<strong>in</strong>guaggio procedurale <strong>in</strong>terno del sistema <strong>di</strong><br />

gestione <strong>di</strong> basi <strong>di</strong> dati. Questo l<strong>in</strong>guaggio procedurale è nascosto all’utente. Per<br />

questo, chiunque scriva <strong>in</strong>terrogazioni <strong>in</strong> SQL può trascurare gli aspetti <strong>di</strong> tradu-<br />

zione ed ottimizzazione. Il grande sforzo de<strong>di</strong>cato allo sviluppo <strong>di</strong> tecniche <strong>di</strong><br />

ottimizzazione ha permesso <strong>di</strong> costruire strumenti che sono <strong>in</strong> grado <strong>di</strong> produrre<br />

traduzioni molto efficienti per la maggior parte dei DBMS relazionali.<br />

Esistono <strong>in</strong> generale molti mo<strong>di</strong> <strong>di</strong>versi per esprimere la stessa <strong>in</strong>terrogazione<br />

<strong>in</strong> SQL: il programmatore dovrà effettuare una scelta basandosi non sull’efficien-<br />

za, bensì su caratteristiche come la leggibilità e la mo<strong>di</strong>ficabilità dell’<strong>in</strong>terrogazio-<br />

ne. SQL agevola così il lavoro del programmatore permettendogli <strong>di</strong> descrivere le<br />

<strong>in</strong>terrogazioni <strong>in</strong> un modo astratto e <strong>di</strong> alto livello.<br />

145


3.5. JDBC Carlo Caligaris, Iacopo Salvarani<br />

3.5 JDBC<br />

3.5.1 Cosa Significa JDBC?<br />

JDBC (Java DataBase Connectivity è una <strong>in</strong>terfaccia standard per connettere Java<br />

con i databases relazionali. Lo standard JDBC è stato def<strong>in</strong>ito da Sun Microsy-<br />

stems con la possibilità per tutti gli utilizzatori <strong>in</strong><strong>di</strong>viduali <strong>di</strong> implementare ed<br />

estendere lo standard con i propri drivers JDBC. Si può usare JDBC per eseguire<br />

queries ed updates su tabelle dove, per esempio, il numero ed il tipo <strong>di</strong> colonne<br />

non sono noti f<strong>in</strong>o al runtime. Questa possibilità si chiama SQL <strong>di</strong>namico. JDBC<br />

consente <strong>di</strong> utilizzare istruzioni <strong>di</strong> SQL <strong>di</strong>namico <strong>in</strong> programmi Java. Eviden-<br />

temente, non ci sono analisi o controlli delle istruzioni SQL: se queste fossero<br />

sbagliate causerebbero errori durante il runtime. [47]<br />

Nel software da noi progettato viene spesso utilizzata questa proprietà <strong>di</strong> JDBC:<br />

ad esempio, uno dei nostri programmi genera a runtime una query <strong>in</strong> cui si richiede<br />

una data <strong>di</strong>pendente dall’istante <strong>di</strong> lancio del programma.<br />

JDBC fornisce un <strong>in</strong>sieme <strong>di</strong> classi <strong>di</strong> alto livello che consentono a chiunque<br />

conosca SQL e Java <strong>di</strong> scrivere applicazioni operanti su database. Componenti <strong>di</strong><br />

network<strong>in</strong>g e protocolli del database sono trasparenti al programmatore dell’appli-<br />

cazione; questi sono gestiti da classi <strong>in</strong>terne ai drivers JDBC. Le specifiche JDBC<br />

sono concordate all’<strong>in</strong>terno della comunità Java ed ogni concessionario <strong>di</strong> databa-<br />

se deve provvedere ad implementare queste funzioni per rendere il suo prodotto<br />

fruibile dagli utenti. [40]<br />

3.5.2 Gli Oracle JDBC Drivers<br />

Oracle fornisce 4 <strong>di</strong>versi JDBC drivers.<br />

JDBC Th<strong>in</strong> Driver<br />

Il JDBC Oracle Th<strong>in</strong>d Driver è un driver al 100% puro Java e qu<strong>in</strong><strong>di</strong> è totalmente<br />

<strong>in</strong><strong>di</strong>pendente dalla piattaforma su cui viene utilizzato. Non richiede alcuna com-<br />

ponente software lato client aggiuntiva oltre al client <strong>di</strong> Oracle e comunica con il<br />

146


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

server utilizzando TTC, un protocollo sviluppato da Oracle per accedere all’Oracle<br />

RDBMS (Relational DataBase Management System).<br />

JDBC OCI Driver<br />

Questo driver deve essere utilizzato per applicazioni Java lato client, richiede l’<strong>in</strong>-<br />

stallazione del client <strong>di</strong> Oracle e <strong>di</strong>pende dalla piattaforma Oracle su cui deve<br />

funzionare. Questo driver è scritto con una comb<strong>in</strong>azione <strong>di</strong> Java e C e converte le<br />

richieste JDBC <strong>in</strong> chiamate all’Oracle Call Interface (OCI) usando meto<strong>di</strong> nativi<br />

per chiamare punti <strong>di</strong> accesso <strong>in</strong> C. Queste chiamate sono spe<strong>di</strong>te attraverso la<br />

Oracle Net f<strong>in</strong>o al server.<br />

OCI è una Application Programm<strong>in</strong>g Interface (API) che consente <strong>di</strong> creare<br />

applicazioni che utilizzano procedure native o chiamate <strong>di</strong> funzioni <strong>di</strong> un l<strong>in</strong>guag-<br />

gio <strong>di</strong> terza generazione per accedere al server <strong>di</strong> un database <strong>di</strong> Oracle e control-<br />

lare tutte le fasi <strong>di</strong> esecuzione <strong>di</strong> una istruzione SQL. Il driver OCI è progettato<br />

per costruire applicazioni <strong>in</strong> grado <strong>di</strong> sostenere un grande numero <strong>di</strong> utenti <strong>in</strong><br />

sicurezza.<br />

JDBC Server-Side Th<strong>in</strong> Driver<br />

Questo driver le stesse funzionalità dell’omonima versione client-side ma lavora<br />

all’<strong>in</strong>terno <strong>di</strong> una base <strong>di</strong> dati Oracle ed accede ad un database remoto. Questo<br />

consente anche <strong>di</strong> accedere ad un server dall’<strong>in</strong>terno <strong>di</strong> un altro. Questo driver<br />

può essere usato <strong>in</strong><strong>di</strong>fferentemente dal server e dal client.<br />

JDBC Server-Side Internal Driver<br />

Il driver <strong>in</strong>terno Oracle JDBC server-side supporta ogni tipo <strong>di</strong> co<strong>di</strong>ce Java che<br />

funzioni dall’<strong>in</strong>terno <strong>di</strong> un database, come ad esempio <strong>in</strong> una stored procedure, e<br />

debba accedere al database stesso. Questo driver consente alla JVM <strong>di</strong> comunicare<br />

<strong>di</strong>rettamente con il motore SQL.<br />

147


3.5. JDBC Carlo Caligaris, Iacopo Salvarani<br />

3.5.3 La Connessione da Java ad Oracle<br />

Nei nostro lavoro abbiamo utilizzato molto spesso la possibilità <strong>di</strong> connessione al<br />

database Oracle e lo abbiamo fatto usando il th<strong>in</strong> driver; riportiamo si seguito un<br />

esempio della procedura seguita.<br />

Estratto 3.1<br />

. . . .<br />

C o n n e c t i o n c =<br />

. . . .<br />

c o n n e c t ( ” o r a c l e . j d b c . d r i v e r . O r a c l e D r i v e r ” ,<br />

” j d b c : o r a c l e : t h i n : @SchemaName : 1 5 2 1 :DBName” ,<br />

” . . . . ” ,<br />

” . . . . ” ) ;<br />

p u b l i c s t a t i c C o n n e c t i o n c o n n e c t ( S t r i n g DbDriver ,<br />

S t r i n g dbURL ,<br />

S t r i n g dbUser ,<br />

S t r i n g dbPwd )<br />

{<br />

throws ClassNotFoundException ,<br />

SQLException<br />

C l a s s . forName ( DbDriver ) ;<br />

C o n n e c t i o n dbCon=n u l l ;<br />

dbCon =<br />

DriverManager . g e t C o n n e c t i o n (<br />

r e t u r n dbCon ;<br />

}<br />

dbURL , dbUser , dbPwd ) ;<br />

148


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

3.6 XML<br />

Nel corso del nostro lavoro, abbiamo spesso <strong>in</strong>contrato la necessità <strong>di</strong> comuni-<br />

care dati da un programma ad un altro. Per questo, abbiamo scritto questi dati<br />

migranti su files XML, un l<strong>in</strong>guaggio universalmente accettato per lo scambio <strong>di</strong><br />

<strong>in</strong>formazioni.<br />

3.6.1 Introduzione ad XML<br />

Apparentemente, l’XML (eXtensible Markup Language) sembra soltanto un altro<br />

formato per la serializzazione dei dati, simile a tanti altri formati con i quali si è<br />

lavorato <strong>in</strong> passato. Il suo successo non è però legato solamente alla sua sempli-<br />

cità, ma soprattutto alla sua estensibilità e flessibilità. XML è <strong>in</strong>fatti basato sui<br />

concetti <strong>di</strong> apertura e libertà. In term<strong>in</strong>i <strong>di</strong> libertà, esso non obbliga ad utilizzare<br />

una particolare API o uno specifico modello <strong>di</strong> documento (anche se esistono rac-<br />

comandazioni a riguardo), e qu<strong>in</strong><strong>di</strong> gli sviluppatori sono liberi <strong>di</strong> decidere come<br />

meglio programmare documenti XML all’<strong>in</strong>terno del loro sistema. In un mon-<br />

do dove lo scambio <strong>di</strong> <strong>in</strong>formazioni tra applicazioni eterogenee sta <strong>di</strong>ventando<br />

una caratteristica sempre più comune, lo sviluppatore può utilizzare l’XML co-<br />

me uno standard de facto che rende possibile attraversare i conf<strong>in</strong>i solitamente<br />

rappresentati dal sistema su cui si sta lavorando.<br />

La storia dell’XML ha le sue ra<strong>di</strong>ci nei primi anni Sessanta quando vennero<br />

<strong>in</strong>trodotti i l<strong>in</strong>guaggi con marcatori, come l’HTML. F<strong>in</strong> dall’<strong>in</strong>izio della storia del-<br />

l’<strong>in</strong>formatica, gli sviluppatori sono stati sempre alla ricerca del miglior modo per<br />

strutturare le <strong>in</strong>formazioni. Praticamente ogni applicazione(da quelle <strong>di</strong> gestione<br />

database, ai word processor, ai software <strong>in</strong>gegneristici) hanno utilizzato dei for-<br />

mati b<strong>in</strong>ari personalizzati per strutturare le <strong>in</strong>formazioni <strong>di</strong> cui avevamo bisogno.<br />

A causa <strong>di</strong> ciò, le <strong>in</strong>formazioni generate da un’applicazione non potevano essere<br />

utilizzate da un’altra applicazione senza prima venire trasformate. Nei primi anni<br />

Sessanta, ai tempi delle telescriventi e delle macch<strong>in</strong>e da scrivere, quando si vo-<br />

levano effettuare delle correzioni ai testi prodotti dai primi elaboratori, venivano<br />

utilizzati degli speciali simboli, chiamati marcatori, che apposti sui fogli prodotti<br />

149


3.6. XML Carlo Caligaris, Iacopo Salvarani<br />

dalle stampanti, servivano, appunto, a marcare le <strong>in</strong><strong>di</strong>cazioni su come formatta-<br />

re una specifica riga, una parola o un paragrafo. Il gruppo <strong>di</strong> simboli utilizzati<br />

<strong>di</strong>venne molto presto famoso come markup language. A quei tempi, c’erano fon-<br />

damentalmente due tipi <strong>di</strong> l<strong>in</strong>guaggi, quelli specifici per le <strong>in</strong><strong>di</strong>cazioni sul layout<br />

e quelli generici per l’<strong>in</strong><strong>di</strong>cazione sulla struttura del documento. A questo pro-<br />

posito, il formato RTF (Rich Text Format) è un moderno esempio <strong>di</strong> specifiche <strong>di</strong><br />

formattazione. Al contrario dei l<strong>in</strong>guaggi specifici per la formattazione dei testi,<br />

i l<strong>in</strong>guaggi <strong>di</strong> markup generici non si occupano dei dettagli della formattazione<br />

quanto della struttura del documento (resta <strong>in</strong>teso che per ottenerne una specifica<br />

rappresentazione questi dati dovranno essere trasformati). Ciò fa sì che la struttu-<br />

ra del documento possa essere co<strong>di</strong>ficata <strong>in</strong> un formato che ne facilita lo scambio<br />

tra i computer. Questa scoperta aprì la strada al successo dei l<strong>in</strong>guaggi <strong>di</strong> markup<br />

generici che ebbe, appunto, <strong>in</strong>izio nel corso degli anni Sessanta. [12]<br />

3.6.2 HTML<br />

L’HTML è un markup language che fu <strong>in</strong>izialmente sviluppato da uno stu<strong>di</strong>oso<br />

del CERN ed offre uno specifico vocabolario <strong>di</strong> marcatori per formattare, strut-<br />

turare, ma soprattutto collegare tra loro i documenti. La possibilità <strong>di</strong> effettuare<br />

l<strong>in</strong>k tra i documenti ha permesso la creazione <strong>di</strong> una rete <strong>di</strong> documenti collegati<br />

tra loro <strong>in</strong> grado <strong>di</strong> sfruttare il potenziale <strong>di</strong> Internet. Nacque così il World Wide<br />

Web (WWW). Furono velocemente sviluppati software <strong>in</strong> grado <strong>di</strong> visualizzare ed<br />

elaborare documenti HTML (i cosiddetti browser), e a partire dal 1993, anno del-<br />

la comparsa <strong>di</strong> Mosaic (il primo browser sviluppato dall’NCSA) l’<strong>in</strong>teresse per il<br />

WWW <strong>in</strong>iziò ad esplodere. Grazie alla sua semplicità, l’HTML fu universalmen-<br />

te adottato ed un grande numero <strong>di</strong> pag<strong>in</strong>e web <strong>in</strong>iziarono ad essere <strong>di</strong>sponibili<br />

tanto che a tutt’oggi il formato HTML è quello più usato al mondo. Il comitato<br />

W3C (World Wide Web Consortium) nato nel 1994 al MIT/CERN sviluppa e rac-<br />

comanda tutte le specifiche dell’HTML per favorirne e governarne l’evoluzione e<br />

lo sviluppo. Il vocabolario implementato dall’HTML è tuttavia limitato alla for-<br />

mattazione ed al collegamento <strong>di</strong> documenti e per questo motivo non può essere<br />

utilizzato al <strong>di</strong> fuori dell’ambito dei browser web.<br />

150


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

L’XML fu proposto al W3C nel 1996 da Jon Bosak, che a quei tempi lavorava<br />

<strong>in</strong> Sun, e che è considerato il padre <strong>di</strong> questo l<strong>in</strong>guaggio. La s<strong>in</strong>tassi consen-<br />

te <strong>di</strong> sviluppare un vocabolario <strong>di</strong> marcatori personalizzati. Oggi XML è usato<br />

<strong>in</strong> una vasta gamma <strong>di</strong> applicazioni <strong>di</strong>stribuite che richiedono un alto livello <strong>di</strong><br />

<strong>in</strong>teroperabilità. [12]<br />

3.6.3 Che Cosa È l’XML<br />

L’XML è un metal<strong>in</strong>guaggio che permette <strong>di</strong> creare l<strong>in</strong>guaggi <strong>di</strong> marcatura per-<br />

sonalizzati per l’<strong>in</strong>terscambio <strong>di</strong> dati tra siti web ed applicazioni, anche basati<br />

su sistemi <strong>di</strong>fferenti. XML usa dei marcatori per def<strong>in</strong>ire la struttura delle <strong>in</strong>for-<br />

mazioni (elementi): l’eventuale aggiunta <strong>di</strong> metadati (attributi) può ulteriormente<br />

def<strong>in</strong>ire le specifiche delle <strong>in</strong>formazioni stesse. [12]<br />

Figura 3.7: Un esempio <strong>di</strong> file XML da noi utilizzato<br />

3.6.4 Lo Stack <strong>di</strong> Protocolli XML<br />

F<strong>in</strong>o a pochi anni fa i programmatori che parlavano <strong>di</strong> XML si riferivano alle<br />

specifiche XML 1.0. Oggi, XML è composto da più parti rispetto alla specifica<br />

nata nel 1998 e quando i programmatori si riferiscono ad esso, <strong>in</strong>tendono l’<strong>in</strong>tera<br />

famiglia <strong>di</strong> specifiche. Queste vengono considerate come se fossero degli strati<br />

151


3.6. XML Carlo Caligaris, Iacopo Salvarani<br />

Astratto Classi ed oggetti Specifico dell’applicazione<br />

Tipi ed istanze XML Schema<br />

Voci strutturali XML Information Set<br />

Elementi ad attributi XML 1.0 + Namespace<br />

Entità e documenti XML 1.0<br />

Files e pacchetti Specifico dell’OS e del protocollo<br />

Concreto Settori e streams <strong>di</strong> dati Specifico dell’hardware<br />

Tabella 3.1: Lo stack <strong>di</strong> protocolli XML<br />

(layers) sovrapposti, dato che le specifiche più recenti sono def<strong>in</strong>ite <strong>in</strong> term<strong>in</strong>i <strong>di</strong><br />

specifiche precedenti. Questo meccanismo è simile allo stack <strong>di</strong> protocolli <strong>di</strong> rete<br />

(ad esempio il TCP/IP) progettato <strong>in</strong> term<strong>in</strong>i <strong>di</strong> strati isolati tra loro.<br />

Al pari dei protocolli <strong>di</strong> rete, il protocollo XML ha sette <strong>di</strong>st<strong>in</strong>ti livelli. I<br />

due strati <strong>di</strong> livello più alto def<strong>in</strong>iscono il sistema dei tipi XML nei term<strong>in</strong>i <strong>di</strong><br />

modello <strong>di</strong> dati astratto sottostante; essi def<strong>in</strong>iscono <strong>in</strong>oltre <strong>in</strong> che modo le classi<br />

e gli oggetti specifici dell’applicazione debbano essere mappati nei tipi XML. Lo<br />

strato chiamato Infoset def<strong>in</strong>isce l’XML <strong>in</strong> term<strong>in</strong>i <strong>di</strong> un modello <strong>di</strong> dati astratto<br />

che focalizza l’attenzione sulla strutturazione logica <strong>di</strong> un documento XML. In<br />

altre parole, l’Infoset non si occupa <strong>di</strong> come debbano essere serializzati i dati<br />

per modellare un documento XML logico. XML 1.0 ed i namespace servono a<br />

def<strong>in</strong>ire i documenti XML <strong>in</strong> term<strong>in</strong>i <strong>di</strong> elementi ed attributi. Lo strato successivo,<br />

def<strong>in</strong>ito come XML 1.0, stabilisce come sono costituiti fisicamente i documenti<br />

XML da entità come files e pacchetti. Il sistema operativo ed i protocolli <strong>di</strong> rete<br />

rappresentano lo strato successivo <strong>in</strong> quanto offrono l’astrazione (<strong>in</strong> term<strong>in</strong>i <strong>di</strong><br />

files e pacchetti) che <strong>in</strong>capsula la complessità relativa all’<strong>in</strong>terfacciamento con i<br />

<strong>di</strong>spositivi hardware. Il livello hardware non è altro che un <strong>in</strong>sieme <strong>di</strong> settori e<br />

flussi <strong>di</strong> dati. [12]<br />

152


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

3.6.5 Specifiche XML<br />

XML 1.0 + Namespace<br />

Una delle gran<strong>di</strong> potenzialità del l<strong>in</strong>guaggio XML è la possibilità <strong>di</strong> leggere e<br />

scrivere XML da qualsiasi piattaforma. Per ottenere questo risultato, però, si deve<br />

costruire il documento XML seguendo una s<strong>in</strong>tassi ben def<strong>in</strong>ita da due specifiche:<br />

XML 1.0 ed i namespaces. Entrambe si occupano della rappresentazione lessicale<br />

e b<strong>in</strong>aria delle <strong>in</strong>formazioni <strong>in</strong> un documento XML.<br />

In maniera particolare esse hanno a che fare con:<br />

• la s<strong>in</strong>tassi per l’assegnazione dei nomi degli elementi e degli attributi;<br />

• la s<strong>in</strong>tassi per la strutturazione delle <strong>in</strong>formazioni utilizzando gli elementi e<br />

gli attributi;<br />

• la s<strong>in</strong>tassi per altri costrutti dell’XML come <strong>di</strong>rettive <strong>di</strong> elaborazione, com-<br />

menti, etc.;<br />

• le modalità <strong>di</strong> composizione <strong>di</strong> documenti logici da entità fisiche;<br />

• il set <strong>di</strong> caratteri usato nel documento;<br />

• l’utilizzo <strong>di</strong> co<strong>di</strong>fiche <strong>di</strong>fferenti <strong>in</strong> fase <strong>di</strong> serializzazione;<br />

• l’associazione al documento <strong>di</strong> risorse b<strong>in</strong>arie come immag<strong>in</strong>i, files au<strong>di</strong>o<br />

Infoset<br />

ed altro.<br />

L’Infoset def<strong>in</strong>isce il modello astratto dei dati e rappresenta il vero cuore del-<br />

l’XML. Esso co<strong>di</strong>fica il modello <strong>di</strong> dati astratto dell’XML, che altre specifiche<br />

possono utilizzare per costruire documenti ben formati (well formed) e def<strong>in</strong>isce i<br />

<strong>di</strong>fferenti costrutti che servono per creare un documento XML e le relazioni tra <strong>di</strong><br />

essi. Per esempio, l’Infoset stabilisce che ogni documento deve contenere al suo<br />

<strong>in</strong>terno le <strong>in</strong>formazioni sotto forma <strong>di</strong> un s<strong>in</strong>golo elemento figlio. Questo, a sua<br />

volta, può avere zero o più figli or<strong>di</strong>nati (anche <strong>di</strong> tipo <strong>di</strong>verso) ed un <strong>in</strong>sieme <strong>di</strong><br />

153


3.6. XML Carlo Caligaris, Iacopo Salvarani<br />

attributi non or<strong>di</strong>nati. L’Infoset stabilisce <strong>in</strong>oltre che ogni elemento ed attributo<br />

debbano contenere due parti <strong>di</strong> <strong>in</strong>formazione: il nome locale ed il namespace URI.<br />

Nell’Infoset non c’è nulla che abbia a che fare con la s<strong>in</strong>tassi XML o con i dettagli<br />

della serializzazione, <strong>in</strong> quanto esso è completamente astratto. Infatti, XML 1.0 +<br />

Namespace è solo uno dei possibili formati <strong>di</strong> serializzazione dell’Infoset. [12]<br />

3.6.6 Le Interfacce <strong>di</strong> Programmazione<br />

Uno dei motivi <strong>di</strong> successo dell’XML è costituito dal fatto che non obbliga il<br />

programmatore ad utilizzare una specifica <strong>in</strong>terfaccia <strong>di</strong> programmazione. Nel<br />

corso degli anni sono state sviluppate numerose API, che si sono avvicendate nel<br />

panorama della programmazione dell’Infoset dell’XML, ma allo stato attuale due<br />

sono le più comuni, quella che offre una vista a cursore e quella che fornisce una<br />

vista del documento nella sua <strong>in</strong>terezza.<br />

Interfaccia per lo Stream<strong>in</strong>g dell’Infoset (parser)<br />

L’analisi (pars<strong>in</strong>g) <strong>di</strong> un file XML <strong>in</strong> modalità a cursore, sia <strong>in</strong> lettura che <strong>in</strong> scrit-<br />

tura, viene offerta da una <strong>in</strong>terfaccia <strong>di</strong> stream<strong>in</strong>g per l’Infoset. È bene sottol<strong>in</strong>eare<br />

che allo stato attuale non esiste uno standard che supporti nessuna delle modalità<br />

<strong>di</strong> stream<strong>in</strong>g e qu<strong>in</strong><strong>di</strong> ogni produttore si è creato la sua particolare implementazio-<br />

ne. L’implementazione dell’<strong>in</strong>terfaccia <strong>di</strong> stream<strong>in</strong>g si <strong>di</strong>vide fondamentalmente<br />

<strong>in</strong> due metodologie ben <strong>di</strong>st<strong>in</strong>te: pull pars<strong>in</strong>g e push pars<strong>in</strong>g.<br />

In un pull parser è il co<strong>di</strong>ce dell’applicazione che esplicitamente riceve gli<br />

eventi dal parser. Solitamente è presente un ciclo nel quale il co<strong>di</strong>ce richiede<br />

l’evento successivo dal parser. Poiché è l’applicazione che controlla il parser, si<br />

possono scrivere programmi nei quali vengono gestiti specifici eventi e magari<br />

completamente ignorati altri, che non sono <strong>di</strong> <strong>in</strong>teresse per l’applicazione.<br />

In un push parser gli eventi vengono sp<strong>in</strong>ti verso il client. Tipicamente, un<br />

parser <strong>di</strong> tipo push richiede che l’applicazione registri un metodo <strong>di</strong> gestione per<br />

ciascun evento. Durante la lettura del file da parte del parser, per ogni evento viene<br />

154


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

richiamato il metodo appropriato ed il controllo rimane al parser f<strong>in</strong>o al term<strong>in</strong>e<br />

della lettura del documento.<br />

Interfaccia per la Navigazione dell’Infoset (DOM)<br />

Spesso si ha bisogno <strong>di</strong> leggere (o scrivere) un file XML <strong>in</strong> maniera non sequen-<br />

ziale, e si potrebbe avere la necessità, per esempio, <strong>di</strong> <strong>in</strong>vertire l’or<strong>di</strong>ne degli ele-<br />

menti. Il DOM (Document Object Model) è una <strong>in</strong>terfaccia per la manipolazione<br />

dei contenuti e della struttura <strong>di</strong> un file XML <strong>in</strong> modalità object-oriented. Esso<br />

def<strong>in</strong>isce un modo standard per la manipolazione <strong>di</strong> documenti XML con opera-<br />

zioni accesso agli elementi, l’applicazione <strong>di</strong> stili, il caricamento <strong>in</strong> memoria, il<br />

salvataggio su <strong>di</strong>sco ed altro ancora.<br />

Il DOM rappresenta il documento XML come un albero <strong>di</strong> oggetti. Ogni og-<br />

getto nell’albero è chiamato nodo. Esistono vari tipi <strong>di</strong> nodo che rispecchiano<br />

praticamente tutte le componenti <strong>di</strong> cui è costituito un documento XML, tra cui<br />

Document, Element, Attr. Alcuni no<strong>di</strong> possono avere un sottonodo ed è possibile<br />

anche specificare il tipo dello stesso.<br />

Il DOM è <strong>in</strong><strong>di</strong>pendente dal l<strong>in</strong>guaggio e dalla piattaforma utilizzata, il che<br />

significa che può essere utilizzato con qualsiasi l<strong>in</strong>guaggio o framework o sistema<br />

operativo ed esiste praticamente un’implementazione <strong>di</strong> DOM <strong>in</strong> ogni l<strong>in</strong>guaggio<br />

<strong>di</strong> programmazione.<br />

Essendo un’API molto potente, DOM appare come la scelta preferenziale da<br />

applicare <strong>in</strong> qualsiasi scenario, ma <strong>in</strong> realtà non è detto che sia sempre la scelta<br />

migliore. Infatti, quando un’applicazione deve lavorare con documenti <strong>di</strong> grosse<br />

<strong>di</strong>mensioni, il sovraccarico dovuto all’implementazione del modello DOM può<br />

essere un grosso problema e la modalità pars<strong>in</strong>g <strong>di</strong>venta un’alternativa molto <strong>in</strong>-<br />

teressante. Grazie alla sua caratteristica <strong>di</strong> cursore, viene letto un solo nodo per<br />

volta e, soprattutto nel modello pull, non si è nemmeno costretti a prenderlo <strong>in</strong><br />

considerazione se rappresenta un nodo non rilevante per l’applicazione. È anche<br />

<strong>in</strong>teressante notare che quasi tutte le implementazioni <strong>di</strong> DOM utilizzano le classi<br />

<strong>di</strong> pars<strong>in</strong>g per il caricamento e la scrittura dei file da/verso il <strong>di</strong>sco. [12]<br />

155


3.6. XML Carlo Caligaris, Iacopo Salvarani<br />

Figura 3.8: La Struttura ad Albero Tipica dell’XML [51]<br />

3.6.7 Altre Specifiche XML<br />

Esistono altre specifiche collaterali che vengono fornite allo sviluppatore tutta una<br />

serie <strong>di</strong> funzionalità <strong>di</strong> elaborazione e gestione del file stesso.<br />

XML Path<br />

XPath def<strong>in</strong>isce una s<strong>in</strong>tassi uniforme per identificare sotto<strong>in</strong>siemi dell’Infoset.<br />

XML Path def<strong>in</strong>isce un l<strong>in</strong>guaggio basato su percorsi collegato alle relazioni <strong>di</strong> pa-<br />

rentela che <strong>in</strong>tercorrono tra i no<strong>di</strong> dell’albero che è la rappresentazione <strong>in</strong> memoria<br />

del documento XML.<br />

XML Schema<br />

Un XML Schema def<strong>in</strong>isce i tipi <strong>di</strong> dato per una specifica applicazione nei term<strong>in</strong>i<br />

dell’Infoset. Una problematica collegata ai l<strong>in</strong>guaggi <strong>di</strong> markup è quella della<br />

156


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

validazione <strong>di</strong> un documento, e cioè la verifica che gli elementi e gli attributi<br />

<strong>in</strong> esso contenuti rispett<strong>in</strong>o determ<strong>in</strong>ati requisiti, stabiliti dall’applicazione. In<br />

questo senso, ad un documento XML è possibile associare un file DTD, che serve<br />

a descriverne la struttura <strong>in</strong> term<strong>in</strong>i <strong>di</strong> nome e posizione <strong>di</strong> elementi ed attributi.<br />

[12]<br />

157


3.6. XML Carlo Caligaris, Iacopo Salvarani<br />

Attributo<br />

Testo<br />

Commenti<br />

Nodo ra<strong>di</strong>ce<br />

Documento<br />

Elemento<br />

Elemento<br />

Istruzioni <strong>di</strong> elaborazione<br />

Elemento Elemento Elemento<br />

Attributo<br />

Testo<br />

Attributo<br />

Testo<br />

Figura 3.9: La Struttura <strong>di</strong> un file XML [12]<br />

158<br />

Elemento


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

3.6.8 Java ed XML<br />

Il l<strong>in</strong>guaggio Java consente <strong>di</strong> <strong>in</strong>teragire con XML tramite librerie create apposita-<br />

mente. Nel nostro lavoro abbiamo utilizzato una libreria sviluppata <strong>in</strong>ternamente<br />

alla Società Autostrade <strong>in</strong> grado <strong>di</strong> fornire un accesso tramite DOM ai files <strong>di</strong> no-<br />

stro <strong>in</strong>teresse. Le stesse classi sono state utilizzate anche per la scrittura su files<br />

XML.<br />

159


3.7. SVG Carlo Caligaris, Iacopo Salvarani<br />

3.7 SVG<br />

I dati che abbiamo memorizzato nei files XML, spesso hanno avuto bisogno <strong>di</strong><br />

una rappresentazione grafica. Si è reso qu<strong>in</strong><strong>di</strong> necessario trovare un <strong>di</strong>spositivo<br />

grafico <strong>in</strong> grado <strong>di</strong> leggere i files XML, estrarre i dati <strong>di</strong> <strong>in</strong>teresse e mostrarli a<br />

schermo previa una qualche trasformazione per migliorarne la leggibilità.<br />

A questo scopo, abbiamo utilizzato l’SVG (Scalable Vector Graphics).<br />

3.7.1 Cosa è SVG<br />

SVG è un l<strong>in</strong>guaggio utilizzato per def<strong>in</strong>ire elementi grafici vettoriali normalmen-<br />

te <strong>di</strong>ffusi attraverso il Web. La grafica <strong>di</strong> SVG è def<strong>in</strong>ita <strong>in</strong> formato XML ed ha<br />

la proprietà <strong>di</strong> non perdere qualità qualora dovesse essere ri<strong>di</strong>mensionata. Inol-<br />

tre, ogni elemento ed ogni attributo dei files SVG può essere animato. Il World<br />

Wide Web Consortium (W3C) raccomanda l’utilizzo <strong>di</strong> questo standard. SVG<br />

si <strong>in</strong>tegra con altri standard raccomandati dal W3C come il DOM e l’XSL. La<br />

raccomandazione è <strong>di</strong>venuta ufficiale nel Gennaio 2003. [50]<br />

3.7.2 Storia e Vantaggi <strong>di</strong> SVG<br />

Sun Microsystems, Adobe, Apple, IBM e Kodak sono tra le organizzazioni più note<br />

che sono state co<strong>in</strong>volte nella def<strong>in</strong>izione dell’SVG. I vantaggi <strong>di</strong> usare SVG <strong>in</strong><br />

luogo degli altri formati (come JPEG e GIF) sono:<br />

• i file possono essere letti e mo<strong>di</strong>ficati da un grande <strong>in</strong>sieme <strong>di</strong> strumenti (tra<br />

cui Notepad o un qualunque e<strong>di</strong>tor <strong>di</strong> testo);<br />

• i files sono più piccoli e più facilmente comprimibili dei JPEG o GIF;<br />

• le immag<strong>in</strong>i sono scalabili;<br />

• le immag<strong>in</strong>i possono essere stampate con alta qualità a qualsiasi risoluzione;<br />

• le immag<strong>in</strong>i possono essere <strong>in</strong>gran<strong>di</strong>te ed ogni parte <strong>di</strong> una immag<strong>in</strong>e può<br />

essere <strong>in</strong>gran<strong>di</strong>ta senza degradazione;<br />

160


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

• il testo dell’SVG è selezionabile e può essere cercato all’<strong>in</strong>terno della pagi-<br />

na (ideale per le mappe);<br />

• SVG lavora con tecnologia Java;<br />

• SVG è uno standard aperto;<br />

• il files SVG sono puri XML.<br />

Il pr<strong>in</strong>cipale competitor per SVG è Flash. I due hanno molte componenti simili.<br />

Il più grande vantaggio che SVG ha rispetto a Flash è la compatibilità con altri<br />

standard; Flash si affida a tecnologia <strong>di</strong> sua proprietà che non è open source. Il<br />

<strong>di</strong>fetto pr<strong>in</strong>cipale <strong>di</strong> SVG è che, al momento, non tutti i browser lo supportano.<br />

Internet Explorer, <strong>in</strong> versioni successive alla 5, consente l’utilizzo <strong>di</strong> SVG; Mo-<br />

zilla Firefox sta lavorando per consentire ai suoi utenti la completa compatibilità<br />

con questo standard.<br />

Per vedere i files SVG, è comunque necessario scaricare gratuitamente dal sito<br />

Adobe il plug-<strong>in</strong> SVG Viewer ed <strong>in</strong>stallarlo. [50]<br />

161


3.8. JAVASCRIPT ED HTML Carlo Caligaris, Iacopo Salvarani<br />

3.8 JavaScript ed HTML<br />

3.8.1 Cosa è JavaScript<br />

JavaScript è un l<strong>in</strong>guaggio <strong>di</strong> script<strong>in</strong>g, basato su oggetti, che viene utilizzato per<br />

sviluppare applicazioni per Internet. Venne implementato per la prima volta nel<br />

Giugno 1995 nella versione beta del browser Navigator 2.0 <strong>di</strong> Netscape. Tale<br />

l<strong>in</strong>guaggio ha apportato un notevole cambiamento alle pag<strong>in</strong>e HTML: grazie ad<br />

esso, alcuni effetti sono <strong>di</strong>ventati più facili da realizzare e la <strong>di</strong>namicità delle pa-<br />

g<strong>in</strong>e Web non è più stata conf<strong>in</strong>ata alle sole GIF animate. Oggi tutti i browser più<br />

importanti hanno al loro <strong>in</strong>terno un <strong>in</strong>terprete JavaScript.<br />

Il 1995, <strong>in</strong>oltre, resta una pietra miliare nello sviluppo <strong>di</strong> Internet, perchè ac-<br />

canto a Netscape, un’altra azienda saliva all ribalta, la Sun Microsystems Inc.,<br />

che aveva presentato ad <strong>in</strong>izio anno Java, il l<strong>in</strong>guaggio evoluto che si proponeva<br />

<strong>di</strong> <strong>di</strong>ventare uno standard nella comunicazione <strong>in</strong> rete. Spesso si confonde Java<br />

con JavaScript, ma i due l<strong>in</strong>guaggi sono profondamente <strong>di</strong>versi, pur presentando<br />

qualche aspetto <strong>in</strong> comune come:<br />

• la somiglianza s<strong>in</strong>tattica <strong>di</strong> molti costrutti ed espressioni, ere<strong>di</strong>tati dal C;<br />

• la possibilità che entrambi offrono <strong>di</strong> avviare contenuto eseguibile all’<strong>in</strong>ter-<br />

no <strong>di</strong> pag<strong>in</strong>e Web.<br />

Anche il nome dei due l<strong>in</strong>guaggi è simile, ma ciò è del tutto casuale: <strong>in</strong>fatti Ja-<br />

vaScript, alla sua prima apparizione, si chiamava LiveScript, per parallelismo con<br />

LiveWire, un l<strong>in</strong>guaggio che la stessa Netscape aveva messo a punto per la gestione<br />

della programmazione dal lato server; i due l<strong>in</strong>guaggi, affermatisi contemporanea-<br />

mente, non potevano però che avere vite parallele ed <strong>in</strong>fatti, nel Dicembre 1995,<br />

la Netscape e la Sun annunciarono la decisione <strong>di</strong> collaborare s<strong>in</strong>ergicamente allo<br />

sviluppo <strong>di</strong> LiveScript, che f<strong>in</strong>ì con il prendere il nome attuale <strong>di</strong> JavaScript. [15]<br />

162


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

3.8.2 Script<strong>in</strong>g e Programmazione<br />

Come accennato, JavaScript è un l<strong>in</strong>guaggio <strong>di</strong> script<strong>in</strong>g e non un l<strong>in</strong>guaggio <strong>di</strong><br />

programmazione. Pur avendo molti aspetti <strong>in</strong> comune, questi due tipi <strong>di</strong> l<strong>in</strong>guaggi<br />

presentano notevoli <strong>di</strong>fferenze. Un l<strong>in</strong>guaggio <strong>di</strong> script<strong>in</strong>g può controllare il com-<br />

portamento del browser ed il suo contenuto, ma non può effettuare elaborazioni<br />

grafiche o gestire la rete, mentre un l<strong>in</strong>guaggio <strong>di</strong> programmazione non ha alcuna<br />

possibilità <strong>di</strong> controllare il browser nella sua <strong>in</strong>terezza, ma può gestire la grafica,<br />

la rete e possiede funzionalità avanzate che permettono <strong>di</strong> creare e gestire processi<br />

paralleli, comportandosi come un sistema operativo <strong>in</strong> m<strong>in</strong>iatura. JavaScript <strong>di</strong>-<br />

spone <strong>di</strong> <strong>di</strong>verse caratteristiche appositamente progettate per renderlo semplice da<br />

usare. Sotto questa apparente semplicità, però, si nasconde la completezza che si<br />

riscontra <strong>in</strong> un l<strong>in</strong>guaggio <strong>di</strong> programmazione. [15]<br />

3.8.3 Pr<strong>in</strong>cipali Caratteristiche <strong>di</strong> JavaScript<br />

JavaScript ha alcune caratteristiche peculiari:<br />

• è un l<strong>in</strong>guaggio <strong>in</strong>terpretato;<br />

• è un l<strong>in</strong>guaggio basato sugli oggetti;<br />

• è un l<strong>in</strong>guaggio guidato dagli eventi;<br />

• il nucleo del l<strong>in</strong>guaggio è stato <strong>in</strong>corporato all’<strong>in</strong>terno dei browser;<br />

• esistono sia la variante lato client che quella lato server.<br />

La variante lato client è quella più comune ed è anche quella da noi utilizzata<br />

per i nostri scopi. Essa permette l’<strong>in</strong>serimento <strong>di</strong> contenuti eseguibili all’<strong>in</strong>terno<br />

<strong>di</strong> pag<strong>in</strong>e Web; <strong>in</strong> questo modo, le pag<strong>in</strong>e Web non sono più pag<strong>in</strong>e statiche,<br />

ma <strong>di</strong>ventano pag<strong>in</strong>e attive o <strong>di</strong>namiche, cioè possono comprendere programmi<br />

che <strong>in</strong>teragiscono con l’utente, controllando il browser e creando <strong>di</strong>namicamente<br />

nuovi contenuti HTML.<br />

163


3.8. JAVASCRIPT ED HTML Carlo Caligaris, Iacopo Salvarani<br />

3.8.4 Come Inserire uno Script <strong>in</strong> un Documento HTML<br />

L’HTML prevede un tag apposito per gli script.<br />

Estratto 3.2<br />

<br />

I s t r u z i o n i s c r i t t e con un l i n g u a g g i o d i s c r i p t i n g<br />

<br />

Quando il browser, analizzando un documento HTML, <strong>in</strong>contra il tag ,<br />

<strong>in</strong>terpreta il co<strong>di</strong>ce presente al suo <strong>in</strong>terno e lo esegue dall’alto verso il basso. Se<br />

durante l’esecuzione <strong>in</strong>contra un errore, può succedere che il documento ven-<br />

ga visualizzato, ma il co<strong>di</strong>ce errato non sia eseguito oppure che il documento<br />

resti bianco o visualizzato parzialmente, perché l’esecuzione del co<strong>di</strong>ce è stata<br />

<strong>in</strong>terrotta.<br />

In l<strong>in</strong>ea <strong>di</strong> pr<strong>in</strong>cipio, uno script JavaScript può essere <strong>in</strong>serito <strong>in</strong> due mo<strong>di</strong><br />

all’<strong>in</strong>terno <strong>di</strong> un documento HTML:<br />

• <strong>in</strong>serendo il co<strong>di</strong>ce nel documento HTML sia nel BODY che nell’HEAD;<br />

• caricandolo da un file esterno.<br />

Quando lo script è salvato <strong>in</strong> un file con estensione .js, può essere richiamato<br />

me<strong>di</strong>ante l’attributo SRC dell’elemento SCRIPT.<br />

Estratto 3.3<br />

<br />

<br />

Il file esterno viene eseguito all’<strong>in</strong>terno del documento HTML. Ciò vuol <strong>di</strong>-<br />

re che questo file viene solo letto come file <strong>di</strong> testo, trasferito nell’HTML nella<br />

posizione <strong>di</strong> richiamo e poi eseguito. [15]<br />

164


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI<br />

3.8.5 ECMAScript<br />

Lo Standard ECMA è uno standard <strong>di</strong> script<strong>in</strong>g basato su varie tecnologie, tra<br />

cui le più note sono JavaScript (Netscape) e JScript (Microsoft). Lo sviluppo<br />

<strong>di</strong> questo standard è <strong>in</strong>iziato nel Novembre 1996 e la sua prima e<strong>di</strong>zione è stata<br />

adottata dall’Assemblea Generale ECMA nel Giugno 1997.<br />

[46]<br />

165


3.8. JAVASCRIPT ED HTML Carlo Caligaris, Iacopo Salvarani<br />

166


Capitolo 4<br />

Oggetto del Lavoro<br />

Figura 4.1: Night Motorway [60]<br />

167


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

4.1 Presentazione del Tratto Milano-Brescia<br />

Come abbiamo già detto <strong>in</strong> precedenza, il nostro obiettivo è stato quello <strong>di</strong> co-<br />

struire un simulatore <strong>di</strong> traffico autostradale relativo alla tratta Milano - Brescia<br />

della Autostrada A4. Questa tratta ha caratteristiche particolari sotto vari punti <strong>di</strong><br />

vista:<br />

• è tra quelle che sopporta i maggiori flussi <strong>di</strong> traffico;<br />

• ha moltissimi strumenti <strong>di</strong> rilevazione (se confrontati con quelli delle altre<br />

tratte) lungo il tracciato;<br />

• può essere considerata come un tratto “chiuso” (questo importante concetto<br />

sarà approfon<strong>di</strong>to <strong>in</strong> seguito).<br />

Nelle seguenti Sottosezioni analizzeremo questi aspetti.<br />

4.1.1 La Autostrada A4<br />

Il tratto Milano - Brescia è una parte dell’Autostrada A4, detta Serenissima. Essa<br />

attraversa da Ovest ad Est l’<strong>in</strong>tera Pianura Padana, partendo da Tor<strong>in</strong>o, passan-<br />

do per Milano e term<strong>in</strong>ando a Trieste. Numerose sono le <strong>in</strong>terconnessioni con le<br />

altre gran<strong>di</strong> arterie autostradali. La A4 <strong>di</strong>spone, nel tratto tra Tor<strong>in</strong>o e Venezia,<br />

<strong>di</strong> tre corsie più una d’emergenza (ad eccezione <strong>di</strong> pochi tratti <strong>in</strong> concomitanza<br />

del passaggio sopra fiumi come nel caso del viadotto sull’Adda situato tra Trezzo<br />

sull’Adda e Capriate San Gervasio). Il tratto compreso tra Venezia e Trieste è, al<br />

momento attuale, ancora con sole due corsie per ogni senso <strong>di</strong> marcia. Nel 2005<br />

sono <strong>in</strong>iziati i lavori per aggiungere la quarta corsia nel tratto Milano-Bergamo,<br />

mentre si attende la conclusione dei lavori che hanno <strong>in</strong>teressato il tratto tra Tori-<br />

no e Milano, collegati ai cantieri dell’alta velocità ferroviaria. Da sempre questa<br />

autostrada è considerata uno dei punti nevralgici della rete viaria italiana facendo<br />

parte <strong>di</strong> uno dei più importanti corridoi europei che collegano l’estremità della<br />

Penisola Iberica con le nazioni dei Balcani. Il suo percorso, <strong>di</strong> circa 530 km, è ge-<br />

stito da società <strong>di</strong>verse come Autostrade per l’Italia, Autostrada Brescia, Verona,<br />

168


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

Vicenza, Padova, Società delle Autostrade <strong>di</strong> Venezia e Padova e Autovie venete.<br />

[52]<br />

La Storia dell’Autostrada Tor<strong>in</strong>o-Milano <strong>in</strong>izia negli anni Venti dello scorso<br />

Secolo, quando il Senatore Frola, appoggiato dalla Prov<strong>in</strong>cia e dal Comune <strong>di</strong> To-<br />

r<strong>in</strong>o, dal Tour<strong>in</strong>g, dall’ACI e da altri Enti pubblici e privati costituisce un Comitato<br />

avente lo scopo <strong>di</strong> promuovere lo stu<strong>di</strong>o <strong>di</strong> fattibilità dell’opera ed <strong>in</strong>iziarne la pro-<br />

gettazione prelim<strong>in</strong>are. La reale costruzione <strong>in</strong>iziò però grazie al Senatore Agnelli<br />

e all’Ing. Cartesegna che costituirono la S.A. Autostrada Tor<strong>in</strong>oMilano, ne <strong>di</strong>ven-<br />

nero rispettivamente Presidente ed Amm<strong>in</strong>istratore Delegato/Direttore Generale e<br />

nel ’29 firmarono la convenzione per la costruzione e l’esercizio dell’opera.<br />

Figura 4.2: Gli <strong>in</strong>izi della Tor<strong>in</strong>o-Milano [45]<br />

Il Senatore Agnelli aveva <strong>in</strong>fatti, tra i primi, <strong>in</strong>tuito la necessità <strong>di</strong> una via<br />

<strong>di</strong> trasporto speciale per i veicoli a motore, anche e soprattutto come fattore <strong>di</strong><br />

promozione commerciale dell’automobile. La costruzione durò meno <strong>di</strong> 3 an-<br />

ni e l’autostrada venne <strong>in</strong>augurata nell’ottobre 1932. L’Autostrada attivava un<br />

nuovo ed importante collegamento tra Tor<strong>in</strong>o e Milano e, assieme alle autostra-<br />

de Bergamo-Milano, Brescia-Bergamo (già <strong>in</strong> esercizio) e Venezia-Padova (<strong>in</strong><br />

costruzione) si <strong>in</strong>seriva nel <strong>di</strong>segno della progettata “strada automobilistica pe-<br />

dealp<strong>in</strong>a Tor<strong>in</strong>o-Trieste”. La ferrovia costruita nell’800 non aveva, <strong>in</strong>fatti, ancora<br />

creato un collegamento adeguato, <strong>di</strong>retto e veloce, tra le due città.<br />

Il traffico fu sempre consistente, s<strong>in</strong> dai primor<strong>di</strong> dell’esercizio, grazie anche<br />

169


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

alla politica tariffaria adottata dalla Società, che applicava tariffe <strong>di</strong> pedaggio re-<br />

lativamente basse; la me<strong>di</strong>a dei passaggi giornalieri raddoppiò nel breve volgere<br />

<strong>di</strong> sette anni. Il flusso veicolare è passato dai circa 700.000 passaggi/anno dei<br />

primi anni <strong>di</strong> vita dell’<strong>in</strong>frastruttura agli oltre 35.000.000 <strong>di</strong> oggi e l’<strong>in</strong>frastruttura<br />

è molto cambiata adattandosi alle esigenze che si mo<strong>di</strong>ficavano. In particolare,<br />

nel 1953, <strong>in</strong> seguito ad un notevole <strong>in</strong>cremento <strong>di</strong> traffico, la larghezza del piano<br />

viabile venne portata dagli 8 metri orig<strong>in</strong>ali ai 10 metri e, nel 1962, oramai alle<br />

soglie della grande <strong>in</strong>dustrializzazione del Paese, l’autostrada venne raddoppiata.<br />

Figura 4.3: Le due corsie dell’autostrada [45]<br />

All’<strong>in</strong>izio degli anni Settanta, <strong>in</strong>f<strong>in</strong>e, si passò ad una configurazione a tre corsie<br />

per senso <strong>di</strong> marcia. L’autostrada è <strong>di</strong>visa <strong>in</strong> due tratte: una cosiddetta “a sistema<br />

aperto” ovvero dove il pedaggio viene corrisposto <strong>in</strong> una barriera e gli sv<strong>in</strong>coli<br />

<strong>in</strong>terme<strong>di</strong> sono privi <strong>di</strong> stazione <strong>di</strong> esazione, ed una “a sistema chiuso” dove il<br />

pedaggio corrisposto <strong>di</strong>pende dalla percorrenza effettuata. In totale vi sono 4<br />

<strong>in</strong>terconnessioni con altre autostrade, 6 sv<strong>in</strong>coli senza stazione <strong>di</strong> esazione, 13<br />

stazioni <strong>di</strong> uscita con esazione e 2 barriere term<strong>in</strong>ali. Interventi futuri prevedono,<br />

<strong>in</strong>oltre, il collegamento autostradale con il nuovo Polo Fieristico Milanese (<strong>in</strong> zona<br />

Pero) e il collegamento autostradale Carisio-Biella (18 km). [45]<br />

170


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

4.1.2 Il Tratto Milano-Brescia<br />

Dopo un percorso denom<strong>in</strong>ato tratto urbano della A4 <strong>in</strong> cui l’autostrada passa<br />

a Nord della città <strong>di</strong> Milano, attraversando le zone fortemente <strong>in</strong>dustrializzate <strong>di</strong><br />

Cormano, C<strong>in</strong>isello Balsamo e Sesto San Giovanni e dove, <strong>in</strong> molte ore della gior-<br />

nata, il traffico risulta quasi paralizzato, nella A4 confluisce, nei pressi <strong>di</strong> Agrate<br />

Brianza dove è situato il casello <strong>di</strong> Milano Est, il traffico <strong>in</strong> arrivo dall’autostra-<br />

da A1 attraverso la Tangenziale Est <strong>di</strong> Milano. Con un percorso <strong>di</strong> quasi 90 km<br />

l’autostrada si snoda completamente <strong>in</strong> territorio lombardo, presentando un per-<br />

corso completamente pianeggiante e rettil<strong>in</strong>eo ad eccezione <strong>di</strong> una impegnativa<br />

curva <strong>in</strong> concomitanza con il casello autostradale <strong>di</strong> Bergamo. A Brescia viene<br />

<strong>in</strong>tersecata l’autostrada A21, anch’essa orig<strong>in</strong>ata a Tor<strong>in</strong>o, ma con un percorso più<br />

meri<strong>di</strong>onale rispetto alla A4 attraverso Alessandria, Piacenza e Cremona. [52]<br />

Figura 4.4: Il tratto Milano-Brescia [53]<br />

In Figura 4.4 si può vedere il tratto Milano-Brescia così come appare su Au-<br />

toTraf. Nella Tabella 4.1, riportiamo <strong>in</strong>vece le pr<strong>in</strong>cipali caratteristiche del tratto<br />

mutuate dal database <strong>in</strong>terno.<br />

171


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

Tratta Co<strong>di</strong>ce Ent. Entrata Co<strong>di</strong>ce Usc. Uscita Lunghezza<br />

1 654 Milano Est 655 Tangenziale Milano 6.2 km<br />

2 655 Tangenziale Milano 653 Agrate 2.4 km<br />

3 653 Agrate 652 Cavenago 4.7 km<br />

4 652 Cavenago 651 Trezzo 9.0 km<br />

5 651 Trezzo 650 Capriate 2.6 km<br />

6 650 Capriate 649 Dalm<strong>in</strong>e 7.6 km<br />

7 649 Dalm<strong>in</strong>e 648 Bergamo 5.2 km<br />

8 648 Bergamo 647 Seriate 7.1 km<br />

9 647 Seriate 646 Grumello 9.1 km<br />

10 646 Grumello 645 Ponte Oglio 3.8 km<br />

11 645 Ponte Oglio 644 Palazzolo 2.7 km<br />

12 644 Palazzolo 643 Rovato 8.7 km<br />

13 643 Rovato 643 Ospitaletto 5.5 km<br />

14 642 Ospitaletto 641 Brescia Ovest 9.4 km<br />

Tabella 4.1: Le stazioni della Milano-Brescia<br />

Sempre <strong>in</strong> Figura 4.4 ve<strong>di</strong>amo anche tutta la sensoristica <strong>di</strong>stribuita lungo il<br />

percorso. I sensori sono s<strong>in</strong>cronizzati attraverso il protocollo NTP (Network Time<br />

Protocol), per garantire l’assoluta precisione nella determ<strong>in</strong>azione dell’istante <strong>di</strong><br />

rilevamento del dato.<br />

Figura 4.5: Legenda <strong>di</strong> AutoTraf [53]<br />

172


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

In particolare, noi utilizziamo i dati provenienti da <strong>in</strong>gressi, uscite, spire e boe.<br />

Nei paragrafi seguenti illustreremo <strong>in</strong> che modo il database riflette le <strong>in</strong>formazioni<br />

<strong>in</strong> arrivo dalla rete.<br />

Ingressi<br />

I dati provenienti dagli <strong>in</strong>gressi riguardano, tra le altre, le <strong>in</strong>formazioni sull’ora <strong>di</strong><br />

<strong>in</strong>gresso <strong>di</strong> ogni veicolo, sul numero del biglietto a cui essa è associata o al co<strong>di</strong>ce<br />

Telepass con il quale è entrata. In effetti, la sensoristica mette a <strong>di</strong>sposizione altri<br />

dati che però non sono <strong>di</strong> <strong>in</strong>teresse per questa trattazione. Questi dati vengono<br />

organizzati <strong>in</strong> quattro tabelle: TTPMA3 ENT, TTPMA3 ENT 1, TTPMA3 ENT 2<br />

e TTPMA3 ENT 3. Ciascuna <strong>di</strong> esse contiene i dati relativi ad un numero <strong>di</strong> giorni<br />

precedenti uguale all’ultimo numero del loro nome. Ad esempio, TTPMA3 ENT 2<br />

contiene i dati relativi agli <strong>in</strong>gressi <strong>di</strong> due giorni prima rispetto al momento del-<br />

l’<strong>in</strong>terrogazione del database. In realtà, l’aggiornamento delle tabelle non avviene<br />

precisamente alla mezzanotte, ma ad un’ora variabile <strong>in</strong>torno alle 02:03:00<br />

AM. La struttura <strong>di</strong> queste tabelle è parzialmente simile alla seguente.<br />

Estratto 4.1 ◦ Co<strong>di</strong>ce Stazione Ingresso (C STZ)<br />

◦ Ora <strong>di</strong> Ingresso (D ENT)<br />

◦ Co<strong>di</strong>ce Biglietto (C APP)<br />

◦ Co<strong>di</strong>ce Apparato Telepass (C APP)<br />

◦ . . .<br />

Uscite<br />

I dati provenienti dalle uscite sono organizzati <strong>in</strong> un modo molto simile a quello<br />

con cui sono organizzati i dati provenienti dagli <strong>in</strong>gressi. L’articolazione <strong>in</strong> quattro<br />

tabelle viene utilizzata anche <strong>in</strong> questo caso e la ra<strong>di</strong>ce della famiglia <strong>di</strong> queste<br />

tabelle è: TTPMA2 USC. Rispetto alla struttura precedente, viene aggiunto un<br />

campo molto importante che riporta la stazione da cui è entrato il veicolo <strong>di</strong> cui si<br />

173


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

sta rilevando l’uscita. Inoltre, viene anche riportata l’ora <strong>di</strong> <strong>in</strong>gresso del veicolo<br />

stesso.<br />

Estratto 4.2 ◦ Co<strong>di</strong>ce Stazione Uscita (C STZ)<br />

◦ Ora <strong>di</strong> Uscita (D MSG)<br />

◦ Co<strong>di</strong>ce Stazione Ingresso (C STZ ENT)<br />

◦ Ora <strong>di</strong> Ingresso (D MSG ENT)<br />

◦ Co<strong>di</strong>ce Biglietto (C APP)<br />

◦ Co<strong>di</strong>ce Apparato Telepass (C APP)<br />

◦ . . .<br />

Purtroppo, lungo tutto il periodo del nostro lavoro, la stazione 655 non ha mai<br />

funzionato: il problema è relativo al mancato trasferimento dei dati sul database.<br />

Le uniche <strong>in</strong>formazioni su questa stazione sono ottenibili dalle tabelle delle usci-<br />

te: <strong>in</strong>fatti, gli utenti entrati alla stazione 655 ed usciti <strong>in</strong> una qualunque stazione<br />

del nostro tratto, vengono regolarmente rilevati grazie al campo <strong>di</strong> questa tabella<br />

contenente il co<strong>di</strong>ce della stazione <strong>di</strong> <strong>in</strong>gresso.<br />

Le piste Telepass accumulano i dati (messaggi) relativi all’entrata ed all’uscita<br />

<strong>di</strong> veicoli <strong>in</strong> files che sono <strong>in</strong>viati circa ogni 10’ ad un server centrale, via FTP.<br />

Il tempo che <strong>in</strong>tercorre tra l’evento e l’<strong>in</strong>vio del messaggio ad esso relativo, ren-<br />

de tuttavia <strong>in</strong>adeguato questo meccanismo <strong>di</strong> acquisizione per quanto riguarda il<br />

progetto AutoTraf. Per questo motivo, è stato mo<strong>di</strong>ficato il software delle piste, at-<br />

tivando un flusso <strong>di</strong> acquisizione parallelo a quello tra<strong>di</strong>zionale della fatturazione,<br />

che prevede l’<strong>in</strong>vio del s<strong>in</strong>golo messaggio al server centrale nel momento stesso<br />

<strong>in</strong> cui viene generato. Per ridurre al m<strong>in</strong>imo l’overhead delle piste, si è scelto <strong>di</strong><br />

utilizzare il protocollo UDP per l’<strong>in</strong>vio dei dati, senza eseguire qu<strong>in</strong><strong>di</strong> alcun con-<br />

trollo sul recapito del messaggio. La per<strong>di</strong>ta <strong>di</strong> una bassa percentuale <strong>di</strong> messaggi<br />

non è, stata valutata come limitativa per un’applicazione <strong>di</strong> tipo statistico come<br />

AutoTraf. [4]<br />

174


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

Sistemi PMT o Boe <strong>in</strong> It<strong>in</strong>ere<br />

I sistemi PMT, detti boe <strong>in</strong> it<strong>in</strong>ere, utilizzano la tecnologia Telepass per rilevare il<br />

passaggio <strong>di</strong> veicoli dotati <strong>di</strong> apparato <strong>di</strong> bordo. Collocati <strong>in</strong> opportune posizioni<br />

sopra la sede autostradale, <strong>in</strong> prossimità <strong>di</strong> PMV (Pannelli a Messaggio Variabile)<br />

o <strong>di</strong> cavalcavia, <strong>in</strong>viano al sistema centrale un messaggio contenente il co<strong>di</strong>ce del<br />

sensore, il co<strong>di</strong>ce dell’apparato e l’istante <strong>in</strong> cui la rilevazione ha avuto luogo,<br />

utilizzando il protocollo UDP. Questi sistemi sono stati sviluppati a partire dalle<br />

piste Telepass ritagliandone le funzionalità e personalizzando i meccanismi <strong>di</strong> au-<br />

to<strong>di</strong>agnosi. [4] Le boe <strong>in</strong> it<strong>in</strong>ere sono lo strumento <strong>di</strong> rilevazione più <strong>di</strong>ffuso lungo<br />

la rete, ma, purtroppo, sono anche quello meno affidabile. Infatti, è molto <strong>di</strong>fficile<br />

prevedere la percentuale <strong>di</strong> veicoli che le boe riusciranno a rilevare <strong>in</strong> rapporto al<br />

totale dei veicoli transitati. In pratica, queste boe sono gruppi <strong>di</strong> rilevamento tal-<br />

volta costituiti da una sola antenna, altri da due ed altri ancora da tre. Nel nostro<br />

tratto, le boe hanno tutte due antenne: tuttavia, non esiste una relazione precisa e<br />

sicura su quanti autoveicoli si perdano <strong>in</strong> funzione del numero <strong>di</strong> antenne.<br />

La struttura delle tabelle TTPMA1 BOE (anche esse replicate per conservare i dati<br />

dei giorni precedenti) è rappresentata <strong>in</strong> seguito.<br />

Estratto 4.3 ◦ Numero Progressivo della Boa (N PRG)<br />

Spire<br />

◦ Co<strong>di</strong>ce Apparato Telepass (C APP)<br />

◦ Ora del Passaggio (D MSG)<br />

◦ . . .<br />

Le spire sono lo strumento <strong>di</strong> rilevazione più affidabile e completo sul quale si<br />

possa fare affidamento. Sono anche i sensori più costosi, dal momento che richie-<br />

dono una tecnologia avanzata, e sono <strong>di</strong> <strong>di</strong>fficile <strong>in</strong>stallazione a causa della loro<br />

particolare locazione. Infatti, devono essere immerse nell’asfalto sotto il piano<br />

stradale. Nel tratto <strong>di</strong> nostra competenza sono <strong>in</strong>stallate tre spire: una lungo la<br />

175


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

tratta 6, una lungo la tratta 9 ed una poco dopo il casello <strong>di</strong> Brescia Ovest <strong>in</strong><br />

<strong>di</strong>rezione <strong>di</strong> Venezia. La tabella contenente i dati provenienti dalle spire è unica:<br />

questo significa che tutti i dati sono compresi <strong>in</strong> (TTPM66 DAT SPR), aggiornata<br />

con un periodo <strong>in</strong>feriore ai 4 giorni. Qu<strong>in</strong><strong>di</strong>, i dati provenienti dalle spire sono me-<br />

<strong>di</strong>amente più recenti <strong>di</strong> quelli provenienti dalle boe: volendo eseguire una analisi<br />

<strong>in</strong>crociata retrospettiva, bisogna assumere la tabella delle spire come riferimento<br />

postdatato per il tempo <strong>in</strong> corrispondenza del quale si possono ancora trovare <strong>in</strong>-<br />

formazioni.<br />

I dati delle spire, al contrario <strong>di</strong> quelli degli altri tre strumenti sopra illustrati, ven-<br />

gono aggregati lungo il tempo. Qu<strong>in</strong><strong>di</strong>, mentre le altre tabelle hanno una nuova<br />

riga per ogni mezzo rilevato, questa ha una riga che riassume i dati dell’ultimo<br />

<strong>in</strong>tervallo <strong>di</strong> tempo. L’<strong>in</strong>tervallo <strong>di</strong> tempo è variabile, ma per le spire del nostro<br />

tratto è sempre pari a 60 secon<strong>di</strong>. In pratica, ogni riga contiene la somma dei dati<br />

del m<strong>in</strong>uto precedente. I campi rilevanti sono quelli elencati <strong>di</strong> seguito.<br />

Estratto 4.4 ◦ Co<strong>di</strong>ce della Central<strong>in</strong>a Contenente la Spira (C CEN)<br />

◦ Numero della Corsia (N CRS)<br />

◦ Ora del Messaggio (D MSG)<br />

◦ Somma dei Veicoli (N TOT VEI)<br />

◦ Velocità Me<strong>di</strong>a (VEL MED)<br />

◦ Deviazione Standard della Velocità (DEV STD VEL MED)<br />

◦ Gap Me<strong>di</strong>o (GAP MED)<br />

◦ Deviazione Standard del Gap (DEV STD GAP MED)<br />

◦ Headway Me<strong>di</strong>o (HDW MED)<br />

◦ Deviazione Standard dell’Headway (DEV STD HDW MED)<br />

◦ Densità (DEN)<br />

176


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

◦ . . .<br />

Le corsie sono numerate come <strong>in</strong> Figura 4.6<br />

Figura 4.6: Numerazione delle corsie<br />

Il gap è def<strong>in</strong>ito come la <strong>di</strong>stanza me<strong>di</strong>a che <strong>in</strong>tercorre tra la coda <strong>di</strong> un veicolo<br />

e la testa del veicolo seguente. L’headway è <strong>in</strong>vece la <strong>di</strong>stanza me<strong>di</strong>a tra due teste<br />

consecutive. In questa tabella, i vari dati calcolati come me<strong>di</strong>a possono essere<br />

anche valutati alla luce della loro deviazione standard.<br />

4.1.3 Quante Auto hanno il Telepass?<br />

Per i nostri programmi, serve una percentuale piuttosto precisa che reppresenti<br />

quante, delle auto che passano me<strong>di</strong>amente sotto una boa con due antenne, ven-<br />

gono rilevate. Come abbiamo già detto, le boe possono solo riconoscere le auto<br />

con il telepass, ma tendono a “perdere” anche alcune <strong>di</strong> queste. Abbiamo così<br />

calcolato il rapporto tra utenti con il telepass ed utenti totali ed abbiamo <strong>in</strong>f<strong>in</strong>e<br />

cercato <strong>di</strong> calcolare il rapporto tra utenti rilevati sotto una boa ed utenti totali.<br />

177


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

Percentuale <strong>di</strong> Telepass<br />

Per calcolare la percentuale <strong>di</strong> auto con il Telepass, possiamo confrontare i dati<br />

provenienti dagli <strong>in</strong>gressi del nostro tratto e valutare su quante <strong>di</strong> esse è montato<br />

il Telepass. Per ottenere il totale delle auto entrate <strong>in</strong> ciascuna delle stazioni <strong>di</strong><br />

nostro <strong>in</strong>teresse possiamo eseguire la query 4.5.<br />

Estratto 4.5<br />

SELECT C STZ COUNT(D MSG)<br />

FROM TTPMA3 ENT<br />

WHERE D MSG BETWEEN<br />

TO DATE( ’ 08−11−2005 7 : 3 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ 08−11−2005 1 3 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND C STZ>=641 AND C STZ=641 AND C STZ


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

Co<strong>di</strong>ce Stazione Totale Entrate<br />

641 6542<br />

642 3827<br />

643 3609<br />

644 3250<br />

645 1760<br />

646 3032<br />

647 4470<br />

648 9831<br />

649 3822<br />

650 5885<br />

651 4443<br />

652 4009<br />

653 6428<br />

654 15986<br />

656 4514<br />

Totale 81408<br />

Tabella 4.2: Il totale delle entrate per ogni stazione <strong>in</strong> un <strong>in</strong>tervallo <strong>di</strong> quattro ore<br />

e mezza<br />

AND ( C APP’ 00000000 ’<br />

AND C APP NOT LIKE ’F%’<br />

AND C RET=1)<br />

GROUP BY( C STZ )}<br />

Otteniamo il risultato <strong>di</strong> Tabella 4.3.<br />

Il rapporto 53875/81408 rende un risultato pari a 0.66.<br />

Abbiamo anche seguito lo stesso proce<strong>di</strong>mento estendendo il periodo <strong>di</strong> osserva-<br />

zione ad una giornata <strong>in</strong>tera. Come preve<strong>di</strong>bile, il rapporto è leggermente sceso,<br />

attestandosi a 0.63.<br />

179


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

Co<strong>di</strong>ce Stazione Totale Entrate<br />

641 4396<br />

642 2713<br />

643 2404<br />

644 2196<br />

645 1164<br />

646 2095<br />

647 3061<br />

648 6273<br />

649 2499<br />

650 3877<br />

651 3040<br />

652 2633<br />

653 3932<br />

654 10338<br />

656 3164<br />

Totale 53785<br />

Tabella 4.3: Il totale delle entrate per ogni stazione, considerando i soli utenti<br />

muniti <strong>di</strong> telepass, nello stesso <strong>in</strong>tervallo <strong>di</strong> tempo della Tabella 4.2<br />

180


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

Percentuale <strong>di</strong> Veicoli Recepiti da una Boa<br />

Secondo quanto già espresso, ci aspettiamo <strong>di</strong> trovare un coefficiente <strong>in</strong>feriore a<br />

quello trovato <strong>in</strong> precedenza. Per ottenere una stima atten<strong>di</strong>bile <strong>di</strong> questo fattore,<br />

abbiamo sviluppato una analisi che sfrutta dati provenienti da vari strumenti <strong>di</strong><br />

rilevazione.<br />

Consideriamo la situazione <strong>di</strong> Figura 4.7.<br />

Figura 4.7: Posizionamento della spira 24<br />

Anche <strong>in</strong> questo caso abbiamo un periodo <strong>di</strong> osservazione <strong>di</strong> quattro ore e<br />

mezza. Cerchiamo <strong>di</strong> trovare il numero <strong>di</strong> veicoli transitati sopra la spira 24<br />

(central<strong>in</strong>a 267).<br />

Estratto 4.7<br />

SELECT SUM( N TOT VEI )<br />

FROM VTPM66 DAT SPR<br />

WHERE D ORA BETWEEN<br />

TO DATE( ’ 08−11−2005 7 : 3 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ 08−11−2005 1 3 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND C CEN=267 AND N CRS>=1 AND N CRS


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

Il risultato è NTOT = 18393.<br />

Contiamo qu<strong>in</strong><strong>di</strong> quante auto transitano sotto la boa 26 nello stesso <strong>in</strong>tervallo <strong>di</strong><br />

tempo.<br />

Estratto 4.8<br />

SELECT COUNT( ∗ )<br />

FROM TTPMA1 BOE<br />

WHERE D MSG BETWEEN<br />

TO DATE( ’ 08−11−2005 7 : 3 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ 08−11−2005 1 3 : 0 0 : 0 0 ’ ,<br />

AND N PRGA=26<br />

Il risultato è NBOE = 9039.<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

Contiamo anche quante macch<strong>in</strong>e sono uscite alla stazione 646. Le auto che sono<br />

uscite nella <strong>di</strong>rezione che ci <strong>in</strong>teressa sono tutte quelle che sono entrate <strong>in</strong> una<br />

delle entrate a monte della 646 (entrate comprese tra 647 e 656). Si noti come, <strong>in</strong><br />

questa query, si dovrebbe usare un riferimento temporale leggermente <strong>di</strong>verso (i<br />

due estremi andrebbero leggermente aumentati). Infatti, se un’auto fosse passata<br />

sopra la spira alle 7:00, non sarebbe potuta uscire se non dopo un tempo pari<br />

a quello <strong>di</strong> percorrenza della <strong>di</strong>stanza tra la spira e l’uscita. In questo caso si<br />

assume che il flusso rimanga costante per qualche m<strong>in</strong>uto <strong>in</strong>torno alle 7:00 ed alle<br />

13:00.<br />

Estratto 4.9<br />

SELECT COUNT( ∗ )<br />

FROM TTPMA2 USC<br />

WHERE D MSG BETWEEN<br />

TO DATE( ’ 08−11−2005 7 : 3 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ 08−11−2005 1 3 : 0 0 : 0 0 ’ ,<br />

182


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND C STZ=646 AND C STZ ENT>646 AND C STZ ENT


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

• An<strong>di</strong>amo a cercare il co<strong>di</strong>ce telepass tra le uscite delle nostre stazioni.<br />

• Se lo troviamo, allora conosciamo il percorso fatto.<br />

• Se non lo troviamo, allora non possiamo che concludere che sia uscito dalla<br />

spira <strong>di</strong> Brescia.<br />

Evidentemente, il caso della stazione 654 (la prima stazione del tratto) è piuttosto<br />

semplice: chi entra da quella stazione non può che andare <strong>in</strong> <strong>di</strong>rezione <strong>di</strong> Brescia.<br />

Tuttavia, vige un sistema <strong>di</strong> gestione dei dati particolare e non <strong>in</strong>tuitivo. Per il-<br />

lustrarlo, dobbiamo spiegare la configurazione dei tratti autostradali e non della<br />

periferia <strong>di</strong> Milano. Le auto che escono alla barriera <strong>di</strong> Milano Est, si immettono<br />

<strong>in</strong> un tratto autostradale a sistema aperto e che mette a <strong>di</strong>sposizione alcune usci-<br />

te (come, ad esempio, Milano Viale Zara) che non hanno un relativo casello <strong>di</strong><br />

esazione. Questo tratto può però condurre ad un’altra barriera, quella <strong>di</strong> Milano<br />

Nord, da dove <strong>in</strong>izia nuovamente un tratto autostradale soggetto a tariffa fissa.<br />

Se un mezzo entra nel nostro tratto, esce dalla barriera <strong>di</strong> Milano Est e rientra<br />

dalla barriera <strong>di</strong> Milano Nord, la comb<strong>in</strong>azione <strong>di</strong> uscita ed entrata viene elimi-<br />

nata dal database e si conserva solo il dato sull’entrata orig<strong>in</strong>ale a cui si aggiunge<br />

successivamente quello sull’uscita. Questo comportamento è stato desunto da os-<br />

servazioni sperimentali che abbiamo fatto sul database. Le uscite effettivamente<br />

assegnate a Milano Est sono quelle delle auto che escono <strong>in</strong> uno degli sv<strong>in</strong>coli<br />

“liberi” presenti tra le due barriere.<br />

Questo problema rende <strong>in</strong>utilizzabili i dati provenienti dall’uscita <strong>di</strong> Milano Est.<br />

Infatti, a noi <strong>in</strong>teressano tutti i veicoli transitati dalla barriera, a presc<strong>in</strong>dere dalla<br />

loro dest<strong>in</strong>azione f<strong>in</strong>ale. Fortunatamente, come si può vedere <strong>in</strong> Figura 4.8, subito<br />

dopo Milano Est, è posizionata una boa, (la 231).<br />

184


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

Figura 4.8: La situazione alla barriera <strong>di</strong> Milano Est<br />

Tutte le auto <strong>in</strong> uscita da Milano Est, devono transitare sotto lo boa 231. Ab-<br />

biamo visto però che la boa non recepisce tutti i telepass <strong>in</strong> transito sotto le sue<br />

antenne. In questo caso, abbiamo supposto che questo errore fosse trascurabi-<br />

le e non abbiamo <strong>in</strong>trodotto un coefficiente correttivo desumibile da quelli del-<br />

la Sottosezione precedente (anche perché si può ragionevolmente pensare che le<br />

boe “perdano” passaggi <strong>in</strong> modo <strong>in</strong><strong>di</strong>pendente dalla stazione <strong>di</strong> provenienza dei<br />

veicoli).<br />

resse.<br />

Ve<strong>di</strong>amo adesso le queries che ci consentono <strong>di</strong> trovare i dati <strong>di</strong> nostro <strong>in</strong>te-<br />

Estratto 4.10<br />

SELECT DISTINCT ENTRATE . C STZ ,<br />

USCITE . C STZ , COUNT(ENTRATE . C APP )<br />

FROM TTPMA3 ENT 1 ENTRATE, TTPMA2 USC 1 USCITE<br />

WHERE ENTRATE . C APP’ 00000000 ’<br />

AND ENTRATE . C RET=1<br />

AND ENTRATE . C RET NOT LIKE ’F%’<br />

AND USCITE . C APP’ 00000000 ’<br />

AND USCITE . C RET=1<br />

AND USCITE . C RET NOT LIKE ’F%’<br />

185


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

AND ENTRATE . D ENT=USCITE . D ENT<br />

AND ENTRATE . C STZ=USCITE . C STZ ENT<br />

AND ENTRATE . C APP=USCITE . C APP<br />

AND ENTRATE . D ENT<br />

BETWEEN TO DATE( ’ 09−11−2005 4 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ 09−11−2005 2 0 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND ENTRATE . C STZ>=641<br />

AND ENTRATE . C STZ=641<br />

AND USCITE . C STZ


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ 09−11−2005 2 0 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND ENTRATE . C STZ>=641<br />

AND ENTRATE . C STZ


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

TO DATE( ’ 09−11−2005 4 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ 09−11−2005 2 0 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND ENTRATE . C STZ>=641<br />

AND ENTRATE . C STZ=641<br />

AND ENTRATE . C STZ


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 4. OGGETTO DEL LAVORO<br />

Arrivati a questo punto, dobbiamo stu<strong>di</strong>are un metodo alternativo per stimare<br />

le entrate e le uscite della stazione 655 <strong>in</strong> grado <strong>di</strong> sopperire alla mancanza <strong>di</strong><br />

dati (ricor<strong>di</strong>amo che questa stazione non trasmette i dati <strong>di</strong> <strong>in</strong>gresso al database a<br />

causa <strong>di</strong> un non megli precisato malfunzionamento). Per le entrate, non possiamo<br />

che affidarci ad un metodo statistico, mentre per le uscite possiamo <strong>in</strong>terrogare<br />

il database sulle uscite registrate <strong>in</strong> corrispondenza del casello <strong>di</strong> entrata numero<br />

655.<br />

Estratto 4.14<br />

SELECT USCITE . C STZ , COUNT( USCITE . C APP )<br />

FROM TTPMA2 USC 1 USCITE<br />

WHERE USCITE . C APP’ 00000000 ’ AND USCITE . C RET=1<br />

AND USCITE . C APP NOT LIKE ’F%’<br />

AND USCITE . D ENT BETWEEN<br />

TO DATE( ’ 09−11−2005 4 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ 09−11−2005 2 0 : 0 0 : 0 0 ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND USCITE . C STZ ENT=655<br />

GROUP BY( USCITE . C STZ ENT , USCITE . C STZ )<br />

ORDER BY USCITE . C STZ ASC<br />

La query 4.14 cerca il numero <strong>di</strong> auto che sono entrate alla 655 utilizzando le<br />

<strong>in</strong>formazioni presenti sulla tabella delle uscite ma relative alle entrate.<br />

189


4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA Carlo Caligaris, Iacopo Salvarani<br />

190


Capitolo 5<br />

Applicazione del Modello<br />

Figura 5.1: Los Angeles Traffic [59]<br />

191


5.1. IL SOFTWARE Carlo Caligaris, Iacopo Salvarani<br />

5.1 Il Software<br />

Per raggiungere l’obiettivo preposto, abbiamo costruito un software <strong>in</strong> grado <strong>di</strong><br />

<strong>in</strong>teragire <strong>in</strong> lettura ed <strong>in</strong> scrittura con il database autostradale al f<strong>in</strong>e <strong>di</strong> costruire<br />

una <strong>in</strong>terfaccia user-friendly tramite la quale visualizzare i risultati prodotti dal-<br />

l’elaborazione dei nostri dati. Il software si <strong>di</strong>vide <strong>in</strong> due programmi pr<strong>in</strong>cipali:<br />

quello <strong>di</strong> simulazione e quello <strong>di</strong> controllo.<br />

Il programma <strong>di</strong> simulazione è il programma pr<strong>in</strong>cipale: è quello che produce<br />

le previsioni per velocità, densità e flusso ed ha la possibilità <strong>di</strong> scrivere questi<br />

risultati sul database. Il programma <strong>di</strong> controllo, <strong>in</strong>vece, fornisce la possibilità<br />

<strong>di</strong> controllare i risultati previsti confrontandole con i risultati reali, una volta che<br />

questi sono <strong>di</strong>sponibili. Il programma <strong>di</strong> simulazione è stato sviluppato sia per la<br />

<strong>di</strong>rezione Milano-Brescia che per la <strong>di</strong>rezione opposta. Il programma <strong>di</strong> controllo,<br />

date le sue gran<strong>di</strong> <strong>di</strong>fficoltà realizzative, è solo relativo alla <strong>di</strong>rezione Milano-<br />

Brescia.<br />

192


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

5.2 Il Simulatore<br />

Il simulatore, dal punto <strong>di</strong> vista matematico, è costituito da un set <strong>di</strong> equazioni<br />

<strong>di</strong>fferenziali <strong>di</strong>scretizzate nel tempo e qu<strong>in</strong><strong>di</strong> def<strong>in</strong>ibili come equazioni alle <strong>di</strong>ffe-<br />

renze f<strong>in</strong>ite. Nella pratica, si assegna a tutte le tratte un <strong>in</strong>sieme <strong>di</strong> valori <strong>in</strong>iziali<br />

che ne descrivono lo stato; i parametri che descrivono la situazione generale sulla<br />

tratta sono: velocità me<strong>di</strong>a, densità, flusso dei veicoli lungo la tratta. Una volta<br />

fatto ciò, il simulatore calcola i valori previsti relativi a queste quantità avanzando<br />

<strong>di</strong> un periodo <strong>di</strong> simulazione alla volta. Ad ogni iterazione i parametri <strong>di</strong> ciascun<br />

tratto vengono ricalcolati <strong>in</strong> base a:<br />

• i valori dei parametri sulla tratta stessa all’istante precedente;<br />

• i valori dei parametri all’istante precedente per le tratte che <strong>in</strong>fluenzano<br />

quella su cui il simulatore sta ricalcolando; <strong>in</strong> term<strong>in</strong>i più semplici la prece-<br />

dente e la successiva.<br />

Dopo essere stato <strong>in</strong>izializzato, il simulatore calcola l’evolvere del sistema f<strong>in</strong>o<br />

alla con<strong>di</strong>zione <strong>di</strong> regime nell’ipotesi che le con<strong>di</strong>zioni al contorno rimangano<br />

costanti. L’affidabilità dei risultati cala con le iterazioni <strong>in</strong> quanto le con<strong>di</strong>zioni al<br />

contorno del caso reale variano cont<strong>in</strong>uamente.<br />

Rive<strong>di</strong>amo adesso le equazioni utilizzate, già <strong>in</strong>trodotte precedentemente, ma<br />

riscritte <strong>in</strong> term<strong>in</strong>i <strong>di</strong> l<strong>in</strong>guaggio <strong>di</strong> programmazione. Per quanto riguarda le gran-<br />

dezze utilizzate nei programmi, abbiamo def<strong>in</strong>ito una notazione spazio-temporale<br />

per decidere i loro nomi senza <strong>in</strong>cappare <strong>in</strong> fasti<strong>di</strong>ose ambiguità: quando utilizzia-<br />

mo i suffissi prima e dopo, ci riferiamo al tempo, mentre quando usiamo seguente<br />

e precedente, ci riferiamo allo spazio.<br />

Con questa <strong>di</strong>st<strong>in</strong>zione ben presente, abbiamo def<strong>in</strong>ito una serie <strong>di</strong> variabili.<br />

Def<strong>in</strong>izione 5.1 • dendop � Densità lungo la tratta <strong>in</strong> analisi prevista per<br />

l’istante <strong>di</strong> tempo successivo.<br />

• denpri � Densità lungo la tratta <strong>in</strong> analisi relativa all’istante <strong>di</strong> tempo<br />

precedente quello per cui si stanno eseguendo le previsioni.<br />

193


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

• veldop � Velocità lungo la tratta <strong>in</strong> analisi prevista per l’istante <strong>di</strong> tempo<br />

successivo.<br />

• velpri � Velocità lungo la tratta <strong>in</strong> analisi relativa all’istante <strong>di</strong> tempo<br />

prima <strong>di</strong> quello per cui si stanno eseguendo le previsioni.<br />

• velpripre � Velocità lungo la tratta precedente quella <strong>in</strong> analisi relati-<br />

va all’istante <strong>di</strong> tempo precedente quello per cui si stanno eseguendo le<br />

previsioni.<br />

• periodo � Periodo <strong>di</strong> simulazione (assunto pari ad un m<strong>in</strong>uto).<br />

• <strong>in</strong><strong>di</strong>ce = [0, 13] � In<strong>di</strong>ce necessario per scorrere i vettori.<br />

• δ[<strong>in</strong><strong>di</strong>ce] � Vettore contenente le lunghezze delle tratte (identificate<br />

dall’<strong>in</strong><strong>di</strong>ce).<br />

• flupripre � Flusso lungo la tratta precedente quella <strong>in</strong> analisi e relati-<br />

vo all’<strong>in</strong>stante <strong>di</strong> tempo prima <strong>di</strong> quello per cui si stanno eseguendo le<br />

previsioni.<br />

• flupri � Flusso lungo la tratta <strong>in</strong> analisi e relativo all’<strong>in</strong>stante <strong>di</strong> tempo<br />

prima <strong>di</strong> quello per cui si stanno eseguendo le previsioni.<br />

• <strong>in</strong>gpri � Flusso <strong>in</strong> <strong>in</strong>gresso relativo alla tratta <strong>in</strong> esame e valutato per l’i-<br />

stante <strong>di</strong> tempo prima <strong>di</strong> a quello per cui si stanno eseguendo le previsioni.<br />

• uscpri � Flusso <strong>in</strong> uscita relativo alla tratta <strong>in</strong> esame e valutato per l’i-<br />

stante <strong>di</strong> tempo prima <strong>di</strong> quello per cui si stanno eseguendo le previsioni.<br />

• funzionev � Equazione fondamentale <strong>di</strong> Papageorgiou. Viene <strong>di</strong>scussa<br />

approfon<strong>di</strong>tamente <strong>in</strong> 5.2.3.<br />

• τ[<strong>in</strong><strong>di</strong>ce] � Parametro dell’equazione della velocità. È variabile per ogni<br />

tratta.<br />

• χ[<strong>in</strong><strong>di</strong>ce] � Parametro dell’equazione della velocità. È variabile per ogni<br />

tratta.<br />

194


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

• ν[<strong>in</strong><strong>di</strong>ce] � Parametro dell’equazione della velocità. È variabile per ogni<br />

tratta.<br />

• l[<strong>in</strong><strong>di</strong>ce] � Parametro dell’equazione fondamentale <strong>di</strong> Papageorgiou. È<br />

variabile per ogni tratta.<br />

• m[<strong>in</strong><strong>di</strong>ce] � Parametro dell’equazione fondamentale <strong>di</strong> Papageorgiou. È<br />

variabile per ogni tratta.<br />

• vmax[<strong>in</strong><strong>di</strong>ce] � Parametro relativo alla tratta e rappresentativo della ve-<br />

locità massima sostenibile <strong>in</strong> quella tratta.<br />

• ρmax[<strong>in</strong><strong>di</strong>ce] � Parametro relativo alla tratta e rappresentativo della den-<br />

sità massima sostenibile <strong>in</strong> quella tratta.<br />

5.2.1 Equazione della Densità<br />

Parliamo ora dell’equazione della densità (misurata <strong>in</strong> [veicoli] · [km] −1 ):<br />

� �<br />

periodo<br />

dendop = denpri +<br />

∗(flupripre −flupri +<strong>in</strong>gpri −uscpri). (5.1)<br />

δ[<strong>in</strong><strong>di</strong>ce]<br />

Questa equazione mostra come la densità per un istante <strong>di</strong> simulazione sia<br />

supposta uguale alla densità come era all’istante precedente corretta dall’effetto<br />

dei flussi sulle tratte contigue (la precedente e la seguente).<br />

Per ogni tratta, vi è una grandezza, che possiamo chiamare flusso <strong>in</strong>crementale, e<br />

che quantifica l’aumento del numero <strong>di</strong> auto nella tratta per ogni istante <strong>di</strong> tem-<br />

po. Tale flusso è dato da: il flusso <strong>in</strong> entrata nella tratta (proveniente dalla tratta<br />

precedente) sommato a quello <strong>in</strong> <strong>in</strong>gresso dal casello ed a cui bisogna sottrarre il<br />

flusso <strong>in</strong> moto verso la tratta successiva ed il flusso <strong>in</strong> uscita dal casello.<br />

195


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Flusso entrante Flusso Uscente<br />

Flusso Ingressi Flusso Uscite<br />

Figura 5.2: Flusso lungo una tratta<br />

Gli <strong>in</strong>gressi e le uscite dei caselli per ogni tratta sono note (a parte per la sta-<br />

zione 655, <strong>di</strong> cui abbiamo già parlato <strong>in</strong> precedenza) e vengono <strong>in</strong>izializzate per<br />

poi rimanere costanti lungo tutta la durata della simulazione. Ciò <strong>in</strong>troduce un<br />

errore, dal momento che ogni volta si hanno valori variabili. Questo è un esem-<br />

pio <strong>di</strong> con<strong>di</strong>zioni al contorno <strong>di</strong>namiche che <strong>in</strong>troducono un errore cont<strong>in</strong>uo nella<br />

simulazione rendendo maggiore l’imprecisione con l’avanzare della simulazione.<br />

Con riferimento alla Figura 5.3 possiamo vedere come il flusso <strong>in</strong> entrata nella<br />

tratta sia dato dal flusso nella tratta precedente <strong>di</strong>m<strong>in</strong>uito dall’uscita della tratta<br />

precedente (flusso rosso - flusso verde)<br />

Figura 5.3: Flusso a cavallo <strong>di</strong> due tratte<br />

Il flusso <strong>in</strong> uscita dalla tratta è dato <strong>in</strong>vece dal flusso sulla tratta successiva<br />

196


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

<strong>di</strong>m<strong>in</strong>uito dell’<strong>in</strong>gresso sulla tratta successiva (flusso blu = flusso nero - flusso<br />

giallo).<br />

Tutti gli elementi del fattore correttivo sono calcolati <strong>in</strong> numero <strong>di</strong> vetture per<br />

ora, qu<strong>in</strong><strong>di</strong> il fattore viene moltiplicato per il periodo misurato <strong>in</strong> ore (il nostro<br />

periodo è <strong>di</strong> un m<strong>in</strong>uto, qu<strong>in</strong><strong>di</strong> 0, 01667ore) e si ottiene così il numero <strong>di</strong> veicoli<br />

<strong>in</strong> aumento o <strong>in</strong> <strong>di</strong>m<strong>in</strong>uzione sulla tratta nel periodo appena trascorso. Tale nu-<br />

mero <strong>di</strong> veicoli viene <strong>di</strong>viso per la lunghezza della tratta ottenendo una densità<br />

<strong>in</strong>crementale da sommare a quella dell’iterazione precedente per ottenere il valore<br />

attuale.<br />

5.2.2 Equazione della Velocità<br />

L’equazione della velocità si scrive come <strong>di</strong> seguito.<br />

veldop =<br />

= velpri+<br />

+ periodo<br />

τ[<strong>in</strong><strong>di</strong>ce] · (funzionev(<strong>in</strong><strong>di</strong>ce, denpri) − velpri)+<br />

+ periodo<br />

δ[<strong>in</strong><strong>di</strong>ce] · velpri · (velpripre − velpri)−<br />

+ (ν[<strong>in</strong><strong>di</strong>ce] · periodo · (denpriseg − denpri))<br />

((τ[<strong>in</strong><strong>di</strong>ce] · δ[<strong>in</strong><strong>di</strong>ce]) · (denpri + χ[<strong>in</strong><strong>di</strong>ce]))<br />

(5.2)<br />

Su una tratta, la velocità calcolata per una iterazione è uguale alla velocità pre-<br />

cedente, variata da 3 parametri ad<strong>di</strong>tivi moltiplicati per coefficienti che riportano<br />

le grandezze alla <strong>di</strong>mensione della velocità ([km][h] −1 ).<br />

Il primo term<strong>in</strong>e contiene funzionev(<strong>in</strong><strong>di</strong>ce, denpri)−velpri: esso fornisce<br />

un’<strong>in</strong><strong>di</strong>cazione su quanto può variare la velocità rispetto al suo valore precedente,<br />

facendo riferimento all’equazione fondamentale <strong>di</strong> Papageorgiou (5.2.3).<br />

Il secondo term<strong>in</strong>e è velpripre −velpri e fornisce un’<strong>in</strong><strong>di</strong>cazione su quanto può<br />

variare la velocità sulla tratta considerata a causa della velocità sulla tratta prece-<br />

197


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

dente; se sulla tratta precedente la velocità è <strong>in</strong> decremento, a parità <strong>di</strong> densità,<br />

evidentemente <strong>di</strong>m<strong>in</strong>uirà anche sulla tratta successiva.<br />

L’ultimo term<strong>in</strong>e, denpriseg − denpri fornisce un’<strong>in</strong>formazione su come evol-<br />

ve la velocità <strong>in</strong> rapporto alla <strong>di</strong>versa densità della tratta successiva. Se sulla tratta<br />

successiva il traffico è congestionato (e qu<strong>in</strong><strong>di</strong> la densità è molto elevata) l’effetto<br />

si ripercuote all’<strong>in</strong><strong>di</strong>etro come un rallentamento. Il comportamento è duale <strong>in</strong> ca-<br />

so <strong>di</strong> situazione opposta: <strong>in</strong> pratica si ottiene uno snellimento del traffico. Questi<br />

fenomeni <strong>di</strong> propagazione a ritroso prendono il nome <strong>di</strong> back-waves e ci ricon-<br />

ducono al collegamento del modello <strong>di</strong> traffico con quello <strong>di</strong> propagazione delle<br />

onde <strong>in</strong> un un fluido.<br />

5.2.3 Equazione Fondamentale <strong>di</strong> Papageorgiou<br />

Abbiamo già spiegato come il nostro riferimento teorico sia stato il lavoro dell’<strong>in</strong>g.<br />

Papageorgiou; uno dei suoi contributi più significativi è stato quello <strong>di</strong> determi-<br />

nare un’equazione, derivata da prove sperimentali, <strong>in</strong> grado <strong>di</strong> <strong>in</strong><strong>di</strong>care la velocità<br />

me<strong>di</strong>a tenuta dalle vetture <strong>in</strong> funzione della loro densità su una tratta stradale.<br />

L’equazione <strong>di</strong> cui stiamo parlando è quella a cui ci siamo riferiti f<strong>in</strong>o a questo<br />

momento come equazione fondamentale <strong>di</strong> Papageorgiou e si può scrivere nella<br />

forma seguente.<br />

⎛�<br />

vel = vmax[<strong>in</strong><strong>di</strong>ce] · ⎝<br />

1 −<br />

l[<strong>in</strong><strong>di</strong>ce]<br />

denpri<br />

ρmax[<strong>in</strong><strong>di</strong>ce]<br />

�m[<strong>in</strong><strong>di</strong>ce] ⎞<br />

⎠ ; (5.3)<br />

Il significato fisico <strong>di</strong> tale formula è molto chiaro: la velocità me<strong>di</strong>a che le<br />

vetture tengono è uguale alla velocità massima tipica della tratta stradale (vmax)<br />

opportunamente <strong>di</strong>m<strong>in</strong>uita <strong>di</strong> un fattore che <strong>di</strong>pende dal rapporto� fra la densità � che<br />

denpri<br />

si è effettivamente riscontrata e la densità <strong>di</strong> congestionamento .<br />

ρmax<br />

Gli esponenti l ed m si ottengono sperimentalmente e sono <strong>di</strong>versi per ogni trat-<br />

ta stradale e <strong>di</strong>pendono anche dalle con<strong>di</strong>zioni al contorno. Lo stesso <strong>di</strong>casi per<br />

i parametri della tratta vmax e ρmax; questi valori però possono almeno <strong>in</strong>izial-<br />

mente essere ipotizzati <strong>in</strong> base a semplici considerazioni fisiche sul tratto stradale<br />

198


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

preso <strong>in</strong> esame (ad esempio vmax può essere il limite <strong>di</strong> velocità e ρmax metà<br />

del limite teorico della densità, corrispondente alla situazione <strong>in</strong> cui le auto sono<br />

letteralmente a contatto una con l’altra).<br />

5.2.4 Funzionamento del Programma<br />

Il programma è stato costruito come una catena <strong>di</strong> meto<strong>di</strong> che vengono richiamati<br />

<strong>in</strong> serie. Per spiegare il funzionamento del programma, analizzeremo uno per uno<br />

i meto<strong>di</strong>, nell’or<strong>di</strong>ne con cui sono <strong>in</strong>vocati.<br />

Inizialmente, l’utente deve scegliere se effettuare una simulazione s<strong>in</strong>gola o<br />

una serie <strong>di</strong> simulazioni. Nel primo caso, il programma esegue una simulazione<br />

istantaneamente, mentre nel secondo caso esegue una serie <strong>di</strong> simulazioni a partire<br />

da un’ora def<strong>in</strong>ita <strong>in</strong>ternamente al co<strong>di</strong>ce e f<strong>in</strong>o ad un’altra ora sempre def<strong>in</strong>ita nel<br />

co<strong>di</strong>ce. Per illustrare il funzionamento del simulatore, ci riferiremo al caso <strong>di</strong> una<br />

simulazione s<strong>in</strong>gola.<br />

L’utente può <strong>in</strong>oltre scegliere se scrivere i dati così calcolati sul database o se<br />

memorizzarli semplicemente <strong>in</strong> strutture <strong>in</strong>terne al computer locale (files XML).<br />

Esistono quattro classi per questo programma:<br />

• C1, che costituisce la classe pr<strong>in</strong>cipale del programma e che gestisce le<br />

opzioni <strong>in</strong>izialmente offerte all’utente;<br />

• XMLWorks, che contiene i meto<strong>di</strong> che ci consentono <strong>di</strong> trasferire i dati<br />

calcolati dal software su files XML memorizzati su <strong>di</strong>sco;<br />

• Queries, che contiene i meto<strong>di</strong> relativi alle <strong>in</strong>terazioni con il database<br />

realizzate tramite i pr<strong>in</strong>cipi del JDBC.<br />

• Funzioni, che raccoglie alcune funzioni matematiche esternalizzate per<br />

rendere più leggibile il programma.<br />

La Figura 5.4 mostra la sequenza logica del programma.<br />

199


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Def<strong>in</strong>izioni<br />

Ri<strong>di</strong>mensionamento dei vettori<br />

Inizializzazione dei vettori<br />

Cancellazione i files XML già esistenti<br />

Inizializzazione dei parametri<br />

Inizializzazione degli <strong>in</strong>gressi sulle tratte<br />

Inizializzazione delle uscite sulle tratte<br />

Inizializzazione delle velocità <strong>in</strong>iziali sulle tratte<br />

Inizializzazione dei flussi <strong>in</strong>iziali sulle tratte<br />

Inizializzazione delle densità <strong>in</strong>iziali sulle tratte<br />

Simulazione - Calcolo delle equazioni<br />

Scrittura dei files XML<br />

Cancellazione delle simulazioni sul database più vecchie <strong>di</strong> tre giorni<br />

Se l’utente ha scelto <strong>di</strong> scrivere i risultati sul database<br />

Scrittura sul database dei risultati della simulazione<br />

Se l’utente ha scelto <strong>di</strong> effettuare una simulazione multipla<br />

Esecuzione del processo <strong>di</strong> simulazione dal primo punto<br />

Figura 5.4: Sequenza logica del programma <strong>di</strong> simulazione<br />

Illustriamo <strong>di</strong> seguito i s<strong>in</strong>goli meto<strong>di</strong>.<br />

200


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

5.2.5 Def<strong>in</strong>izioni<br />

Questo non è un vero e proprio metodo, bensì una parte <strong>in</strong>troduttiva <strong>di</strong> co<strong>di</strong>ce<br />

contenente tutte le def<strong>in</strong>izioni <strong>di</strong> cui il nostro programma ha bisogno. Ad esempio,<br />

def<strong>in</strong>iamo le strutture dati corrispondenti alle grandezze def<strong>in</strong>ite <strong>in</strong> 5.1<br />

5.2.6 Ri<strong>di</strong>mensionamento dei Vettori<br />

Un elemento tipico <strong>di</strong> Java è la separazione tra la def<strong>in</strong>izione <strong>di</strong> un vettore ed il<br />

suo <strong>di</strong>mensionamento. Tutte le grandezze <strong>di</strong>pendenti dalla tratta o dal tempo (o<br />

da entrambi) sono rappresentate <strong>in</strong> l<strong>in</strong>guaggio <strong>di</strong> programmazione da vettori. La<br />

<strong>di</strong>mensione relativa alle tratte è pari al numero <strong>di</strong> tratte (cioè 14) mentre la <strong>di</strong>men-<br />

sione relativa al tempo è pari all’istante <strong>in</strong>iziale più i 30 m<strong>in</strong>uti <strong>di</strong> simulazione (per<br />

un totale <strong>di</strong> 31 elementi). Abbiamo anche dati provenienti dalle boe che necessi-<br />

tano <strong>di</strong> essere organizzati <strong>in</strong> vettori con tanti elementi quante sono le boe presenti<br />

sul nostro tratto. In <strong>di</strong>rezione <strong>di</strong> Brescia, ad esempio, abbiamo 11 boe. Discorso<br />

analogo per le spire (3) e per le stazioni (16).<br />

5.2.7 Inizializzazione dei Vettori<br />

I vettori sono stati prima def<strong>in</strong>iti e poi ri<strong>di</strong>mensionati. In questo metodo <strong>in</strong>izia-<br />

lizziamo tutti i vettori i cui valori rimangono <strong>in</strong>variati durante la simulazione;<br />

questi sono i vettori relativi ai parametri fisici dell’autostrada: δ (lunghezza delle<br />

tratte autostradali) ρmax, vmax, l, m (parametri dell’equazione fondamentale <strong>di</strong><br />

Papageorgiou). Si capisce come questi valori, variabili rispetto alla tratta, sono<br />

comunque essenzialmente <strong>in</strong><strong>di</strong>pendenti dal tempo.<br />

5.2.8 Cancellazione dei Files XML<br />

Abbiamo già accennato al fatto che i dati calcolati sono memorizzati <strong>in</strong> files<br />

XML. Questi files sono tanti quante sono le tratte <strong>in</strong> analisi e si chiamano da<br />

Grafico1.xml f<strong>in</strong>o a Grafico14.xml. Ciascuno contiene i dati relativi<br />

201


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

a velocità, densità e flusso per ogni m<strong>in</strong>uto <strong>di</strong> simulazione. Nell’Estratto 5.1<br />

ve<strong>di</strong>amo un esempio <strong>di</strong> questi files XML.<br />

Estratto 5.1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

. . . .<br />

<br />

<br />

Questi files XML devono essere riaggiornati ad ogni lancio del simulatore. In<br />

pratica, noi li cancelliamo prima per poi riscriverli.<br />

5.2.9 Inizializzazione dei Parametri<br />

Le grandezze che <strong>in</strong>tervengono nella simulazione devono essere <strong>in</strong>izializzate con<br />

valori coerenti, importantissimi per la riuscita della simulazione. τ fornisce un’<strong>in</strong>-<br />

<strong>di</strong>cazione <strong>di</strong> quanto rapidamente la velocità si assesta sul valore teorico ricavato<br />

dall’equazione fondamentale <strong>di</strong> Papageorgiou (<strong>in</strong> pratica va ad agire aumentando<br />

o <strong>di</strong>m<strong>in</strong>uendo il secondo term<strong>in</strong>e nell’equazione della velocità). ν e χ <strong>in</strong>tervengo-<br />

no sul terzo term<strong>in</strong>e dell’equazione della velocità (quella relativa alla back-wave<br />

<strong>di</strong> densità); <strong>in</strong> particolare, ν <strong>in</strong><strong>di</strong>ca quanto rapidamente la velocità varia a causa<br />

dell’effetto della densità <strong>di</strong>fferente sulla tratta successiva, <strong>in</strong>vece χ è un livello<br />

m<strong>in</strong>imo teorico <strong>di</strong> densità e fornisce un limite superiore al terzo term<strong>in</strong>e. Se la<br />

densità sulla tratta tendesse a zero, e χ non ci fosse, la velocità <strong>in</strong>crementale del<br />

terzo term<strong>in</strong>e tenderebbe all’<strong>in</strong>f<strong>in</strong>ito, <strong>in</strong> quanto a denom<strong>in</strong>atore compare proprio<br />

la densità sulla tratta. I valori <strong>di</strong> questi parametri sono stati stimati tramite un’a-<br />

202


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

nalisi statistica: abbiamo trovato i valori per i quali la curva densità-flusso rilevata<br />

sulla rete è m<strong>in</strong>imamente <strong>di</strong>fferente da quella determ<strong>in</strong>ata analiticamente.<br />

5.2.10 Inizializzazione degli Ingressi<br />

Gli <strong>in</strong>gressi e le uscite lungo la tratta vanno <strong>in</strong>izializzati con dati che rivestono<br />

una grande importanza, dal momento che gli <strong>in</strong>gressi alle varie stazioni con<strong>di</strong>zio-<br />

nano <strong>di</strong>rettamente la densità sulle tratte e qu<strong>in</strong><strong>di</strong> <strong>in</strong><strong>di</strong>rettamente la velocità me<strong>di</strong>a<br />

dei veicoli. Tale parametro viene passato al simulatore tramite l’uso della JDBC<br />

illustrato <strong>in</strong> 5.2.14. Al primo giro <strong>di</strong> simulazione vengono <strong>in</strong>seriti gli <strong>in</strong>gressi ef-<br />

fettivamente rilevati alle stazioni estratti <strong>di</strong>rettamente dai dati della base. Dalla<br />

seconda iterazione <strong>in</strong> poi il simulatore agisce sul futuro e non è possibile avere<br />

<strong>in</strong>formazioni esatte sugli <strong>in</strong>gressi. La prima versione del programma imposta gli<br />

<strong>in</strong>gressi ad un valore costante lungo l’<strong>in</strong>tero arco <strong>di</strong> simulazione. Questo valore<br />

è calcolato come me<strong>di</strong>a dei valori recepiti nei c<strong>in</strong>que m<strong>in</strong>uti precedenti. Natu-<br />

ralmente, si <strong>in</strong>troduce un errore non <strong>in</strong><strong>di</strong>fferente <strong>in</strong> questo modo: abbiamo già<br />

stu<strong>di</strong>ato un modo per risolvere questo problema, ma non lo abbiamo ancora reso<br />

operativa la mo<strong>di</strong>fica.<br />

Un altro possibile problema, molto critico per la simulazione, (che poi <strong>in</strong> effetti<br />

abbiamo dovuto affrontare a causa della stazione 655) è il caso <strong>in</strong> cui una stazione<br />

non <strong>in</strong>vii segnali al database per qualche particolare malfunzionamento. Questo<br />

fatto potrebbe essere confuso, per esempio, con una situazione <strong>di</strong> traffico effet-<br />

tivamente molto ridotto (ad esempio nelle ore notturne) o dall’effettiva chiusura<br />

della stazione <strong>di</strong> <strong>in</strong>gresso (per <strong>in</strong>cidente o per una qualunque causa esterna). Si è<br />

scelto per ora <strong>di</strong> considerare un <strong>in</strong>gresso che viene <strong>in</strong>izializzato a zero come un<br />

errore; pertanto un controllo fa <strong>in</strong> modo che gli <strong>in</strong>gressi nulli vengano rimpiaz-<br />

zati con un valore correttivo posto pari alla me<strong>di</strong>a fra gli <strong>in</strong>gressi <strong>di</strong> tutte le altre<br />

stazioni <strong>di</strong> nostra competenza. Con un ciclo <strong>di</strong> controllo sul vettore degli <strong>in</strong>gressi<br />

i valori nulli vengono aggiornati con la me<strong>di</strong>a fra tutti i valori non nulli. È da<br />

considerare il fatto che, se i valori nulli <strong>in</strong>iziano ad essere preponderanti, la stima<br />

data dalla me<strong>di</strong>a sarà molto poco accurata; se tutti i valori fossero nulli tranne<br />

uno verrebbero tutti posti uguali a quel valore e se fossero tutti nulli, resterebbe-<br />

203


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

ro tali. In questa maniera il valore correttivo <strong>di</strong>venta una stima, e tiene conto <strong>di</strong><br />

eventuali trend giornalieri e stagionali (che si possono presumere abbastanza coe-<br />

renti per tutte le stazioni); purtroppo non tiene <strong>in</strong> alcuna considerazione la <strong>di</strong>versa<br />

importanza delle stazioni: appare evidente che <strong>in</strong> qualsiasi momento saranno <strong>in</strong><br />

maggior numero gli <strong>in</strong>gressi dalla barriera <strong>di</strong> Milano o dalla stazione <strong>di</strong> Brescia<br />

Ovest piuttosto che quelli da Grumello o Ponte Oglio.<br />

Inoltre, anche essendo noto il numero <strong>di</strong> veicoli <strong>in</strong> <strong>in</strong>gresso alle varie stazioni, una<br />

volta che essi hanno superato il casello, non è possibile sapere con esattezza <strong>in</strong><br />

quale delle due <strong>di</strong>rezioni (Brescia o Milano) si siano <strong>di</strong>retti. Per risolvere que-<br />

sto abbiamo utilizzato la matrice orig<strong>in</strong>e-dest<strong>in</strong>azione (4.1.4) e ne abbiamo tratto<br />

(tramite considerazioni statistiche) un coefficiente correttivo che <strong>in</strong><strong>di</strong>ca <strong>in</strong> me<strong>di</strong>a<br />

quale porzione dei veicoli <strong>in</strong> <strong>in</strong>gresso si <strong>di</strong>rige verso Brescia piuttosto che verso<br />

Milano.<br />

5.2.11 Inizializzazione delle Uscite<br />

Questo metodo <strong>in</strong>izializza i valori delle uscite per le varie stazioni lungo la trat-<br />

ta. Così come per gli <strong>in</strong>gressi, questo è un dato molto importante poiché anche<br />

<strong>in</strong> questo caso vi è <strong>di</strong>pendenza con la densità sulle tratte e con la velocità me<strong>di</strong>a<br />

dei veicoli. I problemi sono esattamente gli stessi già visti per il caso degli <strong>in</strong>-<br />

gressi. Pertanto, per ogni stazione, il valore <strong>in</strong>iziale è impostato come la me<strong>di</strong>a<br />

delle uscite nei 5 m<strong>in</strong>uti precedenti. Tutti i valori delle uscite nelle iterazioni suc-<br />

cessive <strong>di</strong> simulazione vengono posti pari al valore <strong>in</strong>iziale e viene effettuato un<br />

controllo per correggere eventuali valori nulli e sostituirli con la me<strong>di</strong>a dei valori<br />

non nulli. L’unico problema che non si pone è quello della non determ<strong>in</strong>azione<br />

della <strong>di</strong>rezione; <strong>in</strong>fatti per i dati <strong>in</strong> uscita, si può conoscere la stazione <strong>di</strong> <strong>in</strong>gresso<br />

e, qu<strong>in</strong><strong>di</strong>, limitare i dati delle uscite ai soli veicoli che hanno percorso l’autostrada<br />

nella <strong>di</strong>rezione Milano-Brescia.<br />

204


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

5.2.12 Inizializzazione <strong>di</strong> Velocità, Flussi e Densità<br />

Velocità, densità e flussi me<strong>di</strong> dei veicoli sulle tratte sono le variabili <strong>di</strong> stato e<br />

sono la risposta che il simulatore offre per stimare lo stato del traffico nel futuro.<br />

Il simulatore potrebbe elaborare una probabile situazione <strong>di</strong> regime del traffico<br />

anche partendo da variabili <strong>di</strong> stato <strong>in</strong>izializzate casualmente, <strong>in</strong> quanto le variabili<br />

<strong>di</strong> stato sono quelle che vanno ad essere mo<strong>di</strong>ficate e ad <strong>in</strong>teragire fra loro ad<br />

ogni iterazione <strong>di</strong> simulazione. Chiaramente, questa non è la soluzione migliore:<br />

<strong>in</strong>nanzitutto, seppur abbastanza raramente, potrebbero esserci delle <strong>di</strong>scont<strong>in</strong>uità<br />

<strong>di</strong> funzionamento del modello matematico a seconda delle <strong>di</strong>fferenti con<strong>di</strong>zioni<br />

<strong>in</strong>iziali e qu<strong>in</strong><strong>di</strong> potrebbe accadere che con valori <strong>in</strong>iziali non reali si giunga ad<br />

una soluzione f<strong>in</strong>ale molto errata. Se i valori <strong>in</strong>iziali delle variabili <strong>di</strong> stato, che<br />

sono proprio quelle che costituiscono l’<strong>in</strong>formazione sulla situazione <strong>in</strong> cui si<br />

trova il traffico veicolare, fossero esatti dal pr<strong>in</strong>cipio, potremmo supporre che il<br />

modello descriva <strong>in</strong> maniera corretta l’andamento del traffico f<strong>in</strong> da subito. Qu<strong>in</strong><strong>di</strong><br />

è possibile non solo fornire un’<strong>in</strong>formazione su come andrà a regime lo stato del<br />

traffico, ma si può anche <strong>di</strong>re con buona precisione fra quanto tempo raggiungerà<br />

questa situazione <strong>di</strong> regime e ancor più sarà possibile <strong>in</strong><strong>di</strong>care il comportamento<br />

del traffico nel transitorio. I risultati sono ottimi a due con<strong>di</strong>zioni: i) che il modello<br />

rappresenti la realtà <strong>in</strong> maniera adeguata e che qu<strong>in</strong><strong>di</strong> il simulatore si comporti <strong>in</strong><br />

maniera analoga al traffico reale, e questo <strong>di</strong>pende soprattutto dall’esattezza dei<br />

parametri delle tratte (ρmax, vmax, l, m per tutte e 14 le tratte) e del simulatore (τ,<br />

χ, ν); ii) che i dati degli <strong>in</strong>gressi e delle uscite nelle varie iterazioni <strong>di</strong> simulazione<br />

siano il più precisi possibile.<br />

Questo purtroppo trova <strong>di</strong>fficoltà nei motivi illustrati <strong>in</strong> precedenza.<br />

Inizializzazione delle Velocità Iniziali<br />

Dal database estraiamo i valori delle stime attuali delle velocità, che vengono uti-<br />

lizzate per il software <strong>in</strong>terno <strong>di</strong> AutoTraf. Abbiamo notato che i valori presenti<br />

sul database e quelli esposti dalla pag<strong>in</strong>a web <strong>di</strong> AutoTraf sono sempre <strong>di</strong>fferenti;<br />

precisamente i valori resi dalla pag<strong>in</strong>a web <strong>di</strong> AutoTraf sono sempre lievemente<br />

<strong>in</strong>feriori rispetto a quelli presenti sul database. Probabilmente, chi ha elaborato<br />

205


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

AutoTraf, ha rilevato che le stime (che sono effettuate sfruttando i tempi <strong>di</strong> per-<br />

correnza fra casello e casello o fra boa e boa oppure fra boa e casello o casello e<br />

boa e me<strong>di</strong>andoli con <strong>di</strong>versi pesi) sono superiori ai valori realmente verificati ed<br />

ha pensato <strong>di</strong> <strong>di</strong>m<strong>in</strong>uire con un opportuno coefficiente le proprie stime. Fidandoci<br />

<strong>di</strong> tale approccio, e qu<strong>in</strong><strong>di</strong> dei dati <strong>di</strong> AutoTraf, le velocità estrapolate dal databa-<br />

se verranno ridotte nell’<strong>in</strong>izializzazione <strong>di</strong> un opportuno coefficiente (si è scelto<br />

quello che m<strong>in</strong>imizza l’errore per alcun dati presenti sulla base <strong>di</strong> dati ed i loro<br />

corrispettivi su AutoTraf) stimato a 0.886. Con questa correzione, i valori con cui<br />

<strong>in</strong>izializziamo le velocità all’<strong>in</strong>izio della simulazione, sono gli stessi che compa-<br />

iono su AutoTraf. Sui valori estratti dal database viene eseguito un controllo <strong>in</strong><br />

caso <strong>di</strong> valore nullo. Se la velocità stimata fra due stazioni contigue è nulla, il va-<br />

lore <strong>di</strong> tale velocità viene stimato come la me<strong>di</strong>a delle velocità assegnate alle altre<br />

tratte. Questa stima è chiaramente poco precisa ed affidabile (la velocità me<strong>di</strong>a<br />

può cambiare molto da tratta a tratta) ma non avendo nessun’altra <strong>in</strong>formazione<br />

utilizzabile abbiamo ritenuto conveniente porre un valore coerente con quelli delle<br />

altre tratte.<br />

In questa parte <strong>di</strong> co<strong>di</strong>ce <strong>in</strong>izializziamo anche il parametro v00, ovvero la velocità<br />

alla barriera <strong>di</strong> Milano. Inizialmente avevamo scelto v00 = 0: le auto <strong>in</strong> teoria<br />

partono da ferme <strong>in</strong> uscita dalla barriera <strong>di</strong> Milano; tale scelta si è rivelata sba-<br />

gliata dal momento che rischia <strong>di</strong> rallentare la velocità simulata nella prima tratta<br />

a causa del secondo term<strong>in</strong>e dell’equazione delle velocità. Ciò accade soprattutto<br />

se il valore <strong>di</strong> τ è abbastanza elevato (con τ = 0.02, come è stato <strong>in</strong>serito, l’effetto<br />

del rallentamento non si percepisce più). Inf<strong>in</strong>e, viene impostato il vettore v14,<br />

ovvero la velocità sulla tratta successiva all’ultima <strong>di</strong> nostra competenza <strong>in</strong> <strong>di</strong>re-<br />

zione Milano-Brescia. Esso viene estratto dal database come la velocità me<strong>di</strong>a<br />

recepita dalla spira 74 presente proprio su quella tratta. Questo valore <strong>di</strong> velocità<br />

viene poi mantenuto costante per tutte le rimanenti iterazioni <strong>di</strong> simulazione. Il<br />

metodo <strong>di</strong> stima, con i suoi pregi ed i suoi <strong>di</strong>fetti, è lo stesso utilizzato per gli<br />

<strong>in</strong>gressi ed uscite. Se il parametro <strong>in</strong>iziale v14[0] ha valore zero a causa del non<br />

funzionamento della spira 74, la risposta della simulazione risulterà assolutamente<br />

non atten<strong>di</strong>bile. D’altra parte, avrebbe poco senso trovare una soluzione alterna-<br />

206


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

tiva, <strong>in</strong> quanto è molto <strong>di</strong>fficile poter ottenere buone stime senza l’utilizzo delle<br />

<strong>in</strong>formazioni provenienti dalle spire.<br />

Inizializzazione dei Flussi Iniziali<br />

Dal database vengono estratti i dati relativi ai flussi veicolari rilevati dalle boe e<br />

quelli rilevati dalle spire (anche <strong>in</strong> questo caso si considera il valore me<strong>di</strong>o sui<br />

valori rilevati nei 5 m<strong>in</strong>uti precedenti). I flussi delle boe e delle spire vengono<br />

controllati e se un valore è nullo, esso viene corretto con la me<strong>di</strong>a dei valori non<br />

nulli. Il problema <strong>di</strong> questa <strong>in</strong>izializzazione è che, mentre le spire percepiscono<br />

il flusso costituito dalla totalità dei veicoli, le boe sono <strong>in</strong> grado <strong>di</strong> cogliere sol-<br />

tanto il passaggio dei veicoli muniti <strong>di</strong> apparecchio telepass. Pertanto, il flusso<br />

ottenuto dalle boe è soltanto una porzione <strong>di</strong> quello totale effettivo. L’unico modo<br />

<strong>di</strong> ovviare a questo problema è <strong>di</strong> correggere i flussi delle boe con un opportuno<br />

coefficiente che possa stimare l’effettivo flusso veicolare <strong>in</strong> transito sotto una de-<br />

term<strong>in</strong>ata boa. Per far questo è sufficiente conoscere <strong>in</strong> me<strong>di</strong>a la percentuale <strong>di</strong><br />

automobilisti dotati dell’apparecchio telepass e correggere <strong>di</strong> conseguenza i valori<br />

ottenuti. La percentuale <strong>di</strong> veicoli rilevati dalle boe rispetto al totale è stata cal-<br />

colata con l’Equazione 4.1. Per fissare i flussi <strong>in</strong>iziali basta controllare per ogni<br />

tratta gli apparecchi presenti. Se vi è un solo apparecchio <strong>di</strong> rilevazione, il flusso<br />

<strong>in</strong>iziale sulla tratta è dato dal valore percepito da quel apparecchio (spira o boa<br />

che sia); se su una tratta è presente più <strong>di</strong> un apparecchio, il flusso <strong>in</strong>iziale sulla<br />

tratta è dato dalla me<strong>di</strong>a dei valori rilevati dagli apparecchi; se su una tratta non ci<br />

sono apparecchi, il flusso è calcolato come la me<strong>di</strong>a dei valori assegnati alla tratta<br />

precedente ed alla tratta successiva. Inf<strong>in</strong>e, se un apparecchio che viene <strong>in</strong>terro-<br />

gato si trova a cavallo fra due tratte, nella zona fra uscita della tratta precedente<br />

ed <strong>in</strong>gresso della tratta successiva (che poi sono <strong>in</strong>gresso e uscita della stessa sta-<br />

zione) il valore del flusso viene giustamente corretto sottraendo o aggiungendo il<br />

flusso <strong>di</strong> <strong>in</strong>gresso o <strong>di</strong> uscita del casello della stazione <strong>in</strong> questione.<br />

Analogamente al caso della velocità, viene <strong>in</strong>izializzato q00, ovvero il flusso sul<br />

tratto precedente la barriera <strong>di</strong> Milano. Questo valore viene lasciato a zero <strong>in</strong><br />

quanto tutto il flusso <strong>in</strong> entrata nella prima tratta proviene dal casello <strong>di</strong> Monza e<br />

207


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

dalla Barriera <strong>di</strong> Milano e sono già conteggiati tra gli <strong>in</strong>gressi dalle stazioni. Infi-<br />

ne, viene impostato il vettore q14, contenente i valori del flusso sul tratto stradale<br />

successivo all’ultimo <strong>di</strong> nostra competenza. Tale valore è fondamentale per poter<br />

calcolare l’equazione della densità relativa all’ultima tratta <strong>di</strong> nostra competenza;<br />

q14 viene calcolato tramite il flusso percepito dalla spira 74 e viene mantenuto<br />

costante per tutti i 30 m<strong>in</strong>uti simulati.<br />

Inizializzazione delle Densità Iniziali<br />

La densità dei veicoli sulla tratta è forse il parametro più importante fra le varia-<br />

bili <strong>di</strong> stato che descrivono le con<strong>di</strong>zioni del traffico; <strong>in</strong>fatti, dalla densità si può<br />

calcolare la velocità dei veicoli ed il loro flusso (come descritto nelle equazioni <strong>di</strong><br />

Papageorgiou), e qu<strong>in</strong><strong>di</strong> la stima della densità dovrebbe essere il più possibile cor-<br />

retta. Purtroppo, sulla rete autostradale, l’unica apparecchiatura <strong>in</strong> grado <strong>di</strong> fornire<br />

dati sulla densità sembrerebbe essere la spira. In realtà, è pressoché impossibile<br />

ottenere un qualche dato utilizzabile sulla densità tramite le spire. Innanzitutto,<br />

esse sono <strong>di</strong>stribuite con una frequenza <strong>in</strong>sufficiente per fornire un’<strong>in</strong>formazione<br />

buona ed allo stesso tempo coerente su tutte le tratte; <strong>in</strong>oltre, sebbene nel database<br />

<strong>di</strong> Autostrade sembri che le tabelle relative alle spire possano dare <strong>in</strong>formazio-<br />

ni sulla densità, <strong>in</strong> realtà i dati presenti presentano varie <strong>in</strong>cosistenze nei valori<br />

riportati.<br />

5.2.13 Simulazione<br />

Il metodo Simulazione comprende il co<strong>di</strong>ce per lo sviluppo nei 30 m<strong>in</strong>uti <strong>di</strong><br />

simulazione delle equazioni. Per prima cosa viene <strong>in</strong><strong>di</strong>cato l’istante <strong>in</strong>iziale del-<br />

la simulazione e qu<strong>in</strong><strong>di</strong> il simulatore entra nel ciclo che aggiornerà per 30 volte i<br />

valori delle variabili <strong>di</strong> stato. All’<strong>in</strong>terno <strong>di</strong> questo ciclo, ve ne è un secondo, <strong>in</strong>ne-<br />

stato, che esegue le equazioni <strong>di</strong> aggiornamento sulle 12 tratte autostradali <strong>in</strong>terne<br />

(dalla seconda alla tre<strong>di</strong>cesima); le equazioni della prima e dell’ultima tratta sono<br />

<strong>in</strong>serite nel ciclo esterno (quello che scorre i 30 m<strong>in</strong>uti) poiché le tratte sul conf<strong>in</strong>e<br />

necessitano <strong>di</strong> alcuni parametri particolari trattati <strong>di</strong>versamente dagli altri. Osser-<br />

208


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

viamo quel che accade per una qualsiasi delle tratte <strong>in</strong>terme<strong>di</strong>e (lo stesso accade<br />

per quelle <strong>di</strong> conf<strong>in</strong>e; solo che alcuni dei parametri sono fissati <strong>di</strong>versamente).<br />

Ad ogni istante k e per ogni s<strong>in</strong>gola tratta identificata dal co<strong>di</strong>ce i tratta il<br />

simulatore esegue il seguente flusso operativo.<br />

Estratto 5.2<br />

rho [ k + 1 ] [ i t r a t t a ]= F u n z i o n i . C a l c o l o r h o ( . . . . ) ;<br />

Con questa istruzione viene calcolata la densità all’istante successivo sulla<br />

tratta stessa tramite la funzione calcolo rho.<br />

Estratto 5.3<br />

i f ( rho [ k + 1 ] [ i t r a t t a ]>= rho max [ i t r a t t a ] )<br />

{<br />

rho [ k + 1 ] [ i t r a t t a ]= rho max [ i t r a t t a ] ;<br />

}<br />

Eseguiamo un controllo: se la nuova densità ha un valore superiore alla densità <strong>di</strong><br />

congestione massima relativa a quella tratta, il valore viene corretto e posto uguale<br />

alla densità massima stessa.<br />

Estratto 5.4<br />

i f ( rho [ k + 1 ] [ i t r a t t a ]


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

usata anche come denom<strong>in</strong>atore <strong>di</strong> frazione <strong>in</strong> alcune formule, il valore nullo cree-<br />

rebbe problemi <strong>di</strong> calcolo; <strong>in</strong> fondo, 1veicolo/km è un’ottima approssimazione<br />

<strong>di</strong> autostrada sgombra).<br />

Estratto 5.5<br />

i f ( rho [ k ] [ i t r a t t a ]>= rho max [ i t r a t t a ] )<br />

{<br />

v [ k + 1 ] [ i t r a t t a ]=<br />

. . . .<br />

}<br />

F u n z i o n i . C a l c o l o v (<br />

, rho max [ i t r a t t a ] , ) ;<br />

La velocità sulla tratta è calcolata eseguendo un controllo sulla densità all’i-<br />

stante precedente: se questa era superiore o uguale alla densità massima, allora<br />

la velocità all’istante successivo viene calcolata considerando la densità pari alla<br />

densità massima della tratta.<br />

Estratto 5.6 Da 5.5<br />

. . . .<br />

e l s e<br />

{<br />

v [ k + 1 ] [ i t r a t t a ]=<br />

}<br />

F u n z i o n i . C a l c o l o v (<br />

, rho [ k ] [ i t r a t t a ] , ) ;<br />

Se la densità precedente non ha superato il valore massimo, la velocità all’i-<br />

stante successivo viene calcolata considerando la stessa densità all’istante prece-<br />

dente sulla tratta.<br />

210


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Estratto 5.7<br />

i f ( v [ k + 1 ] [ i t r a t t a ]


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

scritte <strong>di</strong>rettamente dentro il listato Java. Nell’esempio seguente, mostriamo come<br />

sia possibile utilizzare la tecnologia JDBC per scrivere dati sul database.<br />

Estratto 5.9<br />

S t r i n g i n s q u e r y =”INSERT INTO CC PREVISIONE” +<br />

” ( TRATTA ID , ORA SIMULATA, VEL PREVISTA ,<br />

ORA PREVISIONE , DEN PREVISTA ,<br />

FLU PREVISTO , VERSO TRATTA) VALUES ( ” +<br />

( t r +1) + ” , ” +<br />

”TO DATE( ’ ” + o r a s i m + ” ’ ,<br />

’YYYY−MM−DD hh24 : mi : s s ’ ) , ” +<br />

( v e l [ t e ] [ t r ] ) + ” , ” +<br />

”TO DATE( ’ ” + o r a s t a r t + ” ’ ,<br />

’YYYY−MM−DD hh24 : mi : s s ’ ) , ” +<br />

( den [ t e ] [ t r ] ) + ” , ” +<br />

( f l u [ t e ] [ t r ] ) + ” , ” +<br />

0 + ” ) ” ;<br />

S t a t e m e n t s t m t = c . c r e a t e S t a t e m e n t ( ) ;<br />

s t m t . e x e c u t e U p d a t e ( i n s q u e r y ) ;<br />

s t m t . c l o s e ( ) ;<br />

La query è del tutto immersa nel l<strong>in</strong>guaggio Java. Viene costruita <strong>di</strong>namicamente<br />

come un oggetto <strong>di</strong> tipo Str<strong>in</strong>g costituito da varie sottostr<strong>in</strong>ghe unitie tramite il<br />

simbolo +. La str<strong>in</strong>ga viene costruita con l’<strong>in</strong>serimento <strong>di</strong> variabili determ<strong>in</strong>ate <strong>in</strong>-<br />

ternamente al programma: questo la rende a tutti gli effetti una query <strong>di</strong>namica. Il<br />

trattamento particolare riservato alle query <strong>di</strong>namiche è illustrato nella spiegazio-<br />

ne relativa alla query 5.14. Tuttavia, il vantaggio <strong>di</strong> utilizzare la tecnologia JDBC<br />

non è soltanto quello <strong>di</strong> poter utilizzare componenti <strong>di</strong>namiche per la costruzione<br />

<strong>di</strong> query (alla stregua del funzionamento della Stored Procedure implemen-<br />

tate <strong>in</strong> pressoché tutti i pr<strong>in</strong>cipali RDBM), ma è anche quello <strong>di</strong> avere il risultato<br />

della query <strong>in</strong>serito <strong>in</strong> una struttura del l<strong>in</strong>guaggio Java. L’oggetto Statement<br />

può essere associato ad un oggetto Result Set: si tratta <strong>di</strong> una struttura tabel-<br />

212


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

lare non permanente che può essere <strong>in</strong>terpretata <strong>in</strong>ternamente al programma.<br />

Nel nostro caso, molte queries sono statiche, ma richiedono <strong>di</strong> essere <strong>in</strong>cluse <strong>in</strong><br />

strutture Java per successivi trattamenti. A questo scopo abbiamo costruito una<br />

architettura <strong>in</strong> grado <strong>di</strong> unire la semplicità dell’SQL con i vantaggi della JDBC. In<br />

pratica, le queries SQL vengono scritte su files .txt salvati <strong>in</strong> una <strong>di</strong>rectory pre-<br />

def<strong>in</strong>ita. Il programma va a leggere le queries <strong>di</strong>rettamente da questa cartella, ne<br />

trasforma il contenuto <strong>in</strong> un oggetto Str<strong>in</strong>g e crea ed esegue lo Statement. Il re-<br />

sult set associato allo statement può essere così <strong>in</strong>terpretato dal programma. Inol-<br />

tre, è possibile selezionare solo alcune colonne della query scritta su file. Questo è<br />

ottenibile per mezzo <strong>di</strong> una istruzione da <strong>in</strong>serire al term<strong>in</strong>e della query e def<strong>in</strong>ita<br />

da noi stessi. Inserendo l’istruzione break seguita da un numero, si impone al<br />

programma <strong>di</strong> considerare solo tante colonne del result set quante sono richieste<br />

tramite quel numero. Questo approccio consente anche a chi non ha scritto ma-<br />

terialmente il programma <strong>di</strong> mo<strong>di</strong>ficarne facilmente il co<strong>di</strong>ce utilizzando questa<br />

sorta <strong>di</strong> metal<strong>in</strong>guaggio. Purtroppo, con l’aumentare del numero <strong>di</strong> query e del nu-<br />

mero <strong>di</strong> tipologie <strong>di</strong> strutture dati <strong>in</strong> cui i risultati provenienti dal database devono<br />

essere organizzati, abbiamo talvolta fatto ricorso a meto<strong>di</strong> particolari programma-<br />

ti per funzionare con una sola query. Tuttavia, l’organizzazione del programma<br />

tramite l’utilizzo <strong>di</strong> queries salvate esternamente ha permesso uno sviluppo logico<br />

più or<strong>di</strong>nato.<br />

213


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Figura 5.5: Esempio <strong>di</strong> funzionamento del meccanismo <strong>di</strong> elaborazione delle<br />

queries<br />

5.2.15 La Nostra Tabella sul Database<br />

Come detto, è possibile scrivere i nostri dati su una tabella del database. Il databa-<br />

se <strong>di</strong> test delle autostrade ospita <strong>in</strong>fatti uno schema denom<strong>in</strong>ato UNIGE all’<strong>in</strong>ter-<br />

no del quale abbiamo costruito la tabella CC PREVISIONE. La struttura è quella<br />

riportata <strong>di</strong> seguito.<br />

Estratto 5.10<br />

Co<strong>di</strong>ce identificativo della tratta, determ<strong>in</strong>ato da noi <strong>in</strong> or<strong>di</strong>ne crescente<br />

rispetto al senso <strong>di</strong> marcia Milano-Brescia (ID TRATTA)<br />

◦ Ora corrispondente al momento simulato (ORA SIMULATA)<br />

◦ Velocità prevista VEL PREVISTA<br />

214


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

◦ Ora a cui è stata effettuata la previsione: ne esiste una e soltanto una per<br />

ogni simulazione e può funzionare come identificativo della simulazione<br />

(ORA PREVISIONE))<br />

◦ Densità prevista DEN PREVISTA<br />

◦ Flusso previsto FLU PREVISTO<br />

◦ Identificativo del verso della tratta (VERSO TRATTA)<br />

5.2.16 Interfaccia del Simulatore<br />

I risultati del simulatore sono resi fruibili tramite un’<strong>in</strong>terfaccia html che mette<br />

<strong>di</strong>sposizione varie forme <strong>di</strong> report<strong>in</strong>g dei dati elaborati.<br />

La pag<strong>in</strong>a si presenta come <strong>in</strong> Figura 5.6.<br />

Figura 5.6: Interfaccia del simulatore<br />

Per ogni tratta sono <strong>di</strong>sponibili alcuni grafici che esam<strong>in</strong>eremo <strong>in</strong> seguito.<br />

Inoltre, esistono alcune opzioni generali che consentono la visualizzazione <strong>di</strong> dati<br />

relativi all’<strong>in</strong>tero tratto.<br />

215


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Grafico della Velocità <strong>in</strong> Funzione del Tempo<br />

Il grafico della velocità <strong>in</strong> funzione del tempo è <strong>di</strong>sponibile per ogni tratta ed è rea-<br />

lizzato tramite un file SVG che legge i files XML a cui abbiamo fatto riferimento <strong>in</strong><br />

precedenza per poi elaborarne i dati e ricostruirli sul grafico da noi <strong>di</strong>segnato. Per<br />

questo grafico, come per tutti quelli dove non è specificato altrimenti, la struttura<br />

grafica è stata <strong>in</strong>teramente realizzata da noi unendo l’ECMAScript <strong>di</strong> SVG con<br />

elementi statici <strong>di</strong> grafica vettoriale.<br />

Figura 5.7: Grafico vel(t)<br />

216


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Grafico della Densità <strong>in</strong> Funzione del Tempo<br />

Questo grafico è del tutto analogo al precedente eccetto per il fatto che la variabile<br />

<strong>di</strong>pendente dal tempo è la densità e non la velocità.<br />

Figura 5.8: Grafico den(t)<br />

217


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Grafico del Flusso <strong>in</strong> Funzione del Tempo<br />

Ancora un grafico <strong>di</strong>pendente dal tempo: questa volta rappresentiamo il flusso.<br />

Figura 5.9: Grafico flu(t)<br />

218


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Grafico del Flusso <strong>in</strong> Funzione della Densità<br />

Questo grafico è tipico degli stu<strong>di</strong> sul traffico ed è stato riportato per consentire<br />

alcune valutazioni che leggerete <strong>in</strong> seguito.<br />

Figura 5.10: Grafico flu(den)<br />

219


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Tempi <strong>di</strong> Percorrenza<br />

Una importante <strong>in</strong>formazione fornita dal simulatore è quella relativa ai tempi <strong>di</strong><br />

percorrenza. Per ogni stazione è possibile capire quali stazioni possono essere<br />

raggiunte nei 30 m<strong>in</strong>uti successivi e con quali tempi (naturalmente stiamo sempre<br />

parlando <strong>di</strong> previsioni).<br />

Figura 5.11: Tempi <strong>di</strong> percorrenza a partire dalla stazione <strong>di</strong> Cavenago<br />

Con riferimento alla Figura 5.11 an<strong>di</strong>amo a descrivere le funzionalità <strong>di</strong> questo<br />

report. Sull’orologio riportiamo le varie stazioni <strong>in</strong> corrispondenza del tempo<br />

necessario per raggiungerle a partire dalla stazione scelta. In questo caso si parte<br />

220


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

da Cavenago e ve<strong>di</strong>amo che, ad esempio, si prevede <strong>di</strong> impiegare circa 24 m<strong>in</strong>uti<br />

per arrivare a Rovato. Sulla parte destra del grafico, <strong>in</strong>vece, abbiamo <strong>in</strong>serito<br />

un rettangolo <strong>di</strong>viso <strong>in</strong> tanti tratti quante sono le tratte autostradali coperte. A<br />

seconda della velocità sostenibile <strong>in</strong> queste tratte, il rettangolo viene colorato con<br />

un criterio espresso nella legenda. Inf<strong>in</strong>e, i numeri all’estrema destra della figura<br />

sono gli <strong>in</strong>tertempi previsti da stazione a stazione.<br />

221


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Assonometrie e Prospettive<br />

I grafici descritti s<strong>in</strong>o ad ora sono <strong>di</strong>sponibili per ciascuna tratta: abbiamo però<br />

messo a <strong>di</strong>sposizione alcuni grafici <strong>di</strong> <strong>in</strong>sieme che mostrano <strong>in</strong> una stessa figura<br />

una delle grandezze <strong>di</strong> riferimento. Si tratta <strong>di</strong> grafici tri<strong>di</strong>mensionali: lungo una<br />

<strong>di</strong>mensione cresce il tempo, lungo l’altra si seguono le stazioni. Chiaramente <strong>in</strong><br />

altezza troviamo la grandezza che vogliamo stu<strong>di</strong>are.<br />

222


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Figura 5.12: Assonometria della velocità<br />

In Figura 5.12 ve<strong>di</strong>amo l’assonometria delle velocità. In pratica questo grafico<br />

è costruito unendo i vari grafici bi<strong>di</strong>mensionali della velocità. Cliccando su una<br />

zona del grafico tri<strong>di</strong>mensionale ci si collega <strong>di</strong>rettamente al grafico bi<strong>di</strong>mensio-<br />

nale relativo alla zona su cui si è cliccato. Inoltre, agendo sui pulsanti a destra<br />

del grafico, è possibile tracciare una l<strong>in</strong>ea che segue il profilo della velocità per<br />

tempo costante. Questa funzione è attivata nella figura seguente, rappresentante<br />

l’assonometria della densità.<br />

223


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Figura 5.13: Assonometria della densità<br />

224


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Abbiamo l’assonometria anche per il flusso.<br />

Figura 5.14: Assonometria del flusso<br />

225


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Analogamente, abbiamo anche <strong>di</strong>segnato gli stessi grafici secondo i pr<strong>in</strong>cipi<br />

della prospettiva <strong>in</strong> luogo <strong>di</strong> quelli dell’assonometria.<br />

Figura 5.15: Prospettiva della velocità<br />

226


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Figura 5.16: Prospettiva della densità<br />

227


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

5.2.17 Grafici con Matlab<br />

Figura 5.17: Prospettiva del flusso<br />

Abbiamo costruito anche tre grafici con Matlab: questi grafici possono essere<br />

<strong>in</strong>teressanti ma, perchè siano sempre aggiornati, è necessario lanciare il relativo<br />

programma. Le Figure seguenti mstrano un esempio <strong>di</strong> ciascuno <strong>di</strong> questi grafici.<br />

228


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Figura 5.18: Grafico <strong>di</strong> velocità <strong>in</strong> funzione del tempo e del flusso <strong>in</strong> funzione del<br />

tempo<br />

Figura 5.19: Grafico della velocità <strong>in</strong> funzione del tempo e della densità<br />

229


5.2. IL SIMULATORE Carlo Caligaris, Iacopo Salvarani<br />

Figura 5.20: Grafico del flusso <strong>in</strong> funzione del tempo e della densità<br />

230


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

5.3 Considerazioni sui Grafici<br />

5.3.1 Grafico Flusso-Densità<br />

I modelli macroscopici si basano su una relazione fondamentale <strong>di</strong> flusso e densità<br />

rappresentata a titolo <strong>di</strong> esempio <strong>in</strong> Figura 5.21.<br />

Figura 5.21: Diagramma fondamentale flusso-densità<br />

Questa rappresentazione è facilmente riscontrabile anche tra i <strong>di</strong>agrammi flus-<br />

so densità da noi <strong>di</strong>segnati, come nel caso della Figura 5.22.<br />

231


5.3. CONSIDERAZIONI SUI GRAFICI Carlo Caligaris, Iacopo Salvarani<br />

Figura 5.22: Diagramma flusso-densità<br />

Il significato fisico <strong>di</strong> questo <strong>di</strong>agramma appare piuttosto chiaro: esso rappre-<br />

senta le due situazioni <strong>di</strong> traffico realizzabili: la situazione <strong>di</strong> traffico scorrevole<br />

(zona s<strong>in</strong>istra rispetto al massimo) e quella <strong>di</strong> traffico congestionato (zona destra<br />

rispetto al massimo). Evidentemente non riusciremo sempre a realizzare entrambe<br />

le situazioni: la Figura 5.22 è stata scelta tra quelle che prevedono una mo<strong>di</strong>fica<br />

dello stato del traffico entro il periodo <strong>di</strong> simulazione.<br />

5.3.2 Assonometria della Velocità<br />

Un altro argomento spesso citato negli stu<strong>di</strong> sul traffico è quello della propaga-<br />

zione delle code all’<strong>in</strong><strong>di</strong>etro come nel caso <strong>di</strong> una onda d’urto. Nel <strong>di</strong>agramma<br />

tri<strong>di</strong>mensionale relativo alla velocità possiamo apprezzare come anche il nostro<br />

modello produca queste back waves. In Figura 5.23 ne abbiamo evidenziata una.<br />

232


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Figura 5.23: Il fenomeno delle back waves<br />

233


5.3. CONSIDERAZIONI SUI GRAFICI Carlo Caligaris, Iacopo Salvarani<br />

Tra i vari strumenti <strong>di</strong> corredo al software pr<strong>in</strong>cipale, vi è anche un programma<br />

<strong>in</strong> Matlab che riproduce il funzionamento del simulatore e che può essere <strong>in</strong>izia-<br />

lizzato manualmente. Comb<strong>in</strong>ando dati rilevati dalla rete con approssimazioni<br />

abbiamo ottenuto i dati rappresentati <strong>in</strong> Figura 5.24.<br />

Figura 5.24: Mesh tri<strong>di</strong>mensionale dei dati previsti <strong>di</strong> velocità<br />

Da questo grafico si possono vedere bene le valli che tagliano trasversalmente<br />

il grafico. La Figura 5.25 mostra un <strong>in</strong>gran<strong>di</strong>mento <strong>di</strong> queste zone.<br />

Figura 5.25: Il fenomeno delle back waves<br />

234


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

5.4 Programma <strong>di</strong> Controllo<br />

Per consentire ad un potenziale utente una funzione <strong>di</strong> controllo dei risultati otte-<br />

nuti, abbiamo costruito un sistema <strong>in</strong>formatico che consente un confronto visuale<br />

tra i risultati previsti dal simulatore e quelli <strong>in</strong>viati dai sistemi <strong>di</strong> rilevamento dati<br />

presenti sulla rete autostradale. Questa <strong>in</strong>terfaccia, come già scritto precedente-<br />

mente, si presenta come un sito web; la pag<strong>in</strong>a pr<strong>in</strong>cipale, denom<strong>in</strong>ata Home mette<br />

a <strong>di</strong>sposizione un l<strong>in</strong>k alla pag<strong>in</strong>a Controllo. In realtà, questo è solo lo strato più<br />

esterno del nostro sistema <strong>in</strong>formatico. Questo strato comunica <strong>in</strong> mo<strong>di</strong> <strong>di</strong>versi<br />

con <strong>di</strong>versi altri strati. Nella Figura 5.26 abbiamo rappresentato schematicamente<br />

l’architettura del sistema.<br />

235


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

Figura 5.26: Struttura del programma <strong>di</strong> controllo<br />

236


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Il vero e proprio programma <strong>di</strong> controllo è stato scritto <strong>in</strong>teramente <strong>in</strong> Ja-<br />

va e si costruisce su tre classi: Controllo Ma<strong>in</strong>, che è la classe pr<strong>in</strong>cipale,<br />

Queries C ed XMLWorks C; esse contengono un notevole numero <strong>di</strong> meto<strong>di</strong><br />

relativi al trattamento dei dati <strong>in</strong> entrata dal database ed <strong>in</strong> uscita verso i files<br />

<strong>di</strong> nostro <strong>in</strong>teresse. Di fatto, il programma recupera dati dal database, li elabora<br />

secondo logiche che approfon<strong>di</strong>remo successivamente e li organizza <strong>in</strong> strutture<br />

dati <strong>in</strong>terne all’ambiente Java. Per rendere questi dati persistenti e fruibili da al-<br />

tre applicazioni, abbiamo fatto <strong>in</strong> modo <strong>di</strong> scriverli su files memorizzati du <strong>di</strong>sco.<br />

Questi files possono qu<strong>in</strong><strong>di</strong> essere letti da altre applicazioni: abbiamo così realiz-<br />

zato una struttura <strong>in</strong>terattiva che connette due programmi <strong>di</strong>fferenti consentendo<br />

lo scambio dei loro dati. Il flusso logico del programma è rappresentato <strong>in</strong> Figura<br />

5.27.<br />

237


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

write()<br />

Classe Queries C<br />

Famiglia call query<br />

Classe Queries C<br />

Famiglia call query<br />

Classe Queries C<br />

Famiglia call query<br />

Classe Queries C<br />

Classe XMLWorks C<br />

Classe XMLWorks C<br />

Cancella Elenco.js Elenco.js<br />

Scrive su Elenco.js impostazioni della pag<strong>in</strong>a html Elenco.js<br />

Determ<strong>in</strong>a numero <strong>di</strong> simulazioni presenti nel DB Queries *.txt<br />

Aggiorna Elenco.js con le simulazioni Elenco.js<br />

Rileva l’ora <strong>di</strong> <strong>in</strong>izio delle simulazioni<br />

Queries *.txt<br />

Aggiorna Elenco.js con le ore <strong>di</strong> <strong>in</strong>izio Elenco.js<br />

Determ<strong>in</strong>a ora corrente ed ora più vecchia<br />

Scrive su Elenco.js le ore prima rilevate Elenco.js<br />

Determ<strong>in</strong>a se le simulazioni sono confrontabili<br />

Incrociando i dati <strong>di</strong> spire, TP, <strong>in</strong>gressi ed uscite,<br />

determ<strong>in</strong>a un valore per ognuno dei 30 m<strong>in</strong>uti<br />

seguenti per velocità e flusso<br />

Scrive i dati <strong>di</strong> velocità, flusso e densistà,<br />

su files XML poi letti esternamente<br />

Figura 5.27: Flusso del programma <strong>di</strong> controllo<br />

238<br />

Elenco.js<br />

AS.xml<br />

UNIGE.xml


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Nelle due Figure precedenti, si fa spesso riferimento al file Elenco.js.<br />

Approfon<strong>di</strong>amo alcuni aspetti che riguardano il suo utilizzo<br />

5.4.1 Elenco.js e Controllo.html<br />

Abbiamo già <strong>di</strong>scusso alla Sezione 3.3.8 della possibilità esistente per pag<strong>in</strong>e<br />

html <strong>di</strong> contenere al loro <strong>in</strong>terno dei coman<strong>di</strong> <strong>in</strong>seriti tramite script<strong>in</strong>g. Abbiamo<br />

anche visto come questi coman<strong>di</strong> possano essere scritti <strong>in</strong>ternamente alla pag<strong>in</strong>a<br />

stessa oppure possano essere parte <strong>di</strong> un file con estensione .js da richiamare<br />

all’<strong>in</strong>terno della pag<strong>in</strong>a. Abbiamo sfruttato questa proprietà per costruire una pa-<br />

g<strong>in</strong>a html attiva: <strong>in</strong> altre parole, abbiamo costruito la pag<strong>in</strong>a normalmente, con<br />

una serie <strong>di</strong> elementi statici, ed abbiamo <strong>in</strong>serito nella parte de<strong>di</strong>cata allo script<strong>in</strong>g<br />

il collegamento ad un file, appunto Elenco.js. Questo file viene <strong>in</strong>teramente<br />

gestito dal programma Java che, ad ogni run, prima lo elim<strong>in</strong>a e poi lo ricrea scri-<br />

vendovi coman<strong>di</strong> aggiornati. In particolare, questi coman<strong>di</strong> sono l<strong>in</strong>guaggio html<br />

che, una volta <strong>in</strong>terpretati dal browser, producono la visualizzazione a schermo<br />

<strong>di</strong> tutte le <strong>in</strong>formazioni riguardanti le simulazioni presenti sulla nostra tabella del<br />

database. Inoltre, il file contiene anche la def<strong>in</strong>izione delle variabili relative al nu-<br />

mero <strong>di</strong> simulazioni confrontabili ed al numero <strong>di</strong> simulazioni non confrontabili<br />

perché troppo vecchie. Queste variabili vengono gestite dalla pag<strong>in</strong>a al f<strong>in</strong>e <strong>di</strong><br />

riempire i menu a ten<strong>di</strong>na presenti con le opzioni opportune.<br />

239


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

Figura 5.28: Interfaccia per il controllo del simulatore prima dell’utilizzo <strong>di</strong><br />

Elenco.js<br />

Figura 5.29: Interfaccia per il controllo del simulatore dopo l’utilizzo <strong>di</strong><br />

Elenco.js<br />

Dal confronto tra la Figura 5.28 e 5.33 si nota la <strong>di</strong>fferenza <strong>in</strong>trodotta all’<strong>in</strong>-<br />

terno della pag<strong>in</strong>a dal file Elenco.js.<br />

240


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

5.4.2 Simulazioni Confrontabili e Simulazioni non Confronta-<br />

bili<br />

Per ogni simulazione presente sul database, vengono riportate la data e l’ora <strong>in</strong> cui<br />

la simulazione è stata effettuata. Queste <strong>in</strong>formazioni sono facilmente ottenibili<br />

dal database tramite una query, lanciata dall’applicazione secondo i pr<strong>in</strong>cipi della<br />

JDBC <strong>di</strong>scussi nella Sezione 3.3.5. Il l<strong>in</strong>guaggio <strong>di</strong> programmazione Java rende<br />

però piuttosto <strong>di</strong>fficile la manipolazione dei campi data e dei campi ora. Infatti,<br />

mentre sul database Oracle queste <strong>in</strong>formazioni sono immagazz<strong>in</strong>ate nella stessa<br />

variabile, <strong>in</strong> Java devono essere <strong>di</strong>vise <strong>in</strong> due variabili separate (evidentemen-<br />

te contenenti una la data e l’altra ora). Per gestire questa <strong>di</strong>screpanza, abbiamo<br />

scritto alcuni meto<strong>di</strong> che consentono <strong>di</strong> trasformare l’ora e la data <strong>in</strong> un oggetto<br />

denom<strong>in</strong>ato Calendar, implementato dalla classe java.util.Calendar.<br />

Questo tipo <strong>di</strong> oggetto è un vettore contenente vari campi, ciascuno dei quali re-<br />

lativo ad una <strong>di</strong>fferente <strong>di</strong>mensione temporale (ad esempio le ore, i mesi, gli anni<br />

o i secon<strong>di</strong>). Questa classe contiene anche alcuni meto<strong>di</strong> molto utili che facilitano<br />

il confronto tra due oggetti Calendar <strong>di</strong> tipo <strong>di</strong>fferente.<br />

Essendo riusciti <strong>in</strong>f<strong>in</strong>e, non senza qualche <strong>di</strong>fficoltà, a gestire le <strong>in</strong>formazioni ri-<br />

guardanti date ed ore, abbiamo <strong>in</strong>terrogato il database al f<strong>in</strong>e <strong>di</strong> ottenere le seguenti<br />

<strong>in</strong>formazioni:<br />

• data ed ora dell’ultima rilevazione della sensoristica, che sarà considerata<br />

come l’ora presente;<br />

• data ed ora della più vecchia rilevazione eseguita dalle spire del nostro<br />

tratto.<br />

I dati delle spire sono cancellati con una frequenza superiore a quella con cui ven-<br />

gono cancellati i dati delle boe; <strong>di</strong> conseguenza, ci riferiamo a questo strumento<br />

come a quello che può <strong>in</strong><strong>di</strong>carci quanto <strong>in</strong><strong>di</strong>etro nel tempo possiamo andare a<br />

confrontare le simulazioni.<br />

Def<strong>in</strong>izione 5.2 Una simulazione è confrontabile se:<br />

• sono passati almeno trenta m<strong>in</strong>uti da quando è stata lanciata;<br />

241


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

• il database contiene dati delle spire non più recenti del momento del lancio<br />

della simulazione <strong>in</strong> esame.<br />

Il primo confronto viene effettuato paragonando il momento della simulazione<br />

con il momento assunto come il presente, mentre il secondo confronto sarà effet-<br />

tuato paragonando il momento della simulazione con quello assunto come il più<br />

vecchio.<br />

5.4.3 Esecuzione delle Query<br />

L’esecuzione delle query avviene secondo meccanismi del tutto simili a quelli<br />

spiegati per il programma <strong>di</strong> simulazione. Non ripetiamo qu<strong>in</strong><strong>di</strong> l’illustrazione<br />

anche <strong>in</strong> questo contesto.<br />

5.4.4 Scrittura sui files xml<br />

Oltre ad Elenco.js, il nostro programma scrive su <strong>di</strong>sco anche altri due files:<br />

• UNIGE.xml<br />

• AS.xml<br />

Il primo file ha una struttura rappresentata nello schema seguente.<br />

Estratto 5.11 Nodo ra<strong>di</strong>ce: UNIGE<br />

Nodo: Elemento<br />

Attributi: Data<br />

Density<br />

Flux<br />

Id Simulazione<br />

Ora<br />

Speed<br />

Tratta<br />

Nodo: . . .<br />

242


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Ogni elemento rappresenta uno dei 30 m<strong>in</strong>uti <strong>di</strong> simulazione e quasi tutti gli<br />

attributi sono ricavati <strong>di</strong>rettamente dalla tabella del database aggiornata con il pro-<br />

gramma pr<strong>in</strong>cipale <strong>di</strong> simulazione. L’unico attributo non sottostante a questa re-<br />

gola è Id Simulazione, un numero assegnato <strong>in</strong> base all’or<strong>di</strong>ne con il quale<br />

le simulazioni confrontabili sono state effettuate. Con questo numero assegnamo<br />

ad ogni entry la simulazione a cui essa è relativa.<br />

Il file AS.xml ha la stessa struttura del precedente ma è molto più <strong>di</strong>fficile da<br />

ricavare a partire dai dati del database. Innanzi tutto, esso deve essere costruito <strong>in</strong><br />

<strong>di</strong>verse fasi <strong>di</strong>st<strong>in</strong>te. Infatti, le tratte 6 e 9 devono essere trattate <strong>in</strong> modo <strong>di</strong>fferente<br />

da tutte le altre, dal momento che su queste possiamo utilizzare i dati provenienti<br />

dalle spire (più affidabili <strong>di</strong> quelli delle boe). Inoltre, velocità e flusso vanno<br />

richiesti al database con queries <strong>di</strong>fferenti.<br />

Tratte 6 e 9<br />

Il flusso è facilmente ricavabile dal database con la seguente query.<br />

Estratto 5.12<br />

SELECT C CEN , D ORA, (SUM( N TOT VEI ) ∗ 6 0 )<br />

FROM VTPM66 DAT SPR<br />

WHERE D ORA BETWEEN<br />

TO DATE( ’ \ $ d a t e 1 \$ ’ , ’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ \ $ d a t e 2 \$ ’ , ’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND ( C CEN=268 or C CEN=267)<br />

AND ( N CRS=1 or N CRS=2 or N CRS=3)<br />

GROUP BY( C CEN , D ORA)<br />

La velocità viene ricavata <strong>di</strong>rettamente dalla tabella che fornisce i valori ad<br />

AutoTraf.<br />

Estratto 5.13<br />

SELECT C PNT DTX INI , C PNT DTX FIN , D UPD , N VEL MED<br />

243


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

FROM TTAG18 AT TRF IDX STR<br />

WHERE D UPD BETWEEN<br />

TO DATE ( ’ \ $ d a t e 1 \$ ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE ( ’ \ $ d a t e 2 \$ ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND c s u b t r t = ’A’<br />

AND ( C PNT DTX INI=3741 AND C PNT DTX FIN=3739<br />

OR C PNT DTX INI=3737 AND C PNT DTX FIN =3736)<br />

ORDER BY( C PNT DTX INI , D UPD)<br />

I campi nom<strong>in</strong>ati C PNT DTX INI e C PNT DTX FIN sono dei campi nu-<br />

merici. Ogni numero ivi contenuto rappresenta un particolare punto della rete<br />

autostradale italiana. I punti per noi <strong>in</strong>teressanti sono quelli <strong>di</strong> <strong>in</strong>izio e f<strong>in</strong>e delle<br />

tratte contenenti le spire.<br />

Queste queries sono scritte su files .txt ed utilizzano il meccanismo già spie-<br />

gato <strong>in</strong> precedenza (5.2.14). Nelle due queries sopra riportate, compaiono dei<br />

campi identificati come $date1$ e $date2$. Questi campi sono automatica-<br />

mente riconosciuti dal programma ed a loro vengono sostituite le date corrette.<br />

In questo modo siamo riusciti a costruire un semplicissimo meta-l<strong>in</strong>guaggio <strong>in</strong><br />

grado <strong>di</strong> trasformare una query statica scritta <strong>in</strong> un file <strong>di</strong> testo <strong>in</strong> una query <strong>di</strong>na-<br />

mica. In pratica, abbiamo unito la flessibilità tipica della JDBC con la semplicità<br />

<strong>di</strong> <strong>in</strong>terrogazione fornita dall’SQL statico.<br />

In ogni caso, è necessario operare un controllo sui dati estratti, per assicurarsi<br />

che ci sia almeno un dato, e non più <strong>di</strong> uno, per ogni m<strong>in</strong>uto. Infatti, le spire<br />

aggregano i dati per un tempo pari a circa un m<strong>in</strong>uto, ma ci sono m<strong>in</strong>uti durante<br />

i quali non passano auto. Logicamente, il database <strong>in</strong> questi casi non scrive nul-<br />

la sulle sue tabelle, ma per i nostri scopi è fondamentale avere una entry con il<br />

m<strong>in</strong>uto <strong>in</strong> questione e con un valore nullo del flusso ad esso relativo. Dobbiamo<br />

qu<strong>in</strong><strong>di</strong> mettere mano alla struttura dati <strong>in</strong> modo da avere uno ed un solo valore per<br />

ciascuno dei m<strong>in</strong>uti <strong>di</strong> previsione.<br />

244


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Altre Tratte<br />

Sulle altre tratte, i dati relativi alla velocità sono comunque reperibili sempre dalla<br />

tabella contenente i dati <strong>di</strong> AutoTraf. Non riportiamo la query, dal momento che<br />

è del tutto analoga a quella riportata per il caso precedente.<br />

Molto più complicato è reperire i dati <strong>di</strong> flusso ed organizzarli <strong>in</strong> strutture<br />

che possono poi essere ricondotte a quella dei files xml. Questi dati sono ottenuti<br />

tramite l’analisi <strong>in</strong>crociata delle tabelle degli <strong>in</strong>gressi, delle uscite e delle boe. Ge-<br />

neralmente preferiamo affidarci ai dati delle boe, ma talvolta è necessario ricorrere<br />

anche a quelli <strong>di</strong> <strong>in</strong>gressi ed uscite.<br />

I dati provenienti dai caselli (sia <strong>in</strong> entra che <strong>in</strong> uscita) devono essere filtrati<br />

<strong>in</strong> modo <strong>di</strong>verso a seconda della <strong>di</strong>rezione che si sta esam<strong>in</strong>ando. Se stiamo con-<br />

siderando la <strong>di</strong>rezione Milano-Brescia, ci <strong>in</strong>teressano le macch<strong>in</strong>e che, essendo<br />

entrate ad un casello della tratta <strong>in</strong> esame, sono uscite ad un casello più vic<strong>in</strong>o a<br />

Brescia <strong>di</strong> quello da cui sono entrate.<br />

La query che <strong>in</strong>terroga il database sugli <strong>in</strong>gressi è riportata nell’Estratto 5.14.<br />

Estratto 5.14<br />

SELECT C STZ , D MSG, (COUNT(D MSG) ∗ 6 0 )<br />

FROM $ t a b l e $<br />

WHERE D MSG BETWEEN<br />

TO DATE( ’ $ d a t e 1 $ ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ $ d a t e 2 $ ’ ,<br />

AND C STZ >= 641<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

GROUP BY ( C STZ , D MSG) ORDER BY ( C STZ , D MSG)<br />

La tabella delle boe non presenta dati aggregati: è qu<strong>in</strong><strong>di</strong> necessario, una volta<br />

ottenuto il result set, procedere all’aggregazione e, qu<strong>in</strong><strong>di</strong> alla correzione tramite i<br />

valori ricavati dalla matrice orig<strong>in</strong>e-dest<strong>in</strong>azione ( <strong>in</strong>fatti i valori così trovati sono<br />

245


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

relativi ad entrambe le <strong>di</strong>rezioni <strong>di</strong> marcia, mentre a noi ne <strong>in</strong>teressa solo una).<br />

Naturalmente, i problemi relativi ai m<strong>in</strong>uti con più valori <strong>in</strong> questo caso ed <strong>in</strong><br />

quelli seguenti non hanno alcun senso. Si ripropongono, <strong>in</strong>vece, quelli connessi<br />

ai m<strong>in</strong>uti durante i quali non ci sono mezzi <strong>in</strong> transito sul tratto <strong>in</strong> esame.<br />

Si noti come la query 5.14 contenga un altro tag <strong>in</strong>terattivo: $table$. Infatti, i<br />

dati relativi alle boe sono memorizzate <strong>in</strong> tabelle <strong>di</strong>fferenti a seconda del giorno<br />

a cui risalgono. Il programma riconosce questo tag e sostituisce la str<strong>in</strong>ga con il<br />

nome della tabella da considerare.<br />

La query che <strong>in</strong>terroga il database sulle uscite è riportata nell’Estratto 5.15.<br />

Estratto 5.15<br />

SELECT C STZ , D MSG, (COUNT(D MSG) ∗ 6 0 )<br />

FROM $ t a b l e $<br />

WHERE D MSG BETWEEN<br />

TO DATE( ’ $ d a t e 1 $ ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ $ d a t e 2 $ ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND C STZ = 641<br />

AND C STZ ENT C STZ OR<br />

( C STZ ENT = 654 AND C STZ = 6 5 5 ) )<br />

AND NOT ( C STZ = 654 AND C STZ ENT = 655)<br />

GROUP BY ( C STZ , D MSG)<br />

ORDER BY ( C STZ , D MSG)<br />

La gestione <strong>di</strong> questi dati è più semplice del caso precedente: <strong>in</strong>fatti, è possi-<br />

bile restr<strong>in</strong>gere il campo <strong>di</strong> ricerca alle sole auto che vanno nella <strong>di</strong>rezione desi-<br />

derata, dal momento che la tabella delle uscite riporta anche la stazione <strong>di</strong> entrata<br />

da cui ogni veicolo proviene. Tuttavia, anche <strong>in</strong> questo caso è necessario <strong>in</strong>tro-<br />

durre una ricerca <strong>in</strong>terattiva della tabella da <strong>in</strong>terrogare ed aggregare i risultati per<br />

m<strong>in</strong>uto.<br />

246


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Inf<strong>in</strong>e, <strong>in</strong>terroghiamo anche la tabella delle boe: i valori andranno <strong>di</strong>visi per<br />

il fattore correttivo calcolato <strong>in</strong> precedenza nel tentativo <strong>di</strong> capire la percentuale<br />

me<strong>di</strong>a <strong>di</strong> auto rilevate dalle antenne <strong>in</strong> it<strong>in</strong>ere rispetto al totale.<br />

I dati così ottenuti e trattati, vengono utilizzati per determ<strong>in</strong>are il flusso lungo<br />

ciascuna tratta. Ve<strong>di</strong>amo nel dettaglio come.<br />

Estratto 5.16<br />

SELECT N PRG , D MSG, (COUNT( N PRG ) ∗ 6 0 )<br />

FROM $ t a b l e $<br />

WHERE D MSG BETWEEN<br />

TO DATE( ’ $ d a t e 1 $ ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND TO DATE( ’ $ d a t e 2 $ ’ ,<br />

’DD−MM−YYYY hh24 : mi : s s ’ )<br />

AND ( N PRG=110 OR N PRG=5 OR N PRG=6 OR N PRG=7<br />

OR N PRG=8 OR N PRG=10 ORN PRG=12 OR N PRG=26<br />

OR N PRG=14 OR N PRG=23 OR N PRG=16)<br />

GROUP BY( N PRG , D MSG)<br />

ORDER BY( N PRG , D MSG)<br />

247


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

Gestione dei Dati<br />

Figura 5.30: Tratta 1 e Tratta 2 [53]<br />

Nella Figura 5.30 si sono evidenziate con colori <strong>di</strong>fferenti le tratte f<strong>in</strong>o a qui identi-<br />

ficate con i numeri 1 (Milano Est - Tangenziale Est) e 2 (Tangenziale Est - Agrate).<br />

Sulla tratta 1 abbiamo calcolato il flusso <strong>in</strong> base ai dati provenienti dalla boa <strong>in</strong><br />

it<strong>in</strong>ere 110. La tratta 2 è <strong>in</strong>vece sprovvista <strong>di</strong> strumenti <strong>di</strong> rilevazione. Abbiamo<br />

scelto <strong>di</strong> calcolare il flusso come la me<strong>di</strong>a dei valori delle tratte limitrofe, consci<br />

dell’arbitrarietà e dell’imprecisione che questa decisione comporta.<br />

Nella Figura 5.31 abbiamo evidenziato la tratta 3 (Agrate - Cavenago). In<br />

questo caso, per determ<strong>in</strong>are il flusso <strong>in</strong> transito su questa tratta, abbiamo dovuto<br />

utilizzare i dati della boa 5 sommati a quelli dell’uscita <strong>di</strong> Cavenago (Uscita 652).<br />

In effetti, il posizionamento della boa fa sì che essa possa rilevare solo i mezzi<br />

che hanno effettivamente percorso questo tratto senza uscire a Cavenago. Questo<br />

metodo è stato adottato <strong>in</strong> tutte le situazioni <strong>di</strong> questo tipo presenti sulla tratta.<br />

Non riportiamo tutti i rimanenti casi, essendo per lo più ripetizioni <strong>di</strong> quelli che<br />

abbiamo già visto, ma ne illustriamo <strong>di</strong> seguito un ultimo che mostra come si<br />

possano utilizzare anche i dati provenienti dalle entrate.<br />

In Figura 5.32 si è evidenziata la tratta 5 (Trezzo - Capriate). Il flusso qui può<br />

essere calcolato come somma <strong>di</strong> quello rilevato dalla boa 6 e <strong>di</strong> quello rilevato<br />

all’<strong>in</strong>gresso <strong>di</strong> Trezzo.<br />

248


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Gli altri casi sono generalmente similari a quelli visti <strong>in</strong> precedenza, tran-<br />

ne che per la tratta 7 (Dalm<strong>in</strong>e - Bergamo) nella quale sono presenti due boe:<br />

evidentemente il valore considerato sarà pari alla me<strong>di</strong>a dei due.<br />

Figura 5.31: Tratta 3 [53]<br />

Figura 5.32: Tratta 5 [53]<br />

5.4.5 Rappresentazione Grafica del Controllo<br />

Abbiamo già visto <strong>in</strong> Figura 5.28 il layout della pag<strong>in</strong>a del Controllo. In essa<br />

compaiono pulsanti e menu a ten<strong>di</strong>na: tramite un loro utilizzo alquanto <strong>in</strong>tuitivo<br />

è possibile collegarsi ad un’altra pag<strong>in</strong>a html che consente <strong>di</strong> visualizzare le<br />

grandezze relative ad una certa simulazione su una certa tratta. Queste tre variabili<br />

possono essere scelte utilizzando le opzioni che la pag<strong>in</strong>a mette a <strong>di</strong>sposizione.<br />

249


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

Figura 5.33: Le scelte messe a <strong>di</strong>sposizione dalla pag<strong>in</strong>a <strong>di</strong> controllo<br />

Le scelte dell’utente sono trasmesse da una pag<strong>in</strong>a all’altra tramite il meto-<br />

do post. Ogni opzione viene trasformata <strong>in</strong> una variabile che viene letta tramite<br />

script<strong>in</strong>g nella pag<strong>in</strong>a target del post.<br />

La pag<strong>in</strong>a che consente <strong>di</strong> visualizzare gli andamenti previsti e reali è <strong>di</strong>visa<br />

<strong>in</strong> due frames. Il s<strong>in</strong>istro mette a <strong>di</strong>sposizione alcune opzioni, che consentono <strong>di</strong><br />

visualizzare e, <strong>in</strong> certi casi, anche <strong>di</strong> sovrapporre alcune rappresentazioni grafi-<br />

che dei dati. Il destro contiene <strong>in</strong>vece il file SVG che visualizza i grafici richie-<br />

sti. Tramite un meccanismo <strong>di</strong> post tra i due frame, siamo riusciti a mettere <strong>in</strong><br />

comunicazione le due parti della pag<strong>in</strong>a.<br />

Frame s<strong>in</strong>istro<br />

On click:<br />

Opzioni utente<br />

Controllo.html<br />

Frame destro<br />

Passaggio variabili<br />

Post<br />

SVG<br />

Esecuzione grafici<br />

Visualizzazione grafici<br />

Figura 5.34: I flussi <strong>di</strong> dati della pag<strong>in</strong>a<br />

Come si può vedere <strong>in</strong> Figura 5.34, il frame destro gestisce due flussi dati.<br />

Il primo, proveniente dalla pag<strong>in</strong>a Controllo.html viene recepito ed <strong>in</strong><strong>di</strong>-<br />

rizzato verso il file SVG; esso è responsabile della realizzazione grafica <strong>di</strong> tutti i<br />

250


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

grafici possibili. Questi grafici sono <strong>in</strong>izialmente impostati come nascosti (pro-<br />

prietà hidden) e qu<strong>in</strong><strong>di</strong> non sono visibili. La visibilità è data loro dall’utente<br />

nel momento <strong>in</strong> cui schiaccia uno (o più <strong>di</strong> uno) dei pulsanti messi a <strong>di</strong>sposizione<br />

nel frame <strong>di</strong> s<strong>in</strong>istra. Ogni pulsante è collegato <strong>di</strong>rettamente al file SVG e può<br />

mo<strong>di</strong>ficare alcune sue proprietà, tra cui la visibilità dei grafici.<br />

Figura 5.35: Il file SVG con due grafici visualizzati<br />

L’esecuzione dei grafici da parte dell’SVG prevede il collegamento con i files<br />

XML contenenti i dati <strong>di</strong> <strong>in</strong>teresse e lo scorrimento dell’albero da noi creato alla<br />

ricerca degli elementi che devono essere <strong>di</strong>sposti sul video.<br />

Le opzioni messe a <strong>di</strong>sposizione sono 6. Analizziamole una per una. Per<br />

questo esempio abbiamo assunto che il controllo riguar<strong>di</strong> una qualunque tratta e<br />

che la grandezza esam<strong>in</strong>ata sia la velocità. Per le altre due grandezze e le altre<br />

tratte, il <strong>di</strong>scorso è analogo.<br />

251


5.4. PROGRAMMA DI CONTROLLO Carlo Caligaris, Iacopo Salvarani<br />

Velocità Vera<br />

Figura 5.36: Opzioni<br />

Abbiamo spiegato nel dettaglio come si sia voluto creare un vettore <strong>di</strong> velocità,<br />

dove ciascun elemento del vettore rappresenta la velocità me<strong>di</strong>a sulla durata <strong>di</strong><br />

un m<strong>in</strong>uto. Questo vettore è idealmente contenuto nel file xml <strong>di</strong> riferimento. Se<br />

stiamo analizzando la velocità vera, il file da considerare è AS.xml, mentre se<br />

stiamo analizzando quella prevista, dobbiamo riferirci a UNIGE.xml. Il file SVG<br />

contiene questi percorsi e può così scorrere virtualmente questi vettori.<br />

Def<strong>in</strong>izione 5.3 Def<strong>in</strong>iamo vi per i = 0 . . . 30 il vettore il cui elemento i−esimo<br />

contiene la velocità <strong>in</strong> km/h rilevata per il m<strong>in</strong>uto i−esimo dalla partenza della<br />

simulazione.<br />

Il primo pulsante espone il grafico <strong>di</strong> vi <strong>in</strong> funzione <strong>di</strong> i.<br />

Velocità Prevista<br />

Questo grafico è del tutto analogo al precedente, tranne che per il fatto che ad<br />

essere rappresentata non è la velocità vera, ma quella prevista.<br />

252


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Def<strong>in</strong>izione 5.4 Def<strong>in</strong>iamo pi per i = 0 . . . 30 il vettore il cui elemento i−esimo<br />

contiene la velocità <strong>in</strong> km/h prevista per il m<strong>in</strong>uto i−esimo dalla partenza della<br />

simulazione.<br />

Errore Puntuale<br />

Def<strong>in</strong>izione 5.5 Def<strong>in</strong>iamo errore puntuale e 1 i come:<br />

Errore Me<strong>di</strong>o<br />

e 1 i = pi − vi ∀i = 0 . . . 30. (5.4)<br />

Def<strong>in</strong>izione 5.6 Def<strong>in</strong>iamo errore me<strong>di</strong>o e 1 i come:<br />

e 1 i =<br />

� i<br />

0 �e1 i �<br />

i<br />

Errore Puntuale Percentuale<br />

=<br />

� i<br />

0 �pi − vi�<br />

i<br />

Def<strong>in</strong>izione 5.7 Def<strong>in</strong>iamo errore puntuale percentuale e 2 i come:<br />

e 2 i = e1 i<br />

vi<br />

Errore Me<strong>di</strong>o Percentuale<br />

= pi − vi<br />

vi<br />

∀i = 0 . . . 30. (5.5)<br />

· 100 ∀i = 0 . . . 30. (5.6)<br />

Def<strong>in</strong>izione 5.8 Def<strong>in</strong>iamo errore me<strong>di</strong>o percentuale e 2 i come:<br />

e 2 i =<br />

� i<br />

0 �e2 i �<br />

i<br />

=<br />

�i pi−vi<br />

0 � vi �<br />

i<br />

253<br />

∀i = 0 . . . 30. (5.7)


5.5. QUALCHE RISULTATO Carlo Caligaris, Iacopo Salvarani<br />

5.5 Qualche Risultato<br />

Utilizzando le funzionalità più affidabili del programma <strong>di</strong> controllo, siamo riuscit<br />

ad analizzare qualche risultato. Abbiamo notato come sia <strong>di</strong> particolare importan-<br />

za impostare, per ogni tratta, i valori dei parametri. Questo lavoro deve essere an-<br />

cora completato, ma nel frattempo siamo riusciti a collezionare qualche risultato<br />

<strong>in</strong>teressante.<br />

In Figura 5.37 mostriamo un caso particolare: il simulatore si accorge della<br />

situazione scorrevole <strong>di</strong> traffico, ma <strong>in</strong><strong>di</strong>vidua dei fenomeni <strong>di</strong> stop and go che<br />

non hanno riscontro nella realtà. Evidentemente, <strong>in</strong> questa tratta è necessario<br />

stimare meglio la densità massima.<br />

In Figura 5.38, <strong>in</strong>vece, possiamo vedere quella che è una buona simulazione:<br />

<strong>in</strong>fatti, a fronte <strong>di</strong> sensibili variazioni <strong>di</strong> velocità, il simulatore <strong>in</strong>izialmente non<br />

reagisce, salvo poi avvic<strong>in</strong>arsi sensibilmente alla curva dei valori reali. Questo<br />

è uno dei pochi casi <strong>in</strong> cui abbiamo avuto la possibilità <strong>di</strong> testare il simulatore<br />

<strong>in</strong> situazioni <strong>di</strong> traffico molto variabile. Queste con<strong>di</strong>zioni sono particolarmente<br />

critiche per il buon funzionamento dello strumento.<br />

In Figura 5.39 abbiamo riportato una situazione piuttosto preve<strong>di</strong>bile: i risul-<br />

tati sono abbastanza aderenti alla realtà (anche se non colgono con precisione i<br />

vari trend). Il buon risultato qui ottenuto è testimoniato dall’errorre me<strong>di</strong>o per-<br />

centuale, riportato <strong>in</strong> Figura 5.40. Si può vedere come esso si attesti <strong>in</strong>torno al<br />

10%, risultato da considerarsi molto buono.<br />

Inf<strong>in</strong>e, mostriamo la Figura 5.41: anche <strong>in</strong> questo caso la simulazione ap-<br />

prossima abbastanza bene il comportamento reale, tuttavia, si attesta su valo-<br />

ri costantamente più alti rispetto a quelli verificatisi. È questo un classico caso<br />

<strong>in</strong> cui la velocità massima sostenibile è <strong>in</strong>feriore a quella stimata ed <strong>in</strong>serita nel<br />

programma.<br />

In tutti i casi, il simulatore <strong>in</strong>troduce un errore abbastanza rilevante, ma ra-<br />

ramente fornisce un’<strong>in</strong><strong>di</strong>cazione completamente sbagliata sul comportamento del<br />

traffico. In altre parole, non rileva fenomeni <strong>di</strong> congestione dove non ce ne sono:<br />

chiaramente, prevedere precisamente la velocità è molto <strong>di</strong>fficile e <strong>di</strong> dubbia uti-<br />

254


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

lità. È <strong>in</strong>vece molto più <strong>in</strong>teressante sapere se quella velocità è compresa <strong>in</strong> un<br />

<strong>in</strong>tervallo che ben identifica la situazione del traffico.<br />

Figura 5.37: Un risultato con fenomeni <strong>di</strong> stop and go non verificati<br />

Figura 5.38: Una buona simulazione<br />

255


5.5. QUALCHE RISULTATO Carlo Caligaris, Iacopo Salvarani<br />

Figura 5.39: Una simulazione facile<br />

Figura 5.40: Errore me<strong>di</strong>o percentuale<br />

256


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 5. APPLICAZIONE DEL MODELLO<br />

Figura 5.41: Una tratta dove la velocità massima è troppo elevata<br />

257


5.5. QUALCHE RISULTATO Carlo Caligaris, Iacopo Salvarani<br />

258


Capitolo 6<br />

Sviluppi Futuri<br />

Figura 6.1: Design of a 10-ways <strong>in</strong>terchange [62]<br />

259


6.1. INTRODUZIONE Carlo Caligaris, Iacopo Salvarani<br />

6.1 Introduzione<br />

Il lavoro da noi <strong>in</strong>iziato si presta a <strong>di</strong>versi possibili sviluppi. Alcuni <strong>di</strong> questi,<br />

nel momento <strong>in</strong> cui stiamo scrivendo, sono già stati parzialmente realizzati, altri<br />

costituiscono la base per una eventuale collaborazione futura volta a migliorare lo<br />

strumento che abbiamo implementato. Nelle seguenti Sezioni illustriamo le quat-<br />

tro <strong>di</strong>rettive <strong>di</strong> sviluppo più importanti che abbiamo <strong>in</strong><strong>di</strong>viduato <strong>in</strong> collaborazione<br />

con la <strong>di</strong>rezione tecnica <strong>di</strong> Infoblu.<br />

260


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 6. SVILUPPI FUTURI<br />

6.2 Pubblicazione sul Server<br />

Tutti i files da noi prodotti devono essere pubblicati su un server <strong>in</strong>terno, <strong>in</strong> modo<br />

tale da consentire l’utilizzo dei programmi a tutti gli utenti collegati all’Intranet.<br />

Questo lavoro è già stato svolto: al momento i nostri programmi sono attivi e<br />

funzionanti sullo stesso server che mette a <strong>di</strong>sposizione della rete <strong>in</strong>terna <strong>di</strong> Au-<br />

tostrade per l’Italia il servizio <strong>di</strong> Autotraf. In particolar modo, le pag<strong>in</strong>e html<br />

sono collegate ad un file presente nella <strong>di</strong>rectory ra<strong>di</strong>ce del server. Solo le pag<strong>in</strong>e<br />

pubblicate <strong>in</strong> questa <strong>di</strong>rectory sono raggiungibili dall’esterno: con questo collega-<br />

mento riusciamo a vedere le pag<strong>in</strong>e web senza doverle fisicamente trasferire nella<br />

root del server. Il trasferimento è stato possibile grazie all’aiuto <strong>di</strong> un collaborato-<br />

re <strong>di</strong> Infoblu ed è stato effettuato via FTP. Le <strong>di</strong>fficoltà maggiori rilevate <strong>in</strong> questa<br />

fase sono state portate dal dover reimpostare i programmi <strong>in</strong> modo che potesse-<br />

ro girare anche su un server UNIX, come quello messo a nostra <strong>di</strong>sposizione. In<br />

effetti, Java è <strong>in</strong><strong>di</strong>pendente dal sistema operativo su cui è fatto funzionare, come<br />

già spiegato <strong>in</strong> precedenza; tuttavia, nel passaggio da un sistema all’altro, ci sono<br />

alcune <strong>di</strong>fferenze tanto banali quanto degne <strong>di</strong> grande attenzione. In particolar<br />

modo ci riferiamo alla <strong>di</strong>fferenza nell’utilizzo degli slash per la scrittura dei per-<br />

corsi dei files.<br />

In ambiente Microsoft, generalmente, i percorsi sono riconosciuti sia che si usi lo<br />

slash, sia che si usi il backslash (Estratto 6.1).<br />

Estratto 6.1<br />

C:\ Dir1 \ Dir2 \ Dir3 \ F i l e . e x t<br />

In Unix, <strong>in</strong>vece, è necessario sostituire tutti i backslash (\) con gli slash (/)<br />

(Estratto 6.2).<br />

Estratto 6.2<br />

/ Dir1 / Dir2 / Dir3 / F i l e . e x t<br />

261


6.2. PUBBLICAZIONE SUL SERVER Carlo Caligaris, Iacopo Salvarani<br />

Una volta corretto questo, <strong>in</strong>sieme ad altri piccoli <strong>in</strong>convenienti, siamo riusciti<br />

a far funzionare i nostri files .class anche da remoto tramite l<strong>in</strong>ea <strong>di</strong> comando<br />

trasmessa con TelNet.<br />

262


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 6. SVILUPPI FUTURI<br />

6.3 Disegno delle Curve <strong>di</strong> Approssimazione delle<br />

Entrate<br />

Come già detto, una delle più gran<strong>di</strong> limitazioni del simulatore è quella <strong>di</strong> assu-<br />

mere <strong>in</strong>gressi ed uscite costanti per tutto l’arco <strong>di</strong> previsione. Per ovviare a questo<br />

problema, abbiamo cercato <strong>di</strong> ricostruire un andamento standard degli <strong>in</strong>gressi<br />

(per le uscite si possono effettuare analoghe considerazioni) lungo l’arco <strong>di</strong> una<br />

giornata, basandoci su dati storici. Dal database abbiamo estratto i dati relativi ad<br />

un’<strong>in</strong>tera giornata <strong>di</strong> <strong>in</strong>gressi, raggruppandoli per m<strong>in</strong>uto, <strong>in</strong> modo da poter cono-<br />

scere, per ogni m<strong>in</strong>uto, quanti veicoli sono entrati <strong>in</strong> ciascuna stazione. Questo<br />

lavoro avrebbe dovuto essere svolto per ciascun giorno della settimana, essendo<br />

presumibilmente <strong>di</strong>fferenti le proporzioni <strong>di</strong> utilizzo delle varie stazioni a secon-<br />

da del giorno <strong>in</strong> esame. Noti questi andamenti <strong>di</strong> riferimento, abbiamo dovuto<br />

stu<strong>di</strong>are un modo per renderli fruibili all’<strong>in</strong>terno del programma.<br />

In pratica, dati il giorno e l’ora <strong>di</strong> simulazione, noi vogliamo un metodo <strong>in</strong><br />

grado <strong>di</strong> stimare le entrate per i 30 m<strong>in</strong>uti successivi basandosi sui valori storici<br />

rilevati nei giorni omonimi. Eventualmente, questi valori potrebbero essere scalati<br />

proporzionalmente al valore attuale.<br />

La prima idea è stata quella <strong>di</strong> memorizzare tutti questi dati <strong>in</strong> un piccolo<br />

database <strong>in</strong>terno all’applicazione (qu<strong>in</strong><strong>di</strong> non appoggiato al database Oracle <strong>di</strong><br />

Autostrade per l’Italia e non sviluppato secondo un’ottica client-server). Questo<br />

metodo avrebbe consentito <strong>di</strong> utilizzare esattamente i valori ricavati dallo sto-<br />

rico, ma avrebbe anche richiesto un notevole utilizzo <strong>di</strong> memoria oltre che un<br />

rallentamento delle prestazioni.<br />

Abbiamo qu<strong>in</strong><strong>di</strong> optato per costruire delle curve <strong>in</strong> grado <strong>di</strong> approssimare l’an-<br />

damento giornaliero degli <strong>in</strong>gressi. Consideriamo la Figura 6.2: essa rappresenta<br />

gli <strong>in</strong>gressi <strong>di</strong> una giornata <strong>in</strong>tera registrati alla stazione 641. Abbiamo raggrup-<br />

pato i dati ogni 6 m<strong>in</strong>uti, <strong>in</strong> modo da consentire una <strong>di</strong>stribuzione del dato più<br />

regolare.<br />

263


6.3. DISEGNO DELLE CURVE DI APPROSSIMAZIONE DELLE ENTRATE Carlo Caligaris, Iacopo Salvarani<br />

Figura 6.2: Entrate alla stazione 641 relative a Venerd 3 Febbraio 2006<br />

Per approssimare l’andamento <strong>di</strong> questi dati abbiamo utilizzato un pacchetto<br />

<strong>di</strong> Matlab ((Optimization Toolbox)) <strong>in</strong> grado <strong>di</strong> eseguire la m<strong>in</strong>imizzazione dei<br />

quadrati dell’errore data una funzione <strong>di</strong> riferimento che deve approssimare il<br />

nostro <strong>in</strong>sieme <strong>di</strong> dati. La funzione <strong>di</strong> riferimento scelta è la seguente.<br />

F = a[13] · s<strong>in</strong>(a[14] · x)<br />

+ a[1] · e −(x−a[2])2<br />

a(3)<br />

+ a[4] · e −(x−a[5])2<br />

a(6)<br />

+ a[7] · e −(x−a[8])2<br />

a(9)<br />

+ a[10] · e −(x−a[11])2<br />

a(12)<br />

(6.1)<br />

La funzione <strong>di</strong>pende dal vettore a[i] def<strong>in</strong>ito per i = 1 . . . 14. Questi coefficienti<br />

sono quelli che vengono mo<strong>di</strong>ficati <strong>in</strong> modo da def<strong>in</strong>ire la curva del tipo richiesto<br />

che meglio approssima i dati reali.<br />

264


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 6. SVILUPPI FUTURI<br />

Figura 6.3: Approssimazione con il metodo dei m<strong>in</strong>imi quadrati<br />

In Figura 6.3 ve<strong>di</strong>amo il risultato dell’approssimazione.<br />

Nelle Figure seguenti, mostriamo altri casi, relativi ad altre tratte, con relative<br />

curve <strong>di</strong> regressione.<br />

Figura 6.4: Approssimazione con il metodo dei m<strong>in</strong>imi quadrati<br />

265


6.3. DISEGNO DELLE CURVE DI APPROSSIMAZIONE DELLE ENTRATE Carlo Caligaris, Iacopo Salvarani<br />

Figura 6.5: Approssimazione con il metodo dei m<strong>in</strong>imi quadrati<br />

Figura 6.6: Approssimazione con il metodo dei m<strong>in</strong>imi quadrati<br />

Non abbiamo ancora implementato il simulatore <strong>in</strong> modo da mo<strong>di</strong>ficare gli<br />

<strong>in</strong>gressi <strong>in</strong> base a queste funzioni. Inoltre, dal momento che i dati sono raggrup-<br />

266


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> CAPITOLO 6. SVILUPPI FUTURI<br />

pato ogni sei m<strong>in</strong>uti, dovremo supporre che le entrate e le uscite rest<strong>in</strong>o pressoché<br />

costanti per <strong>in</strong>tervalli <strong>di</strong> durata pari proprio a sei m<strong>in</strong>uti. Questa approssimazione<br />

è necessaria per ottenere curve <strong>di</strong> regressione accettabili: scegliendo <strong>in</strong>tervalli più<br />

brevi, si avrebbero andamenti molto <strong>di</strong>storti rispetto al caso reale.<br />

267


6.4. APPLICAZIONE AD ALTRE TRATTE Carlo Caligaris, Iacopo Salvarani<br />

6.4 Applicazione ad Altre Tratte<br />

L’approccio da noi utilizzato può essere esteso anche ad altre tratte autostradali:<br />

il v<strong>in</strong>colo più importante è che esse siano “tratte chiuse”, ossia tratte comprese<br />

tra sue barriere, tra due spire o tra una barriera ed una spira. In pratica, un tratto<br />

chiuso è tanto più facilmente gestibile quanti più strumenti <strong>di</strong> rilevazione vi so-<br />

no. La sensoristica non è <strong>di</strong>stribuita uniformemente lungo tutta la rete: il tratto<br />

Milano-Brescia è probabilmente quello più ricco <strong>di</strong> sensori, eppure abbiamo vi-<br />

sto come, <strong>in</strong> certi casi, essi siano <strong>in</strong>sufficienti. Per sviluppare lo stesso modello<br />

su altre tratte, dovremmo qu<strong>in</strong><strong>di</strong> avere a <strong>di</strong>sposizione una rete <strong>di</strong> rilevazione dati<br />

adeguata.<br />

Questo implica la presenza <strong>di</strong> almeno una spira <strong>in</strong>terna al tratto e <strong>di</strong> almeno una<br />

boa su ogni tratta elementare. Sarebbe estremamente utile avere anche un qual-<br />

che strumento <strong>di</strong> rilevazione (come le boe) sulle rampe <strong>di</strong> accesso, <strong>in</strong> modo da<br />

conoscere con una precisione maggiore rispetto a quella ottenuta f<strong>in</strong>o ad ora la<br />

percentuale <strong>di</strong> veicoli che scelgono una <strong>di</strong>rezione piuttosto che un’altra.<br />

268


Bibliografia<br />

[1] M. Ben-Akiva,<br />

Development of a deployable real-time dynamic traffic assignment sy-<br />

stem, Task D Interim report: analytical developments for DTA system,<br />

MIT ITS Program, Cambridge (MA), 1996.<br />

[2] B.W. Bush,<br />

An Algorithmic Overview of TRANSIMS,<br />

Los Alamos National Laboratories, 2000.<br />

[3] P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone,<br />

Basi <strong>di</strong> Dati - Modelli e L<strong>in</strong>guaggi <strong>di</strong> Interrogazione,<br />

McGrawH-Hill, 2002, ISBN 88-386-6008-5.<br />

[4] M. Bacchi, A. Bracc<strong>in</strong>i,<br />

AutoTraf: Sistema automatico <strong>di</strong> misura dei tempi <strong>di</strong> percorrenza sulle<br />

tratte autostradali,<br />

Infoblu S.p.A..<br />

[5] W. Burghout,<br />

Hybrid microscopic-mesoscopic traffic simulation,<br />

Doctoral Dissertation Royal Institute of Technology Stockholm, 14-16,<br />

Sweden, 2004.<br />

269


BIBLIOGRAFIA Carlo Caligaris, Iacopo Salvarani<br />

[6] O. Caligaris,<br />

Dispense del corso Modelli Matematici e Statistici,<br />

Università degli Stu<strong>di</strong> <strong>di</strong> Genova.<br />

[7] R.E. Chandler, R. Herman, E.W. Montroll,<br />

Traffic Dynamics: Stu<strong>di</strong>es <strong>in</strong> Car Follow<strong>in</strong>g,<br />

Opns. Res., 6, (1958), 317-45.<br />

[8] A. Chigrik,<br />

SQL Server 2000 vs Oracle 9i,<br />

http://www.mssqlcity.com/Articles/Compare/<br />

sql server vs oracle.htm.<br />

[9] R. Courant, K.O. Friedrichs, H. Lewy,<br />

Über <strong>di</strong>e partiellen <strong>di</strong>ffrezengleichungen der mathematischen physik,<br />

Math. Ann. 100 (1928), 32.<br />

[10] H.M. Deitel, P.J. Deitel,<br />

Java - Fondamenti <strong>di</strong> Programmazione, Terza E<strong>di</strong>zione,<br />

APOGEO, 2005, ISBN 88-503-2388-3.<br />

[11] C.F. Daganzo,<br />

Requiem for second-order fluid approximations of traffc flow,<br />

Transportation Research-B 29, 277-286. 1995.<br />

[12] S. Del Furia, P. Meozzi,<br />

Programmare con il .Net Framework - ADO.NET, ASP.NET, XML - Vo-<br />

lume 3,<br />

Mondadori Informatica - MSDN Academic Alliance, ISBN 88-04-<br />

54064-8.<br />

270


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> BIBLIOGRAFIA<br />

[13] J. Fritz,<br />

Partial <strong>di</strong>fferential equations,<br />

Repr<strong>in</strong>t of the fouth e<strong>di</strong>tion, Applied Mathematical Sciences, 1.<br />

Spr<strong>in</strong>ger-Verlag, New York, 1967.<br />

[14] D.R. Drew,<br />

Traffic Flow Theory and Control,<br />

McGraw-Hill New York. 1968.<br />

[15] P. Gallo, F. Salerno,<br />

HTML, CSS e JavaScript,<br />

Mondadori Informatica - M<strong>in</strong>erva Italica, 2005, ISBN 88-8331-521-9.<br />

[16] C. Gawron,<br />

Simulation-Based Traffic Assignment; Comput<strong>in</strong>g User Equilibria <strong>in</strong><br />

Large Street Networks,<br />

PhD thesis, University of Cologne, Cologne, 1998.<br />

[17] P.G. Gipps,<br />

A model for the structure of lane-chang<strong>in</strong>g decisions,<br />

Transportation Research Part B, 5, 403-414, 1986.<br />

[18] H. Greenberg,<br />

An Analisys of Traffic Flow,<br />

Operation Research 7, 79-85. 1959.<br />

[19] B.D. Greenshields,<br />

A Study <strong>in</strong> Highway Capacity,<br />

Highway Research Board Procee<strong>di</strong>ngs 14, 458. 1935.<br />

271


BIBLIOGRAFIA Carlo Caligaris, Iacopo Salvarani<br />

[20] R. Greenwald, R. Stackowiak, J. Stern,<br />

Oracle Essentials : Oracle9i, Oracle8i & Oracle8 (2nd E<strong>di</strong>tion),<br />

O’Reilly & Associates, ISBN 0-596-00179-7.<br />

[21] R. Jayakrishnan, H.S. Mahmassani, T.Y. Hu,<br />

An Evaluation Tool fo Advanced Traffic Information and Management<br />

Systems <strong>in</strong> Urban Networks,<br />

Transportation Research C 2C (3): 129-14, 1994.<br />

[22] O.A. Ladyˇzenskaja, V.A. Solonnikov,<br />

Ural’ ceva, N. N., L<strong>in</strong>ear and quasil<strong>in</strong>ear equations of parabolic type,<br />

(Russian) Translated from the Russian by S. Smith. Translations of<br />

Mathematical Monographs, Vol. 23 American Mathematical Society,<br />

1967.<br />

[23] P.D. Lax,<br />

Hyperbolic systems of conservation laws,<br />

II. Comm. Pure Appl. Math. 10 1957 537-566.<br />

[24] P.D. Lax, B. Wendroff,<br />

System of conservation laws,<br />

Comm. Pure Appl. Math. 1 (1960) 217-237.<br />

[25] D.R. Leonard, P. Power, N.B. Taylor,<br />

CONTRAM: structure of the model,<br />

Transportation Research Laboratory, Crowthorn, 1989.<br />

[26] M.J. Lighthill, J.B. Whitham,<br />

On k<strong>in</strong>ematic waves II: A theory of traffic flow on long crowded roads,<br />

Procee<strong>di</strong>ngs of the Royal Society A 229, 317-345. 1955.<br />

272


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> BIBLIOGRAFIA<br />

[27] M. Mahut,<br />

A multi-lane extension of the Space-Time Queue Model of Traffic Dy-<br />

namics,<br />

TRISTAN IV, Azores Islands, 2001.<br />

[28] A.D. May,<br />

Freeway Simulation Models.<br />

Transportation Research Rec 1132, 94-99. 1988<br />

[29] K. Nagel, M. Schreckenberg,<br />

A cellular automaton model for freeway traffic,<br />

J. Phys. I France 2 (12): 2221-2229, 1992.<br />

[30] R. Natal<strong>in</strong>i,<br />

Introduzione ai meto<strong>di</strong> numerici alle <strong>di</strong>fferenze f<strong>in</strong>ite per equazioni <strong>di</strong><br />

evoluz<strong>in</strong>e,<br />

Istituto per le Applicazioni del Calcolo “Mauro Picone” Consiglio Nazio-<br />

nale delle Ricerche,<br />

http://www.iac.rm.cnr.it/∼natal<strong>in</strong>i.<br />

[31] M. Papageorgiou,<br />

Applications of Automatic Control Concepts To Traffic Flow Model<strong>in</strong>g<br />

and Control,<br />

A.V. Balakrishnan, M. Thoma 1979.<br />

[32] M. Papageorgiou,<br />

Some Remarks on Macroscopic Traffic Flow Modell<strong>in</strong>g,<br />

Transpn Res.-A, Vol. 32, No. 5, pp. 323-329, 1998<br />

273


BIBLIOGRAFIA Carlo Caligaris, Iacopo Salvarani<br />

[33] M. Papageorgiou, H. Haj-Salem,<br />

Ramp Meeter<strong>in</strong>g Impact on Urban Corridor Traffic: Field Results,<br />

Transportation Research Vol. 29A, No. 4, 303-319. 1995<br />

[34] H.J. Payne,<br />

Models of freeway traffic and control,<br />

Simulation Council Procee<strong>di</strong>ngs 1, 51-61.1971.<br />

[35] B. Peasland,<br />

TechTarget Expert Answer Center,<br />

http://expertanswercenter.techtarget.com/eac/<br />

knowledgebaseAnswer/<br />

0,295199,sid63 gci976695,00.html.<br />

[36] S. Piccar<strong>di</strong>,<br />

GaPiL Guida alla Programmazione <strong>in</strong> L<strong>in</strong>ux,<br />

http://www.lilik.it/∼mirko/gapil/.<br />

[37] L.A. Pipes,<br />

An operational analysis of traffic dynamics,<br />

Journal of Applied Physics, Vol. 24, No. 3, 1953, pp. 274-281.<br />

[38] A. Reuschel,<br />

Vehicle movements <strong>in</strong> a platoon,<br />

Oesterreichisches Ingenieeur-Archir, Vol. 4, 1950, pp. 193-215.<br />

[39] R.D. Richtmyer, K.W. Morton,<br />

Difference methods for <strong>in</strong>itialvalue problems,<br />

Repr<strong>in</strong>t of the second e<strong>di</strong>tion. Robert E. Krieger Publish<strong>in</strong>g Co., 1994.<br />

274


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> BIBLIOGRAFIA<br />

[40] J.M. Rosengard,<br />

Introduction to Oracle and Java,<br />

w2.syronex.com/jmr/pubs/2003/oralab4.pdf.<br />

[41] G<strong>in</strong>o Tironi,<br />

Università degli Stu<strong>di</strong> <strong>di</strong> Trieste,<br />

http://www.dmi.units.it/∼tironi/mat<strong>di</strong>d.<br />

[42] M. Treiber,<br />

Microsimulation of Road Traffic,<br />

http://vwisb7.vkw.tu-dresden.de/<br />

∼treiber/MicroApplet/.<br />

[43] R.T. Underwood,<br />

Speed, Volume, and Density Relationships, Quality and Theory of<br />

Traffic Flow,<br />

Yale Bureau of Highway Traffic, New Haven, 141-188. 1968<br />

[44] P. Viotti,<br />

Risoluzione Numerica delle Equazioni Differenziali Or<strong>di</strong>narie (EDO),<br />

http://w3.uniroma1.it/<strong>di</strong>ts/docenti/<br />

viotti/<strong>di</strong>spense/EDO.pdf.<br />

Università degli Stu<strong>di</strong> <strong>di</strong> Roma “La Sapienza”.<br />

[45] Autostrade Tor<strong>in</strong>o Milano Tor<strong>in</strong>o Piacenza,<br />

Satap S.p.A.<br />

http://www.satapweb.it/<strong>in</strong>side.php?ctype=1.<br />

[46] ECMAScript Language Specification,<br />

Standard ECMA-262, 3rd December 1999,<br />

275


BIBLIOGRAFIA Carlo Caligaris, Iacopo Salvarani<br />

http://www.ecma-<strong>in</strong>ternational.org/<br />

publications/files/ECMA-ST/Ecma-262.pdf.<br />

[47] Oracle 9i JDBC Developer’s Guide and Reference Release 2 (9.2),<br />

http://www.lc.leidenuniv.nl/<br />

awcourse/oracle/java.920/a96654/.<br />

[48] SearchOracle.com,<br />

http://searchoracle.techtarget.com.<br />

[49] Sun MicroSystems,<br />

http://www.sun.com/java/everywhere/.<br />

[50] SVG Tutorial,<br />

W3 Schools,<br />

http://www.w3schools.com/svg/svg <strong>in</strong>tro.asp.<br />

[51] Technion - Israel Institute of Technology - Computer Science Depart-<br />

ment,<br />

http://www.cs.technion.ac.il/∼zyoav/<br />

hierarchy-pictures/<br />

IBM-XML-java-hierarchy%20145<br />

%20nodes%20178%20edges.jpg.<br />

[52] Wikipe<strong>di</strong>a - L’Enciclope<strong>di</strong>a Libera,<br />

http://it.wikipe<strong>di</strong>a.org/wiki/Autostrada A4.<br />

[53] AutoTraf.<br />

[54] Intranet Gruppo Autostrade.<br />

276


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> BIBLIOGRAFIA<br />

[55] Autostrade per l’Italia S.p.A.,<br />

http://www.autostrade.it/en/<strong>in</strong>vestor/<br />

profilo attivita.html?<strong>in</strong>itPos=5.<br />

[56] Infoblu S.p.A.,<br />

http://www.<strong>in</strong>foblu.it/Infoblu.html.<br />

[57] http://web.me<strong>di</strong>a.mit.edu/∼dmerrill/images/<br />

beauty/slides/boston%20traffic.html.<br />

[58] http://www.edmunds.com/me<strong>di</strong>a/ownership/<br />

driv<strong>in</strong>g/avoid.traffic.tickets/<br />

traffic.1.500.jpg.<br />

[59] http://www.photo.net/photo/<br />

pcd0222/los-angeles-traffic-44.3.jpg.<br />

[60] http://www.picture-newsletter.com/<br />

night/motorway-night.jpg.<br />

[61] http://www.math.toronto.edu/∼drorbn/Gallery/<br />

KnottedObjects/Interchange/IRColor.jpg.<br />

[62] http://web.mit.edu/smalpert/<br />

277


BIBLIOGRAFIA Carlo Caligaris, Iacopo Salvarani<br />

www/roads/10-way.jpg.<br />

[63] http://gtresearchnews.gatech.edu/<br />

reshor/rh-spr99/tr-ozone-b.jpg.<br />

278


Elenco delle figure<br />

1 Highway Lanes [58] . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.1 Infrared picture of the <strong>in</strong>terchange of I-95 and I-695, northeast of<br />

Baltimore. [61] . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

1.2 Organigramma [55] . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

1.3 Rete Autostradale gestita da AutoTraf [53] . . . . . . . . . . . . . 23<br />

1.4 Dettaglio della A4 e della A8 [53] . . . . . . . . . . . . . . . . . 24<br />

1.5 Il tratto Milano-Brescia [53] . . . . . . . . . . . . . . . . . . . . 24<br />

2.1 Atlanta traffic jams at the <strong>in</strong>terstate connector <strong>in</strong> downtown [63] . 27<br />

2.2 Schematizzazione del modello car follow<strong>in</strong>g . . . . . . . . . . . . 33<br />

2.3 Il modello <strong>di</strong> Reuschel e Pipes . . . . . . . . . . . . . . . . . . . 34<br />

2.4 Manovra <strong>di</strong> Lane Change . . . . . . . . . . . . . . . . . . . . . . 36<br />

2.5 Simulatore Modello Microscopico [42] . . . . . . . . . . . . . . . 37<br />

2.6 Simulatore Modello Microscopico [42] . . . . . . . . . . . . . . . 37<br />

2.7 Simulatore Modello Microscopico [42] . . . . . . . . . . . . . . . 38<br />

2.8 Simulatore Modello Microscopico [42] . . . . . . . . . . . . . . . 38<br />

2.9 Relazione L<strong>in</strong>eare Velocità-Densità . . . . . . . . . . . . . . . . 41<br />

2.10 Curva Caratteristica a Regime Stazionario Flusso-Densità . . . . 43<br />

2.11 Divisione <strong>in</strong> sezioni <strong>di</strong> un ipotetico tratto stradale . . . . . . . . . 45<br />

2.12 Le l<strong>in</strong>ee caratteristiche . . . . . . . . . . . . . . . . . . . . . . . 57<br />

2.13 Grafico e livelli della 2.30 . . . . . . . . . . . . . . . . . . . . . . 58<br />

2.14 Traiettoria <strong>di</strong> un’auto <strong>in</strong>izialmente <strong>in</strong> attesa al semaforo . . . . . . 60<br />

2.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

279


ELENCO DELLE FIGURE Carlo Caligaris, Iacopo Salvarani<br />

2.16 Una rappresentazione bi<strong>di</strong>mensionale della griglia . . . . . . . . . 68<br />

2.17 Lax-Friedrichs, λ = 0, 8 [30] . . . . . . . . . . . . . . . . . . . . 71<br />

2.18 Lax-Friedrichs, λ = 1, 6 [30] . . . . . . . . . . . . . . . . . . . . 72<br />

2.19 Trasporto l<strong>in</strong>eare con il metodo upw<strong>in</strong>d [30] . . . . . . . . . . . 90<br />

2.20 Trasporto l<strong>in</strong>eare con il metodo <strong>di</strong> Lax-Wendroff [30] . . . . . . . 91<br />

2.21 Trasporto l<strong>in</strong>eare (dato regolare) con il metodo <strong>di</strong> Lax-Wendroff<br />

[30] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />

2.22 Curva Caratteristica velocità-densità . . . . . . . . . . . . . . . . 97<br />

2.23 Curva Caratteristica flusso-densità . . . . . . . . . . . . . . . . . 97<br />

2.24 Flussi veicolari relativi alla tratta i-esima . . . . . . . . . . . . . . 101<br />

2.25 | aλ | <strong>in</strong> funzione della densità . . . . . . . . . . . . . . . . . . . 104<br />

2.26 | aλ | <strong>in</strong> funzione della densità . . . . . . . . . . . . . . . . . . . 105<br />

3.1 Boston Traffic [57] . . . . . . . . . . . . . . . . . . . . . . . . . 115<br />

3.2 Gli Aspetti <strong>di</strong> Java [49] . . . . . . . . . . . . . . . . . . . . . . . 116<br />

3.3 Una base <strong>di</strong> dati relazionale . . . . . . . . . . . . . . . . . . . . . 133<br />

3.4 Una base <strong>di</strong> dati non relazionale con puntatori . . . . . . . . . . . 133<br />

3.5 Concentratori per un grande numero <strong>di</strong> utenti [20] . . . . . . . . 140<br />

3.6 Tipiche connessioni <strong>di</strong> un database Oracle [20] . . . . . . . . . . 142<br />

3.7 Un esempio <strong>di</strong> file XML da noi utilizzato . . . . . . . . . . . . . 151<br />

3.8 La Struttura ad Albero Tipica dell’XML [51] . . . . . . . . . . . 156<br />

3.9 La Struttura <strong>di</strong> un file XML [12] . . . . . . . . . . . . . . . . . . 158<br />

4.1 Night Motorway [60] . . . . . . . . . . . . . . . . . . . . . . . . 167<br />

4.2 Gli <strong>in</strong>izi della Tor<strong>in</strong>o-Milano [45] . . . . . . . . . . . . . . . . . 169<br />

4.3 Le due corsie dell’autostrada [45] . . . . . . . . . . . . . . . . . 170<br />

4.4 Il tratto Milano-Brescia [53] . . . . . . . . . . . . . . . . . . . . 171<br />

4.5 Legenda <strong>di</strong> AutoTraf [53] . . . . . . . . . . . . . . . . . . . . . . 172<br />

4.6 Numerazione delle corsie . . . . . . . . . . . . . . . . . . . . . 177<br />

4.7 Posizionamento della spira 24 . . . . . . . . . . . . . . . . . . . 181<br />

4.8 La situazione alla barriera <strong>di</strong> Milano Est . . . . . . . . . . . . . . 185<br />

5.1 Los Angeles Traffic [59] . . . . . . . . . . . . . . . . . . . . . . 191<br />

280


Università degli Stu<strong>di</strong> <strong>di</strong> Genova, <strong>Tesi</strong> <strong>di</strong> <strong>Laurea</strong> <strong>in</strong> <strong>Ingegneria</strong> <strong>Gestionale</strong> ELENCO DELLE FIGURE<br />

5.2 Flusso lungo una tratta . . . . . . . . . . . . . . . . . . . . . . . 196<br />

5.3 Flusso a cavallo <strong>di</strong> due tratte . . . . . . . . . . . . . . . . . . . . 196<br />

5.4 Sequenza logica del programma <strong>di</strong> simulazione . . . . . . . . . . 200<br />

5.5 Esempio <strong>di</strong> funzionamento del meccanismo <strong>di</strong> elaborazione delle<br />

queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214<br />

5.6 Interfaccia del simulatore . . . . . . . . . . . . . . . . . . . . . . 215<br />

5.7 Grafico vel(t) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216<br />

5.8 Grafico den(t) . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />

5.9 Grafico flu(t) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218<br />

5.10 Grafico flu(den) . . . . . . . . . . . . . . . . . . . . . . . . . . 219<br />

5.11 Tempi <strong>di</strong> percorrenza a partire dalla stazione <strong>di</strong> Cavenago . . . . . 220<br />

5.12 Assonometria della velocità . . . . . . . . . . . . . . . . . . . . . 223<br />

5.13 Assonometria della densità . . . . . . . . . . . . . . . . . . . . . 224<br />

5.14 Assonometria del flusso . . . . . . . . . . . . . . . . . . . . . . . 225<br />

5.15 Prospettiva della velocità . . . . . . . . . . . . . . . . . . . . . . 226<br />

5.16 Prospettiva della densità . . . . . . . . . . . . . . . . . . . . . . 227<br />

5.17 Prospettiva del flusso . . . . . . . . . . . . . . . . . . . . . . . . 228<br />

5.18 Grafico <strong>di</strong> velocità <strong>in</strong> funzione del tempo e del flusso <strong>in</strong> funzione<br />

del tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229<br />

5.19 Grafico della velocità <strong>in</strong> funzione del tempo e della densità . . . . 229<br />

5.20 Grafico del flusso <strong>in</strong> funzione del tempo e della densità . . . . . . 230<br />

5.21 Diagramma fondamentale flusso-densità . . . . . . . . . . . . . . 231<br />

5.22 Diagramma flusso-densità . . . . . . . . . . . . . . . . . . . . . 232<br />

5.23 Il fenomeno delle back waves . . . . . . . . . . . . . . . . . . . . 233<br />

5.24 Mesh tri<strong>di</strong>mensionale dei dati previsti <strong>di</strong> velocità . . . . . . . . . 234<br />

5.25 Il fenomeno delle back waves . . . . . . . . . . . . . . . . . . . . 234<br />

5.26 Struttura del programma <strong>di</strong> controllo . . . . . . . . . . . . . . . 236<br />

5.27 Flusso del programma <strong>di</strong> controllo . . . . . . . . . . . . . . . . . 238<br />

5.28 Interfaccia per il controllo del simulatore prima dell’utilizzo <strong>di</strong><br />

Elenco.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240<br />

281


ELENCO DELLE FIGURE Carlo Caligaris, Iacopo Salvarani<br />

5.29 Interfaccia per il controllo del simulatore dopo l’utilizzo <strong>di</strong> Elenco.js<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240<br />

5.30 Tratta 1 e Tratta 2 [53] . . . . . . . . . . . . . . . . . . . . . . . 248<br />

5.31 Tratta 3 [53] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />

5.32 Tratta 5 [53] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />

5.33 Le scelte messe a <strong>di</strong>sposizione dalla pag<strong>in</strong>a <strong>di</strong> controllo . . . . . 250<br />

5.34 I flussi <strong>di</strong> dati della pag<strong>in</strong>a . . . . . . . . . . . . . . . . . . . . . 250<br />

5.35 Il file SVG con due grafici visualizzati . . . . . . . . . . . . . . . 251<br />

5.36 Opzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />

5.37 Un risultato con fenomeni <strong>di</strong> stop and go non verificati . . . . . . 255<br />

5.38 Una buona simulazione . . . . . . . . . . . . . . . . . . . . . . . 255<br />

5.39 Una simulazione facile . . . . . . . . . . . . . . . . . . . . . . . 256<br />

5.40 Errore me<strong>di</strong>o percentuale . . . . . . . . . . . . . . . . . . . . . . 256<br />

5.41 Una tratta dove la velocità massima è troppo elevata . . . . . . . . 257<br />

6.1 Design of a 10-ways <strong>in</strong>terchange [62] . . . . . . . . . . . . . . . 259<br />

6.2 Entrate alla stazione 641 relative a Venerd 3 Febbraio 2006 . . . . 264<br />

6.3 Approssimazione con il metodo dei m<strong>in</strong>imi quadrati . . . . . . . 265<br />

6.4 Approssimazione con il metodo dei m<strong>in</strong>imi quadrati . . . . . . . . 265<br />

6.5 Approssimazione con il metodo dei m<strong>in</strong>imi quadrati . . . . . . . . 266<br />

6.6 Approssimazione con il metodo dei m<strong>in</strong>imi quadrati . . . . . . . . 266<br />

282


Elenco delle tabelle<br />

2.1 L’evoluzione della relazione tra velocità e densità . . . . . . . . . 48<br />

2.2 Schema Coefficienti [30] . . . . . . . . . . . . . . . . . . . . . . 80<br />

3.1 Lo stack <strong>di</strong> protocolli XML . . . . . . . . . . . . . . . . . . . . . 152<br />

4.1 Le stazioni della Milano-Brescia . . . . . . . . . . . . . . . . . . 172<br />

4.2 Il totale delle entrate per ogni stazione <strong>in</strong> un <strong>in</strong>tervallo <strong>di</strong> quattro<br />

ore e mezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179<br />

4.3 Il totale delle entrate per ogni stazione, considerando i soli utenti<br />

muniti <strong>di</strong> telepass, nello stesso <strong>in</strong>tervallo <strong>di</strong> tempo della Tabella<br />

4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180<br />

283

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!