Tesi di Laurea in Ingegneria Gestionale - Dist
Tesi di Laurea in Ingegneria Gestionale - Dist
Tesi di Laurea in Ingegneria Gestionale - Dist
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