Tesi di Laurea in Ingegneria Gestionale - Dist

33 downloads 177 Views 6MB Size Report
Universit`a degli Studi di Genova - Polo di Savona - Facolt`a di Ingegneria. Tesi di Laurea in Ingegneria Gestionale. Modellistica, Simulazione e Previsione a ...
Universit`a degli Studi di Genova - Polo di Savona - Facolt`a di Ingegneria

Tesi di Laurea in Ingegneria Gestionale Modellistica, Simulazione e Previsione a Breve Termine del Comportamento Dinamico del Traffico su Tratti Autostradali

Candidati: Carlo Caligaris, Iacopo Salvarani Relatore: Ch.mo Prof. Ing. Simona Sacone Correlatori: Dott. Alessandro Seri, Dott. Ing. Silvia Siri

Con la Collaborazione di: Societ`a Autostrade per l’Italia S.p.A.

2006

Sommario Questa Tesi si propone di illustrare il lavoro da noi svolto presso la Societ`a Autostrade per l’Italia e finalizzato alla realizzazione di uno strumento informatico in grado di simulare l’andamento del traffico lungo una tratta autostradale. Queste pagine contengono una descrizione d’insieme dell’ambiente di lavoro in cui ci siamo inseriti, una spiegazione teorica degli strumenti matematici ed informatici utilizzati ed una presentazione del risultato finale che abbiamo conseguito. Gli argomenti scientifici trattati pi`u nel dettaglio sono i modelli matematici per la rappresentazione del traffico e la teoria informatica relativa alla gestione di basi di dati relazionali basate sul concetto di transazione.

Ringraziamenti e Notazioni

Figura 1: Highway Lanes [58]

3

Carlo Caligaris, Iacopo Salvarani

Ringraziamenti di Carlo Caligaris e Iacopo Salvarani Scrivere questa Tesi e lavorare su questo progetto e` stato un lavoro molto lungo e difficile, ma al contempo gratificante e foriero di grande soddisfazione. Per questi motivi non possiamo che ringraziare la prof. Simona Sacone, la quale ci ha proposto questa attivit`a, ci ha consentito di lavorare sempre nelle migliori condizioni possibili e ci ha seguito con grande puntualit`a aiutandoci anche ad indirizzare il nostro futuro. Con lei, citiamo anche la Dott. Silvia Siri che si e` sempre dimostrata gentile e ben disposta nei nostri confronti. Meritano un ringraziamento particolare anche tutte le persone che hanno seguito il nostro percorso di inserimento nella realt`a aziendale della Societ`a Autostrade per l’Italia. Ci riferiamo sicuramente al Dott. Alessandro Seri che, nonostante i mille impegni, ha sempre trovato il tempo (e la pazienza) per ascoltarci e seguire i nostri progressi. Con lui ricordiamo anche Fabio Santucci, che ci ha aiutato moltissimo sui tanti problemi tecnici che abbiamo incontrato, sottraendo tempo al suo lavoro per dedicarlo a noi. Inoltre, non possiamo non citare Valerio, che ha condiviso con noi la Sala Conferenze di Infoblu per due mesi, dimostrandosi una persona estremamente affabile e simpatica; Vittorugo, che trovava sempre il modo per tirarci un p`o su di morale e Mary, una delle persone pi`u gentili con le quali abbiamo mai avuto a che fare. Vogliamo ringraziare e salutare anche lo staff della sede della Direzione del Primo Tronco di Genova per averci accolto e fornito tutto quello di cui abbiamo avuto bisogno. Citiamo in particolare il dott. Paolo Spingardi e Cristina Rossi.

4

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

Ringraziamenti di Carlo Caligaris Ebbene, questa e` la mia Tesi. Ho sempre pensato alla realizzazione di questo lavoro come ad un momento importante della mia vita. So che, come si dice fino all’abuso, questo non deve essere un punto di arrivo ma anzi un punto di partenza, tuttavia, sarebbe negare la realt`a sminuire la dimensione di questo evento. Ho sempre dato un grande valore alla scuola ed al lavoro fatto in funzione di essa e la Laurea e` una meta che ha condizionato ogni aspetto della mia vita fin da quando ho memoria. Averla raggiunta mi pone in una dimensione nuova che spero possa essere ricca di soddisfazione come la precedente. La possibilit`a di scrivere una pagina come questa nella mia Tesi si e` presentata nel momento in cui ho visto quelle scritte da alcuni miei colleghi. Da quel momento, mi sono interrogato molto su come organizzarla e sul criterio con il quale inserire le varie persone che, a mio parere, meritano di essere ricordate. Alla fine, ho deciso di ringraziare tutti quelli che mi hanno aiutato in modo importante durante questi cinque anni e mezzo di Universit´a, sia in ambito prettamente scolastico che in altri settori. Il primo ringraziamento va a Dio e spiegare i motivi mi sembra, come dire, superfluo. Quindi, vorrei ringraziare tutti i membri della mia famiglia: mio pap`a Ottavio, che mi ha sempre seguito con grande attenzione, mia mamma Roberta, che mi ha sempre aiutato con tutto l’affetto di cui solo una mamma e` capace, ed i nonni Carlo e Maria (che per`o tutti chiamano Giovanna) che si sono sempre interessati ai miei risultati universitari. Vorrei citare e salutare anche i miei due gatti: Spot e Isis. Tra i docenti, la prima persona da ringraziare e` di nuovo mio pap`a: il suo doppio ruolo non ci ha mai creato grossi problemi e spero che questa situazione sia stata ben accetatta anche dall’ambiente circostante. Con lui, saluto anche il prof. Oliva. Voglio poi ringraziare la prof. Simona Sacone (e con lei Silvia Siri) che ci ha proposto questa Tesi e ci ha seguito nel lavoro conseguente. Un 5

Carlo Caligaris, Iacopo Salvarani

ringraziamento va anche ad Angelo Alessandri, che si e` dimostrato una persona molto interessata ed interessante e con il quale spero, in futuro, di intraprendere qualche fruttuosa collaborazione. Ringrazio anche il prof. Giribone, che si e` sempre curato delle mie (alterne) fortune. Infine, voglio ringraziare due ragazzi che, per la loro et`a potrebbero anche essere inclusi nel paragrafo sottostante, ma il cui ruolo ne impone la presenza in questo contesto e me li propone come esempi da seguire: questi sono Renato Procopio e Federico Delfino (colgo l’occasione per ricordare il padre di Federico, scomparso prematuramente, insegnante di rara qualit`a del quale ho avuto la fortuna di seguire un intero corso). Infine, vorrei ringraziare un p`o di amici. Il pi`u importante e pi`u grande di questi ringraziamenti va a Iacopo, il mio amico migliore e l’unica persona con la quale sarei stato in grado di svolgere un lavoro cos`ı impegnativo come quello inerente questa Tesi. L’altro amico che ho conosciuto in questi anni e` Fabio Gungui; ragazzo di grande seriet`a ed ambizione e cortesia Spero che in futuro potremo ancora incrociare le nostre strade che, per adesso, si divideranno. Ho avuto la fortuna di condividere il cammino anche con persone con le quali spero di mantenere un rapporto durevole negli anni: Francesca Viale, Michela Morasso, Andrea Pitzalis, Livio Ginevri e Federico Beltramini. Queste sono le persone che hanno reso il mio soggiorno universitario pi`u leggero e piacevole e la cui amicizia e` una delle cose pi`u preziose che questi anni mi hanno lasciato.

6

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

Ringraziamenti di Iacopo Salvarani Onestamente non sono mai stato un drago a fare discorsoni... e non penso di aver imparato proprio prima di mettermi a scrivere questa pagina. Non sono mai stato un grande amante della forma e in cuor mio spero di non diventarlo mai. Pertanto perdonate il linguaggio un poco colloquiale e prendetelo a testimone della sincerit´a di ci`o che scrivo... Con queste poche righe voglio cercare di mostrare tutta la gratitudine che provo verso le persone che in questo quinquennio hanno contribuito al raggiungimento di questo mio traguardo. Grazie a quella gabbia di matti che e´ la mia famiglia, della quale sono felice e fiero di far parte, per il sostegno economico e soprattutto per quello morale. Grazie alla Vale, che quando preparavo Impianti Industriali 1 mi hai regalato la coccinella volante. Grazie a Carlo, col quale ho potuto lavorare e divertirmi al contempo (e non mi pare poco). Se non fosse stato per il tuo sprone, pigro come sono, ci avrei messo almeno un anno in pi´u. Grazie a tutti i compagni di corso coi quali ho vissuto numerose avventure insieme (partite, risate, aperitivi, cene, feste, festini, festoni e altre amenit´a del genere), per merito vostro sono stati cinque anni piacevoli.

post scriptum Per tutte le persone alle quali tengo, che amo e che stimo ma che non ho citato sopra: Tranquilli... non mi sono dimenticato di voi (anche se conoscendomi in effetti il dubbio era lecito)... semplicemente non avete avuto parte nella mia vita universitaria e non mi sembrava l’occasione adatta per dirvi grazie. 7

Carlo Caligaris, Iacopo Salvarani

E poi lo sapete, appartenete a qualcosa di ben pi´u importante di una tesi di laurea; appartenete alla mia vita quotidiana... e per quella vi tributo gi´a, anche se silenziosamente, 365 grazie all’anno, e 366 nei bisestili.

8

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

Notazione Utilizzata Organizzazione del Testo La Tesi e` divisa in Capitoli, Sezioni, Sottosezioni e Sottosottosezioni. Nel corso della trattazione, queste quattro suddivisioni saranno riconoscibili per il carattere del loro titolo e per il numero che compare a sinistra di quest’ultimo (tranne che nel caso delle Sottosottosezioni). Il numero identificativo del paragrafo corrente pu`o essere composto da uno, due o tre elementi. Evidentemente, il primo numero indica il Capitolo, il secondo, ove presente, la Sezione, il terzo, ove presente, la Sottosezione. Le Sottosottosezioni sono considerate come uno strumento di organizzazione del testo a livello basso e quindi non hanno alcun numero identificativo (e, conseguentemente, non compaiono nemmeno sull’Indice). Il paragrafo che state leggendo e` una Sottosezione.

Citazioni Le citazioni possono comparire in seguito ad una figura o ad un campo di testo. Nel caso della figura, indicano la risorsa dalla quale quella figura e` stata estratta. Se mancante, significa che la figura e` stata prodotta dagli Autori della Tesi. Per quanto riguarda le citazioni immerse nel testo, esse indicano gli strumenti da cui sono state tratte le informazioni riportate in precedenza. A seconda del livello di profondit`a che la struttura del testo assume in un particolare contesto, la citazione pu`o essere posta in coda ad un Capitolo, ad una Sezione o ad una Sottosezione (non ad una Sottosottosezione). La citazione e` valida a ritroso fino al primo titolo di una non Sottosottosezione o fino ad un’altra citazione, se precedente a quel titolo. Evidentemente, ove le citazioni fossero assenti, il testo sarebbe frutto della mente degli Autori ed i loro ispiratori sarebbero tanti e tali da non poter comparire in un solo riferimento bibliografico.

9

Carlo Caligaris, Iacopo Salvarani

10

Indice 1

Presentazione del Lavoro e di Autostrade per l’Italia S.p.A.

17

1.1

Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

1.2

La Societ`a Autostrade . . . . . . . . . . . . . . . . . . . . . . . .

19

1.2.1

Autostrade per l’Italia . . . . . . . . . . . . . . . . . . .

19

1.2.2

Infoblu . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

AutoTraf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

1.3.1

Interfaccia di AutoTraf . . . . . . . . . . . . . . . . . . .

22

1.3.2

Possibili Implementazioni . . . . . . . . . . . . . . . . .

25

1.3

2

Strumenti Matematici

27

2.1

L’Obiettivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

2.2

Introduzione ai Modelli di Traffico . . . . . . . . . . . . . . . . .

30

2.2.1

L’Utilit`a dei Modelli di Traffico . . . . . . . . . . . . . .

30

2.2.2

Modelli Microscopici . . . . . . . . . . . . . . . . . . . .

32

2.2.3

Modelli Macroscopici . . . . . . . . . . . . . . . . . . .

39

2.2.4

Modelli Mesoscopici . . . . . . . . . . . . . . . . . . . .

44

2.2.5

Trattazione Analitica . . . . . . . . . . . . . . . . . . . .

45

Il Modello Macroscopico di Traffico Autostradale . . . . . . . . .

49

2.3.1

Un esempio di trasporto nel caso della velocit`a costante .

51

Modelli Differenziali di Traffico Autostradale . . . . . . . . . . .

53

2.4.1

Ripartenza dopo un blocco . . . . . . . . . . . . . . . . .

55

2.4.2

La formazione di code . . . . . . . . . . . . . . . . . . .

61

Metodi di calcolo numerici alle Differenze Finite . . . . . . . . .

64

2.3 2.4

2.5

11

INDICE

2.6

3

Carlo Caligaris, Iacopo Salvarani

2.5.1

Generalit`a Sulle Equazioni Iperboliche . . . . . . . . . .

64

2.5.2

Introduzione al Metodo delle Differenze Finite . . . . . .

67

Il Modello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

2.6.1

La Scelta del Modello . . . . . . . . . . . . . . . . . . .

94

2.6.2

L’equazione fondamentale di Papageorgiou . . . . . . . .

95

2.6.3

L’Equazione del Modello . . . . . . . . . . . . . . . . . .

97

2.6.4

Le Equazioni di Papageorgiou . . . . . . . . . . . . . . . 100

2.6.5

Inizializzazione del modello . . . . . . . . . . . . . . . . 109

2.6.6

Pregi e difetti del modello . . . . . . . . . . . . . . . . . 110

Strumenti Informatici Utilizzati 3.1

3.2

3.3

115

Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 3.1.1

Introduzione al Linguaggio di Programmazione Java . . . 116

3.1.2

Linguaggi Macchina, Assembly e di Alto Livello . . . . . 116

3.1.3

La Storia dei Linguaggi C e C++ . . . . . . . . . . . . . . 118

3.1.4

La Storia di Java . . . . . . . . . . . . . . . . . . . . . . 119

3.1.5

Le Librerie di Classi Java . . . . . . . . . . . . . . . . . . 120

3.1.6

Gli Elementi Fondamentali di un Tipico Ambiente Java . . 120

3.1.7

Concetti Fondamentali della Tecnologia ad Oggetti . . . . 123

Le Basi di Dati ed i Sistemi di Gestione di Basi di Dati . . . . . . 125 3.2.1

Introduzione alle Basi di Dati . . . . . . . . . . . . . . . 125

3.2.2

Modelli dei Dati: il Modello Relazionale . . . . . . . . . 128

3.2.3

Livelli di Astrazione nel DBMS ed Indipendenza dei Dati 129

3.2.4

Definizioni Fondamentali . . . . . . . . . . . . . . . . . . 131

3.2.5

Relazioni e Basi di Dati . . . . . . . . . . . . . . . . . . 132

3.2.6

Linguaggi ed Utenti delle Basi di Dati . . . . . . . . . . . 134

3.2.7

Vantaggi e Svantaggi dei DBMS . . . . . . . . . . . . . . 135

Oracle9i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 3.3.1

Introduzione ad Oracle9i . . . . . . . . . . . . . . . . . . 137

3.3.2

Componenti per lo Sviluppo di Applicazioni su Database . 139

3.3.3

Componenti di Connessione del Database . . . . . . . . . 140

3.3.4

Oracle9iApplication Server . . . . . . . . . . . . . . . . 141 12

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

3.3.5 3.4

3.5

3.6

3.7

3.8

4

INDICE

Confronto con Altri RDBMS . . . . . . . . . . . . . . . . 142

SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 3.4.1

Introduzione ad SQL . . . . . . . . . . . . . . . . . . . . 144

3.4.2

Standardizzazione dell’SQL . . . . . . . . . . . . . . . . 144

3.4.3

Interrogazioni in SQL . . . . . . . . . . . . . . . . . . . 145

JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 3.5.1

Cosa Significa JDBC? . . . . . . . . . . . . . . . . . . . 146

3.5.2

Gli Oracle JDBC Drivers . . . . . . . . . . . . . . . . . . 146

3.5.3

La Connessione da Java ad Oracle . . . . . . . . . . . . . 148

XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.6.1

Introduzione ad XML . . . . . . . . . . . . . . . . . . . 149

3.6.2 3.6.3

HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Che Cosa E` l’XML . . . . . . . . . . . . . . . . . . . . . 151

3.6.4

Lo Stack di Protocolli XML . . . . . . . . . . . . . . . . 151

3.6.5

Specifiche XML . . . . . . . . . . . . . . . . . . . . . . 153

3.6.6

Le Interfacce di Programmazione . . . . . . . . . . . . . 154

3.6.7

Altre Specifiche XML . . . . . . . . . . . . . . . . . . . 156

3.6.8

Java ed XML . . . . . . . . . . . . . . . . . . . . . . . . 159

SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.7.1

Cosa e` SVG . . . . . . . . . . . . . . . . . . . . . . . . . 160

3.7.2

Storia e Vantaggi di SVG . . . . . . . . . . . . . . . . . . 160

JavaScript ed HTML . . . . . . . . . . . . . . . . . . . . . . . . 162 3.8.1

Cosa e` JavaScript . . . . . . . . . . . . . . . . . . . . . . 162

3.8.2

Scripting e Programmazione . . . . . . . . . . . . . . . . 163

3.8.3

Principali Caratteristiche di JavaScript . . . . . . . . . . . 163

3.8.4

Come Inserire uno Script in un Documento HTML . . . . 164

3.8.5

ECMAScript . . . . . . . . . . . . . . . . . . . . . . . . 165

Oggetto del Lavoro 4.1

167

Presentazione del Tratto Milano-Brescia . . . . . . . . . . . . . . 168 4.1.1

La Autostrada A4 . . . . . . . . . . . . . . . . . . . . . . 168

4.1.2

Il Tratto Milano-Brescia . . . . . . . . . . . . . . . . . . 171 13

INDICE

5

Carlo Caligaris, Iacopo Salvarani

4.1.3

Quante Auto hanno il Telepass? . . . . . . . . . . . . . . 177

4.1.4

Matrice di Ingresso ed Uscita . . . . . . . . . . . . . . . 183

Applicazione del Modello

191

5.1

Il Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

5.2

Il Simulatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 5.2.1

Equazione della Densit`a . . . . . . . . . . . . . . . . . . 195

5.2.2

Equazione della Velocit`a . . . . . . . . . . . . . . . . . . 197

5.2.3

Equazione Fondamentale di Papageorgiou

5.2.4

Funzionamento del Programma . . . . . . . . . . . . . . 199

5.2.5

Definizioni . . . . . . . . . . . . . . . . . . . . . . . . . 201

5.2.6

Ridimensionamento dei Vettori

5.2.7

Inizializzazione dei Vettori . . . . . . . . . . . . . . . . . 201

5.2.8

Cancellazione dei Files XML . . . . . . . . . . . . . . . 201

5.2.9

Inizializzazione dei Parametri . . . . . . . . . . . . . . . 202

. . . . . . . . 198

. . . . . . . . . . . . . . 201

5.2.10 Inizializzazione degli Ingressi . . . . . . . . . . . . . . . 203 5.2.11 Inizializzazione delle Uscite . . . . . . . . . . . . . . . . 204 5.2.12 Inizializzazione di Velocit`a, Flussi e Densit`a . . . . . . . 205 5.2.13 Simulazione

. . . . . . . . . . . . . . . . . . . . . . . . 208

5.2.14 Come Usiamo la JDBC per Passare Queries al Database . 211 5.2.15 La Nostra Tabella sul Database . . . . . . . . . . . . . . . 214 5.2.16 Interfaccia del Simulatore . . . . . . . . . . . . . . . . . 215 5.2.17 Grafici con Matlab . . . . . . . . . . . . . . . . . . . . . 228 5.3

5.4

Considerazioni sui Grafici . . . . . . . . . . . . . . . . . . . . . 231 5.3.1

Grafico Flusso-Densit`a . . . . . . . . . . . . . . . . . . . 231

5.3.2

Assonometria della Velocit`a . . . . . . . . . . . . . . . . 232

Programma di Controllo . . . . . . . . . . . . . . . . . . . . . . 235 5.4.1

Elenco.js e Controllo.html . . . . . . . . . . . . 239

5.4.2

Simulazioni Confrontabili e Simulazioni non Confrontabili 241

5.4.3

Esecuzione delle Query . . . . . . . . . . . . . . . . . . . 242

5.4.4

Scrittura sui files xml . . . . . . . . . . . . . . . . . . . 242

5.4.5

Rappresentazione Grafica del Controllo . . . . . . . . . . 249 14

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

5.5 6

INDICE

Qualche Risultato . . . . . . . . . . . . . . . . . . . . . . . . . . 254

Sviluppi Futuri

259

6.1

Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

6.2

Pubblicazione sul Server . . . . . . . . . . . . . . . . . . . . . . 261

6.3

Disegno delle Curve di Approssimazione delle Entrate . . . . . . 263

6.4

Applicazione ad Altre Tratte . . . . . . . . . . . . . . . . . . . . 268

15

INDICE

Carlo Caligaris, Iacopo Salvarani

16

Capitolo 1 Presentazione del Lavoro e di Autostrade per l’Italia S.p.A.

Figura 1.1: Infrared picture of the interchange of I-95 and I-695, northeast of Baltimore. [61]

17

1.1. INTRODUZIONE

1.1

Carlo Caligaris, Iacopo Salvarani

Introduzione

Per la realizzazione di questa Tesi, abbiamo collaborato con la Societ`a Autostrade per l’Italia S.p.A.. Il nostro obiettivo era quello di realizzare un simulatore di traffico autostradale su una tratta specifica (nel nostro caso la Autostrada A4 nel tratto Milano Brescia). In pratica, abbiamo costruito un software in grado di ricevere in ingresso i dati sul traffico rilevati sulla rete, elaborarli secondo un modello matematico derivante dalle equazioni di continuit`a e di conservazione della massa caratteristiche della dinamica dei fluidi ed ottenere dei valori previsti di velocit`a, flusso e densit`a per i 30 minuti successivi all’istante di partenza. Questi dati vengono poi visualizzati tramite un’interfaccia che ne consente la comprensione immediata. Entreremo nel dettaglio del nostro lavoro nei Capitoli seguenti; per ora ci interessa introdurre l’ambiente al quale abbiamo fatto riferimento durante lo svolgimento del nostro lavoro, ossia quello della Societ`a Autostrade.

18

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale CAPITOLO 1. PRESENTAZIONE DEL LAVORO E DI AUTOSTRADE PER L’ITALIA S.P.A.

1.2

La Societ`a Autostrade

Il Gruppo Autostrade si posiziona al primo posto in Europa tra i concessionari di costruzione e gestione di autostrade a pedaggio e di servizi alla mobilit`a. Tra le societ`a del gruppo e` compresa Autostrade per l’Italia S.p.A., che ha in gestione 2854.6 km di rete autostradale (tra cui anche il tratto di nostro interesse). Tra le attivit`a collegate al proprio core business, il Gruppo Autostrade ha attivato la Infoblu S.p.A., che svolge attivit`a relative alla produzione e diffusione di servizi informativi sulle condizioni del traffico lungo la rete autostradale. [54]

1.2.1

Autostrade per l’Italia

Autostrade per l’Italia, controllata al 100% dalla holding Autostrade S.p.A., e` la societ`a capofila del settore autostradale del Gruppo Autostrade, che dal 1 luglio del 2003 ha completato il processo di riorganizzazione strategica (Progetto Mediterraneo), attraverso il conferimento delle attivit`a operative a societ`a di nuova costituzione. A seguito del conferimento, la societ`a concessionaria delle attivit`a di costruzione e gestione della rete autostradale Autostrade concessioni e costruzioni S.p.A. ha assunto. la nuova denominazione Autostrade per l’Italia S.p.A.. Autostrade per l’Italia, oltre alla rete in concessione, controlla a sua volta altre 8 societ`a concessionarie (Traforo Monte Bianco, Raccordo autostradale Valdostano (RAV) Torino-Savona, Tangenziale di Napoli, Societ`a Autostrade Meridionali (SAM), Strada dei Parchi, Societ`a Autostrada Tirrenica (SAT) e Pedemontana Lombarda). La rete gestita da tutte le societ`a concessionarie appartenenti al Gruppo ha un’estensione di 3408.1 Km, pari al 62% della rete autostradale italiana a pedaggio.

19

1.2. LA SOCIETA` AUTOSTRADE

Carlo Caligaris, Iacopo Salvarani

Figura 1.2: Organigramma [55]

L’impegno di Autostrade per l’Italia e` focalizzato ad assicurare la massima funzionalit`a della rete autostradale e a perseguire il costante miglioramento della sicurezza e della qualit`a del servizio offerto alla clientela, anche attraverso lo sviluppo di servizi innovativi. La continuit`a dell’impegno profuso da Autostrade per l’Italia rispetto alla sicurezza, la telematica e l’ambiente hanno consentito alla Societ`a di partecipare con un ruolo di primo piano alla Piattaforma Tecnolo20

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale CAPITOLO 1. PRESENTAZIONE DEL LAVORO E DI AUTOSTRADE PER L’ITALIA S.P.A.

gica Europea, dedicata al tema della costruzione e della gestione delle infrastrutture promossa dalla Direzione Generale Ricerca della Commissione Europea e finalizzata allo sviluppo di piani pluriennali di ricerca e innovazione tecnologica. [54]

1.2.2

Infoblu

Infoblu nasce dalle pi`u avanzate tecnologie del gruppo Autostrade e cresce come societ`a nel settore dell’infomobilit`a offrendo informazioni e servizi personalzzati ed in tempo reale. Infoblu, nata nel 2000 con le pi`u avanzate esperienze e tecnologie del gruppo Autostrade, e` un progetto che si e` evoluto nel tempo e che e` oggi partecipato al 100% da Autostrade SpA con un team composto da persone altamente qualificate in grado di rispondere alle esigenze di mercato. Infoblu nasce per soddisfare i bisogni di informazione sulla viabilit`a delle persone in movimento, con l’obiettivo di erogare in modo utile, semplice e veloce servizi sull’infomobilit`a ad automobilisti ed a chiunque necessiti informazioni e contenuti autorevoli su traffico, percorribilit`a delle autostrade, eventi autostradali che hanno incidenza sulla mobilit`a, percorsi alternativi, microclima e molto altro. Attraverso le pi`u moderne tecnologie, Infoblu e` in grado di erogare contenuti sull’infomobilit`a a emittenti televisive e radiofoniche, operatori on line, societ`a di servizi e diversi altri operatori che necessitano di informazioni in tempo reale su percorsi autostradali, traffico, tempi di percorrenza, proiezioni ed altro. A livello concettuale in Infoblu si pu`o identificare il seguente ambito di sviluppo tecnologico: sistemi e tecnologie volte a fornire al personale operativo interno, agli utenti ed al mondo degli operatori del settore le informazioni sulla viabilit`a, lo stato della percorribilit`a della rete (tempi di percorrenza, immagini e video), le criticit`a nei percorsi (incidenti, cantieri, etc.), gli impedimenti di natura meteorologica, servizi e facilities usufruibili su rete. [56]

21

1.3. AUTOTRAF

1.3

Carlo Caligaris, Iacopo Salvarani

AutoTraf

Per rispondere alle moderne esigenze di infomobilit`a, Autostrade ha sviluppato un sistema di rilevazione dei tempi di percorrenza sulle tratte autostradali. Tale sistema, denominato AutoTraf, consiste nell’effettuare in modo completamente automatico la stima delle condizioni di viabilit`a basandosi su una misura oggettiva: il tempo di percorrenza tra due stazioni successive. Ogni giorno la rete autostradale e` percorsa da 4 milioni di veicoli che al loro ingresso in autostrada ricevono un biglietto (fisico o virtuale) che viene ritirato in uscita. Quando un veicolo entra ed esce dalla rete autostradale vengono registrate la stazione, la data e l’ora di transito. E` possibile quindi ricostruire il tempo di percorrenza da una stazione all’altra e, nota la distanza tra queste stazioni, la velocit`a media mantenuta. Confrontando i tempi di percorrenza con dei tempi medi stimati per ciascuna tratta e` possibile determinare lo stato della viabilit`a sulla rete autostradale. AutoTraf calcola il tempo necessario per percorrere una tratta base, intesa come tratta autostradale tra due accessi (entrata/uscita) consecutivi, utilizzando i dati provenienti dalle piste Telepass, ed integrandoli con quelli provenienti da una rete di sensori collocati in itinere. Nel seguito parleremo dettagliamente della sensoristica utilizzata. [4]

1.3.1

Interfaccia di AutoTraf

Il sistema dispone di un’interfaccia web che mostra, nella prima schermata, lo stato della percorrenza sull’intera rete autostradale, attraverso l’uso di colori che esprimono le condizioni di viabilit`a attualmente stimate per ogni tratto.

22

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale CAPITOLO 1. PRESENTAZIONE DEL LAVORO E DI AUTOSTRADE PER L’ITALIA S.P.A.

Figura 1.3: Rete Autostradale gestita da AutoTraf [53]

Il colore blu indica una situazione indeterminata per carenza di dati, mentre il traffico regolare, rallentato, o con code viene indicato rispettivamente con i colori verde, giallo o rosso. L’attribuzione di un colore ad un tratto avviene in base all’indice di percorrenza stimato ed alle soglie definite per quel tratto: se l’indice di percorrenza e` minore di 1.5, ovvero se il tempo stimato non supera il 150% del tempo di riferimento, il colore e` verde, giallo se l’indice e` compreso tra 1.5 e 2.0, 23

1.3. AUTOTRAF

Carlo Caligaris, Iacopo Salvarani

e rosso se e` maggiore di 2.0. Con un click su un’area della cartina, si accede ad una visione di dettaglio della rete. Il sistema offre attualmente un dettaglio per ognuno dei nove tronchi.

Figura 1.4: Dettaglio della A4 e della A8 [53] E` possibile avvicinare ulteriormente il punto di vista dell’utente visualizzando una particolare tratta compresa nella schermata precedente.

Figura 1.5: Il tratto Milano-Brescia [53] Da queste pagine e` possibile collegarsi a pagine di supporto in grado di visualizzare informazioni sui vari tipi di congegni elettronici distributi lungo la rete; 24

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale CAPITOLO 1. PRESENTAZIONE DEL LAVORO E DI AUTOSTRADE PER L’ITALIA S.P.A.

ogni telecamera, boa in itinere, stazione etc. e` collegata ad un pop-up che propone diverse elaborazioni dei dati ricevuti da quel dispositivo. [4]

1.3.2

Possibili Implementazioni

Dalla breve descrizione che abbiamo fornito di AutoTraf, appare chiaro come esso sia in grado di fornire esaurienti informazioni sullo stato presente della rete autostradale, ma non abbia la possibilit`a di fornire alcuna informazione di tipo previsionale su ci`o che pi`u probabilmente e` in procinto di accadere. Il nostro compito e` proprio quello di elaborare uno strumento che sia in grado di attingere dalle stesse risorse di AutoTraf ma che possa fornire indicazioni di massima sulla situazione del traffico nell’immediato futuro.

25

1.3. AUTOTRAF

Carlo Caligaris, Iacopo Salvarani

26

Capitolo 2 Strumenti Matematici

Figura 2.1: Atlanta traffic jams at the interstate connector in downtown [63]

27

2.1. L’OBIETTIVO

2.1

Carlo Caligaris, Iacopo Salvarani

L’Obiettivo

Come gi`a illustrato nella sezione precedente l’obiettivo proposto e` quello di studiare e cercare di prevedere, almeno nell’immediato futuro, il comportamento del traffico veicolare in un momento qualsiasi e su un tratto autostradale. Per raggiungere questo proposito occorre passare dallo studio del fenomeno in s`e allo studio di una sua modellizzazione. Occorre pertanto seguire i seguenti punti. • Trasformare in informazioni matematiche tutti i dati relativi all’autostrada, quali la condizione del traffico (scorrevole, congestionato, rallentato, ecc.), le caratteristiche della carreggiata (velocit`a massima delle corsie, capienza massima di veicoli, ecc.), la quantit`a di veicoli in ingresso ed in uscita dalle stazioni di pedaggio e molte altre. • Scegliere un insieme di grandezze che, ad ogni istante di tempo t, descrivano in maniera esauriente lo stato in cui si trova il sistema. Esse prendono il nome di variabili di stato del sistema: – ρ(x, t) e` la densit`a veicolare e definisce quanti veicoli stanno impegnando la carreggiata autostradale al tempo t ed in x; – q(x, t) e` il flusso veicolare e definisce quanti veicoli attraversano la sezione in x, in un determinato intervallo di tempo t; – v(x, t) e` la velocit`a media e definsce la velocit`a media che i veicoli mantengono al tempo t ed in x. • Scegliere un insieme di grandezze dinamiche che ad ogni istante di tempo t descrivano in maniera esauriente l’interazione fra l’esterno ed il sistema. Esse prendono il nome di variabili di ingresso del sistema e sono: – r(x, t) e` il flusso di veicoli in ingresso e definisce quanti veicoli si immettono, in un determinato intervallo di tempo, sulla carreggiata, al tempo t ed in x; 28

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

– s(x, t) e` il flusso di veicoli in uscita e definisce quanti veicoli fuoriescono, in un determinato intervallo di tempo, dalla carreggiata, al tempo t ed in x. • Scegliere un insieme di grandezze statiche che descrivano in maniera esauriente quelle che sono le caratteristiche fisiche della carreggiata autostradale. Esse prendono il nome di parametri fisici del sistema e sono: – vmax (x) e` la velocit`a massima e definisce la velocit`a che mediamente possono tenere i veicoli, in x con condizioni di traffico scorrevole e carreggiata libera; – ρmax (x) e` la densit`a massima (o densit`a di congestionamento) definisce, in x, il valore di densit`a di veicoli che comporta un congestionamento e quindi il relativo blocco del traffico; – τ, ν e χ sono ulteriori parametri che definiscono altre propriet`a della carreggiata ed il cui significato fisico verr`a illustrato successivamente. • Definire in quale maniera gli elementi del fenomeno reale interagiscono e dipendono fra di loro. Gli stessi comportamenti dovrebbero essere descritti anche dal modello matematico. Le interazioni e le dipendenze fra tutte le grandezze in gioco dovranno trasformarsi in equazioni e funzioni matematiche che agiranno sulle variabili di stato del modello.

29

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

2.2

Carlo Caligaris, Iacopo Salvarani

Introduzione ai Modelli di Traffico

La realt`a e` multidimensionale. Questa ovvia affermazione e` , in sostanza, il motivo dell’interesse a sviluppare modelli matematici basati su equazioni a derivate parziali. Spesso, anche un modello che utilizza equazioni differenziali ordinarie e` il risultato della semplificazione di un modello originariamente formulato in pi`u variabili. Nella riduzione del modello si utilizzano solitamente ipotesi che, talvolta, permettono un’utile semplificazione; tuttavia, questa non pu`o essere la situazione generale. Per determinati obiettivi la forma particolare di un corpo, la sua composizione eterogenea e la presenza di stati transitori non possono essere trascurati senza che il modello perda di utilit`a. Di conseguenza si ha un aumento nel numero delle dimensioni spaziali e/o l’introduzione di una variabile temporale. Il modello cresce in complessit`a, ma, in corrispondenza (almeno questa e` la speranza), aumenta la sua capacit`a di rappresentare un fenomeno reale. Tuttavia, la potenzialit`a informativa di un modello matematico dipende, in maniera essenziale, dalla sua risolubilit`a.

2.2.1

L’Utilit`a dei Modelli di Traffico

Il crescente numero di veicoli che ogni giorno circola sull’intera rete autostradale italiana comporta inevitabilmente la generazione di ingorghi e rallentamenti che, oltre a creare un notevole disagio agli automobilisti, aumenta il rischio di incidenti. Esistono due possibili soluzioni, diametralmente opposte, a questo annoso problema. La prima prevede di aumentare la capacit`a delle arterie stradali con l’aggiunta di nuove corsie. Tale approccio, seppur molto efficace, risulta essere molto costoso e di forte impatto ambientale, in quanto richiede sovente la costruzione di nuovi ponti, gallerie e altre infrastrutture. Inoltre, nella maggior parte dei casi, la capacit`a di sopportazione del traffico da parte di strade ed autostrade risulta essere insufficiente solo in alcune particolari fasce orarie della giornata (fasce di punta). Per tale ragione si e` cercata una soluzione alternativa che consiste nello sfrut30

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

tare la massimo le potenzialit`a delle attuali infrastrutture andando a monitorare continuamente le condizioni del traffico e, attraverso azioni preventive, tentare di evitare la creazione di ingorghi. La modellizzazione di strade urbane ed extraurbane ha attirato l’attenzione di molti studiosi del settore gi`a a partire dalla seconda met`a degli anni ’50. Negli ultimi anni, poi, si e` notato un notevole aumento dell’interesse e del lavoro di ricerca dedicato alla risoluzione dei problemi legati al traffico stradale ed autostradale, proprio a causa della sopracitata crescita del numero di veicoli circolanti ed ai sempre pi`u frequenti problemi di sovraccarico della rete stradale. Gli sforzi degli esperti del settore hanno condotto alla creazione di modelli matematici che potessero riprodurre fedelmente la realt`a. In tal maniera e` stato possibile ottenere strumenti informatici i quali permettono principalmente due tipi di analisi. Una di queste e` quella simulativa e consiste nell’osservare come il modello si comporta se sollecitato da particolari condizioni esterne, senza che queste debbano per forza verificarsi nella realt`a. Infatti, potrebbe sicuramente interessare al gestore di una tratta stradale sapere cosa accadrebbe se, per un qualsiasi motivo che esula dalla quotidianit`a, la tratta in questione fosse temporaneamente sottoposta a condizioni ben diverse da quelle di regime (per esempio un drastico aumento dei veicoli dovuto ad una eventualit`a particolare o una diminuzione del numero di corsie percorribili). La seconda analisi e` di tipo previsionale, e consiste nel monitorare, istante per istante (quindi on-line e real-time), le condizioni del traffico veicolare e da queste trarre importanti indicazioni sulla possibile evoluzione, nel breve futuro, del comportamento del sistema reale. Questo chiaramente permette di anticipare l’accadimento di fenomeni critici quali ingorghi o rallentamenti, eventualmente prevenirli, oppure, qualora non sia comunque possibile restare in una situazione di traffico scorrevole, attrezzarsi per affrontare nella maniera migliore la criticit`a. In generale, fin dall’inizio, gli studiosi hanno seguito due vie distinte nella creazione di modelli matematici: modelli microscopici e macroscopici. Negli ultimi anni, inoltre, si sta affermando una terza famiglia di modelli, detti mesoscopici, 31

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

Carlo Caligaris, Iacopo Salvarani

i quali si pongono come una via di mezzo tra i due sopra citati.

2.2.2

Modelli Microscopici

I modelli di simulazione del traffico basati sull’approccio microscopico permettono di determinare la posizione, la velocit`a e l’accelerazione dei singoli veicoli o di un gruppo di essi. La simulazione di tali sistemi viene fatta considerando il comportamento che ogni singolo veicolo viene a tenere in relazione ai veicoli con i quali condivide il tratto stradale. L’idea e` che, per ogni veicolo, la posizione a tempo t + ∆t dipende dalla posizione e dalla velocit`a che caratterizzavano quel veicolo al tempo t; la velocit`a al tempo t invece e` definita da una serie di grandezze relative al veicolo in questione ed a quello immediatamente davanti, quali la distanza, la velocit`a relativa, il tempo di reazione dell’autista, la presenza di altri veicoli nelle corsie adiacenti e quanto altro pu`o rendere pi`u simile il comportamento del modello a quello di un automobilista reale. I modelli di simulazione microscopici vengono applicati a reti di traffico urbano ed extraurbano e sono caratterizzati da due principali elementi di modellistica che stanno a rappresentare il comportamento reale dei veicoli: • car following; • lane change con gap acceptance. Car Following La dinamica di car following, detta anche follow the leader, si basa sul fatto che ogni veicolo deve mantenere una distanza di sicurezza dal veicolo che gli sta immediatamente davanti e la misura di tale distanza e` funzione della velocit`a relativa fra i due veicoli (come peraltro indicano e il Codice Stradale e il buon senso). In linea del tutto generale, i modelli microscopici assumono la forma riportata nella (2.1):

 v(t + ∆t) = f g(t), v(t), v˜ (t), ξ(t), p x(t + ∆t) = x(t) + v(t) · ∆t 32

(2.1)

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

dove g(t) = x˜ (t) − x(t) − s e` la distanza effettiva fra il veicolo ed il suo predecessore (con s lunghezza del veicolo). • v(t) e x(t) sono rispettivamente velocit`a e posizione al tempo t del veicolo in esame; • v˜ (t) e x˜ (t) rappresentano la velocit`a e la posizione del veicolo che precede quello in esame, ∆t e` il tempo di campionamento; • ξ(t) e` una componente di rumore che pu`o essere introdotta per modellizzare il fatto che ogni autista, essendo un individuo dotato di un suo modo di agire, si comporter`a in maniera non uguale a parit`a di condizioni; • p e` un vettore di eventuali parametri presenti nel modello.

Figura 2.2: Schematizzazione del modello car following I primi modelli microscopici sono attribuiti a Reuschel e Pipes ([38], [37]). Essi descrivono il fenomeno del moto di una coppia di veicoli uno seguente l’altro tramite l’espressione: xn − xn+1 = L + S˙xn+1

(2.2)

dove xn+1 e` la posizione del veicolo considerato e xn la posizione del veicolo che sta davanti. 33

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

Carlo Caligaris, Iacopo Salvarani

Figura 2.3: Il modello di Reuschel e Pipes In questa formula si suppone che ogni automobilista mantenga una distanza di sicurezza proporzionale alla velocit`a del proprio veicolo pi`u una distanza L relativa al caso in cui le auto sono ferme ed idealmente attaccate (˙xn+1 = x˙ n = 0) e che in pratica comprende la lunghezza dell’auto davanti. Passando alle derivate, dall’equazione (2.2) otteniamo: x¨ n+1 =

1 (˙xn − x˙ n+1 ) S

(2.3)

(proposta per la prima volta dall’americano Chandler in [7]) che dal punto di vista fisico significa che l’accelerazione o decelerazione di un veicolo e` proporzionale alla sua velocit`a relativa rispetto al veicolo che lo precede. Se definiamo fattore 1 di sensibilit`a λ = ed introduciamo un ritardo temporale τ di risposta alla solS lecitazione (nessun essere umano pu`o reagire in tempo nullo ad alcuno stimolo), otteniamo dalla (2.3): x¨ n+1 (t + τ) = λ[˙xn (t) − x˙ n+1 (t)]

(2.4)

che e` generalmente nota come l’equazione di base dei modelli car following. Si possono ottenere risultati pi`u accurati se il fattore di sensibilit`a λ viene espresso con la formula λ = λ0

x˙ n+1 (t + τ)m [xn (t) − xn+1 (t)]l 34

(2.5)

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

dove λ0 e` una costante e l e m sono esponenti interi. Vari modelli car following non lineari sono caratterizzati da coppie di valori specifici (l, m). Per esempio, il modello lineare (2.4) e` caratterizzato da (0, 0). Nel 1958 Chandler e altri ricercatori provarono la correttezza e consistenza del modello proposto da Reuschel e Pipes con i dati forniti dal General Motors Technical Center. Questi mostrarono, per via sperimentale, che per condizioni tipiche di traffico autostradale, τ era approssimativamente 1, 5 s e λ assumeva valore pari 0.37 s−1 . Quello presentato da Pipes sembra il modello migliore tra quelli presentati nella classe dei microscopici. E` stato mostrato come, con questo modello, sia possibile simulare il comportamento dei flussi veicolari in un transitorio. Lane Change e Gap Acceptance Come appare chiaro, nel voler modellare tratti stradali che rappresentino adeguatamente grosse arterie, sar`a sicuramente necessario considerare la possibilit`a di effettuare dei cambi di corsia e sorpassare veicoli che si muovono a velocit`a inferiore; lo stesso dicasi per quei casi in cui una tratta principale presenta, lungo il suo snodarsi, corsie di ingresso e di uscita che logicamente vengono impegnate dagli automobilisti con cambi di corsia e di velocit`a. Per rispondere a questa esigenza i modelli car following sono stati migliorati aggiungendo un’importante componente modellistica. Gipps e` stato il primo a presentare la formulazione di un modello che tenesse conto anche di cambi di corsia (lane change), in [17], non vincolando la possibilit`a di superare il veicolo che precede. Questo modello viene sviluppato ed implementato con MITSIM, che e` appunto un simulatore microscopico, dove i guidatori possono decidere, se sono rallentati dal veicolo che li precede, di operare un cambio di corsia. Il cambio di corsia viene effettuato tenendo in considerazione la corsia attuale, quella prescelta, l’eventualit`a di veicoli in arrivo gi`a presenti sulla corsia futura, la velocit`a e la distanza di tali veicoli e la propensione al rischio dell’autista che sta decidendo se effettuare o meno il cambio di corsia. In pratica, e` necessario definire una funzione di gap acceptance, con cui si 35

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

Carlo Caligaris, Iacopo Salvarani

riescono a descrivere le situazioni di sorpasso e tutti i tipi di intersezioni non regolate da semafori, ove siano identificabili una strada principale ed una secondaria. Il gap, definito come la distanza della macchina che arriva dalla strada principale rispetto al veicolo che si trova nella strada secondaria, varia a seconda dell’automobilista: dipende da quanto un guidatore e` disposto a rischiare piuttosto che rimanere fermo all’incrocio.

Figura 2.4: Manovra di Lane Change Pertanto, viene modellata una funzione di rischio che dipende dalla velocit`a dei veicoli che sopraggiungono, da quanto sono distanti e dal fattore di rischio che caratterizza il conducente. I campi di maggiore applicazione dei modelli di simulazione microscopici riguardano il test di tecniche adattative di controllo, di strategie real-time per le autovetture, di priorit`a tra gli autobus e comunque sono di maggiore interesse in ambito di applicazioni a traffico urbano. Questi simulatori sono inoltre utilizzati per prevedere le emissioni inquinanti agli incroci stradali provvisti di segnaletica semaforica e per testare l’efficienza dei sistemi di prevenzione per i rischi di incidenti nei flussi veicolari. Partendo dal car following ed integrandolo prima con il lane change e poi con il gap acceptance si riesce a descrivere esaustivamente anche il problema del traffico autostradale. Nelle figure 2.5, 2.6, 2.7, 2.8 possiamo osservare un simulatore a modello microscopico creato per studiare la risposta a determinate condizioni di flussi veicolari per alcuni tratti tipici comuni a tutte le autostrade (da [42]). Si pu`o notare l’interazione fra veicoli following e veicoli leader, la cui distanza di sicurezza e` 36

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

effettivamente proporzionata alla velocit`a di crociera, cos`ı come l’ingresso dalla corsia di accelerazione sull’arteria principale. E` significativo il verificarsi dei fenomeni tipici del traffico, quali code, stop and go, e propagazione di onde di velocit`a.

Figura 2.5: Simulatore Modello Microscopico [42]

Figura 2.6: Simulatore Modello Microscopico [42] 37

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

Carlo Caligaris, Iacopo Salvarani

Figura 2.7: Simulatore Modello Microscopico [42]

Figura 2.8: Simulatore Modello Microscopico [42] A fronte di una cos`ı elevata capacit`a di rappresentare la realt`a, i modelli microscopici richiedono una elevata mole di dati. Infatti, come e` possibile notare dalla (2.1), si suppone di conoscere in ogni istante la posizione e la velocit`a di ogni veicolo. Oltre alla indiscutibile difficolt`a computazionale -si hanno 2 × n (con n numero dei veicoli mediamente presenti nella simulazione) variabili di stato da aggiornare per ogni istante- e` spesso troppo difficile riuscire a trasporre in informazione matematica adattabile al modello la caratteristiche fisiche della tratta stradale e quelle psico-attitudinali degli automobilisti. E` impensabile gestire un modello di questo genere per un’applicazione realtime. Ecco il motivo per cui l’uso dei modelli microscopici e` limitato ai casi in 38

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

cui la rete stradale risulti relativamente semplice ed il numero di veicoli molto ristretto.

2.2.3

Modelli Macroscopici

I modelli macroscopici si basano su una relazione empirica determinata osservando un sistema di traffico in condizioni stazionarie. La maggior parte dei modelli matematici strutturati in maniera macroscopica partono dalla formulazione del modello di traffico microscopico, prima analizzato, prendendo in considerazione un flusso di veicoli tutti con la stessa rilevanza; in particolare, si prestano alla simulazione di corridoi di traffico veicolare ed arterie autostradali. Di conseguenza, non essendo modellabili accelerazioni e decelerazioni di velocit`a, e non essendo previste intersezioni nel flusso del traffico, questo tipo di modelli non si adatta ad una applicazione in ambito urbano. Fondamentalmente il modello macroscopico si e` sviluppato seguendo un’analogia tra lo stato stazionario di comportamento del traffico e la legge di conservazione propria della teoria della fluidodinamica. Infatti, il traffico pu`o essere modellizzato come un fluido omogeneo, senza porre alcuna distinzione tra le classi di veicoli. A differenza delle molecole dei fluidi reali i singoli veicoli saranno interessati da una particolare caratteristica origine-destinazione diversa per ognuno di questi; questa e` un’informazione che sar`a persa. Nei modelli macroscopici, infatti, non si presta attenzione nel modellare il comportamento del singolo veicolo con posizione e velocit`a; si pensa invece di descrivere l’intero sistema considerando file di veicoli come flussi di un fluido incomprimibile e, di conseguenza, la posizione e la velocit`a del singolo veicolo vengono espresse in relazione a quella degli altri veicoli. Pertanto, un modello macroscopico del flusso veicolare implica la definizione di adeguate variabili di sistema che esprimano il comportamento mediamente tenuto in un preciso punto della tratta stradale ad un istante di tempo. Definizione 2.1 39

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

Carlo Caligaris, Iacopo Salvarani

Definiamo la densit`a del traffico ρ(x, t)

[veicoli/km]

come il numero di veicoli presenti mediamente per unit`a di lunghezza. Si misura in veicoli per chilometro. Definizione 2.2 Definiamo la velocit`a media dei veicoli v(x, t)

[km/h]

Si misura in chilometri orari. Definizione 2.3 Definiamo il flusso del traffico q(x, t)

[veicoli/h]

come il numero di veicoli passanti da una specifica sezione della tratta stradale nell’unit`a di tempo. Si misura in veicoli per ora. Per un flusso di traffico omogeneo, si pu`o mostrare, sulla base di considerazioni microscopiche, che le tre grandezze che abbiamo pocanzi definito sono legate fra loro dalla relazione q=ρ·v

(2.6)

analoga alla relazione presente in fluidodinamica. Inoltre, l’equazione (2.6) descrive approssimativamente il flusso di traffico anche in condizioni in cui l’omogeneit`a non e` verificata, e pertanto e` un’equazione presente nella maggior parte dei sistemi macroscopici. Vi e` un’altra relazione che lega le variabili di stato definite, ma, a differenza della precedente, non ha una analogia con la fluidodinamica, essendo propria dei flussi di traffico. La velocit`a media del traffico decresce monotonamente al crescere della densit`a dei veicoli, come e` stato anche dimostrato da parecchi rilevamenti di misure di velocit`a-densit`a. 40

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Nel 1935 Greenshields ([19]) ipotizz`o l’esistenza di una relazione lineare tra velocit`a e densit`a del tipo v(x, t) = vf 1 −

ρ(x, t)  ρmax

(2.7)

dove vf e` la velocit`a a corsia completamente libera (ovvero per densit`a di veicoli nulla o molto prossima a zero) e ρmax e` la densit`a di congestionamento, ossia il valore di densit`a dei veicoli che causa un calo della velocit`a tale da farla andare a zero e bloccare il movimento dei veicoli, come si pu`o vedere in Figura 2.9.

Figura 2.9: Relazione Lineare Velocit`a-Densit`a E` molto interessante constatare che la relazione macroscopica (2.7) e` la diretta conseguenza del modello microscopico lineare (2.4) per (l = 2, m = 0). Assumiamo di trovarci in condizioni di omogeneit`a e di regime stazionario (τ = 0) ed introduciamo la distanza media fra i veicoli s. s , xn − xn+1 Si ha che: s=

1 ρ

e che: L ,

1 ρmax

41

.

(2.8)

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

Carlo Caligaris, Iacopo Salvarani

L’integrazione dell’equazione (2.4) rende:

v=−

λ0 + b = −λ0 ρ + b s

(2.9)

dove b e` una costante di integrazione. Se assumiamo che, per ρ = ρmax , la velocit`a media precipiti a zero, otteniamo:

b = λ0 ρmax .

Ponendo vf = λ0 /ρmax , l’equazione (2.9) diviene identica alla (2.7). Per differenti valori di (l, m) otteniamo diverse formule per la curva caratteristica velocit`adensit`a a regime stazionario. Chiaramente, una volta che si stabilisce di utilizzare un modello macroscopico, il miglior approccio sarebbe quello di determinare la curva caratteristica empiricamente con un set di misurazioni. Una volta che la curva caratteristica velocit`a-densit`a e` determinata, possiamo usare l’equazione (2.6) per determinare la curva flusso-densit`a. Per esempio nel caso della formulazione lineare (2.7) otteniamo:  ρ(x, t)  q(x, t) = ρ(x, t) · v(x, t) = vf · ρ(x, t) 1 − ρmax

(2.10)

il cui grafico e` mostrato in Figura 2.10. E` facile notare come il flusso veicolare sia crescente con la densit`a fino a qmax che e` raggiunto per un valore critico di densit`a ρcr . Un’ulteriore crescita del valore della densit`a dei veicoli comporta un calo del flusso di traffico fino al raggiungimento di ρmax , che causa il congestionamento dell’arteria e, pertanto, il flusso veicolare nullo. Questo fenomeno, chiamato capacity drop, e` comune a tutti i sistemi di veicolazione del traffico, ed e` dovuto alle considerazioni sulla distanza di sicurezza fra i veicoli dipendente dalla velocit`a dei veicoli stessi. 42

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Figura 2.10: Curva Caratteristica a Regime Stazionario Flusso-Densit`a

In questo caso, trovare ρcr e` molto semplice: nota la funzione q(ρ) (2.10) basta porre q 0 (ρ) = 0, da cui: q 0 (ρ) = vf (1 −

2ρ ) = 0. ρmax

ρmax . 2 Tale propriet`a risulta dal fatto che la regolazione della distanza di sicurezza e`

In questo caso, si ha: ρcr =

effettuata dagli autisti delle vetture. Misurazioni sperimentali estensive mostrano che autisti umani agenti come regolatori di distanza di sicurezza conducono a un flusso veicolare instabile quando la densit`a supera il valore critico (ρ > ρcr ). Per instabile si intende che, il flusso di traffico diventa, rapidamente ed, apparentemente, senza un’ovvia ragione, sempre pi`u congestionato, fino a quando vengono raggiunti i valori di densit`a prossimi a quello di congestionamento ρmax . La zona intermedia e` quella interessata dal fenomeno di stop and go. Infatti, in termini microscopici, l’instabilit`a e` dovuta ad un aumento dell’ampiezza della perturbazione che viene propagata all’indietro (fenomeno delle shock waves o back waves) lungo una fila di vetture, portando infine all’arresto delle vetture pi`u arretrate. [31] 43

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

2.2.4

Carlo Caligaris, Iacopo Salvarani

Modelli Mesoscopici

Questa classe di modelli di simulazione sta guadagnando popolarit`a e si pone a met`a tra i modelli precedentemente illustrati, unendo l’approccio aggregato dei modelli macroscopici con quello particolare e riferito al singolo elemento dei modelli microscopici. Tipicamente, i modelli microscopici descrivono le singole entit`a ad un elevato livello di dettaglio, ma il loro comportamento e le loro interazioni sono gestite ad un livello pi`u generale. Questi modelli possono assumere varie forme. Ad esempio, e` possibile raggruppare i veicoli in piccoli insiemi in moto lungo la rete ([25]). Questi insiemi agiscono come se fossero un elemento unico e la loro velocit`a lungo un percorso e` ottenuta da una funzione velocit`a-densit`a definita per ciascun tratto stradale. I cambiamenti di corsia e le accelerazioni o decelerazione dei veicoli non sono modellate. Una caratteristica importante del modello mesoscopico e` che la velocit`a dei veicoli non e` determinata dalle decisioni del singolo guidatore, ma dal comportamento di gruppi di veicoli ([1]). In altri modelli ([21]), ([16]), ([27]) si utilizza un sistema a coda dove la strada e` vista come un insieme di zone di coda e di zone in movimento. Le corsie possono essere descritte individualmente, sebbene generalmente non lo siano. In questi casi, i veicoli sono rappresentati individualmente e ciascuno e` caratterizzato dalla propria velocit`a; tuttavia, il comportamento non e` modellato nel dettaglio. La parte in movimento viene percorsa con una velocit`a ricavata utilizzando una relazione velocit`a-densit`a di tipo macroscopico mentre la parte in coda e` gestita con un sistema coda-server. Questo ultimo approccio combina i vantaggi dei modelli dinamici con flussi di traffico disaggregati (i veicoli sono modellati singolarmente) con la facilit`a di utilizzo delle relazioni macroscopiche velocit`a-densit`a. Incroci controllati da segnali come i semafori possono essere modellati rimpiazzando il server con un un gate che apra e chiuda in accordo con gli stati del segnale. Un altro tipo di modello mesoscopico utilizza una visione cellulare della stra44

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

da, che e` discretizzata in celle unitarie che possono essere vuote o riempite da un veicolo. Il veicolo in esame segue un insieme di regole di comportamento piuttosto semplici ([29]) che determinano, ad ogni istante di tempo, il numero di celle attraversate dal veicolo ([2]). Le principali aree di applicazione dei modelli mesoscopici sono quelle in cui il dettaglio della simulazione microscopica, sebbene potrebbe risultare utile, non e` applicabile a causa delle grandi dimensioni della rete o della mancanza di alcune risorse che sono necessarie per implementare uno strumento simulativo basato su tale principio. [5]

2.2.5

Trattazione Analitica

Ora che abbiamo individuato le caratteristiche dei modelli macroscopici descriviamo il problema del traffico in maniera analitica, per cogliere a pieno il passaggio della trattazione dalle singole vetture ad una descrizione globale del comportamento. Ipotizziamo un tratto autostradale rettilineo monocorsia senza stazioni di entrata ed uscita. Il tratto in questione pu`o essere suddiviso in ipotetiche sezioni.

Figura 2.11: Divisione in sezioni di un ipotetico tratto stradale q(t1 , t2 , x) rappresenta il valore medio del flusso veicolare nella sezione stradale x e nell’intervallo di tempo [t1 , t2 ] e vale: q(t1 , t2 , x) =

n(t1 , t2 , x) t2 − t1

in cui n(t1 , t2 , x) indica il numero di veicoli che transitano nella sezione stradale x e nell’intervallo di tempo [t1 , t2 ]. 45

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

Carlo Caligaris, Iacopo Salvarani

Abbiamo gi`a introdotto i concetti di flusso, densit`a e velocit`a media. Li riproponiamo in questo contesto utilizzando una definizione un poco pi`u precisa. q(x, t) e` il flusso istantaneo nella sezione stradale x; pu`o essere misurato tramite particolari sistemi di monitoraggio posti sulla sezione stradale, ed e` definito come:  q(x, t) = lim q t − ∆t, t + ∆t, x . ∆t→0

ρ(x1 , x2 , t) e` invece la densit`a media di veicoli fra la tratta x1 e la tratta x2 al tempo t. Pu`o essere misurata tramite osservazione diretta ed e` definita come: ρ(x1 , x2 , t) =

n(x1 , x2 , t) x2 − x1

dove, in questo caso, n(x1 , x2 , t) indica il numero di veicoli presenti fra la sezione x1 e la sezione x2 al tempo t. Come fatto in precedenza, e` possibile ottenere un’espressione della densit`a locale nella sezione generica x al tempo t  ρ(x, t) = lim ρ x − ∆x, x + ∆x, t . ∆x→0

E` importante ora determinare il legame tra le variabili fino ad ora introdotte; ci viene quindi in aiuto la relazione fondamentale che si basa sull’equazione di conservazione della massa, con la quale si impone che le variazioni nell’intervallo (t1 , t2 ) del numero di veicoli tra la sezione x1 e la sezione x2 deve essere uguale alla differenza tra il numero di veicoli in ingresso alla sezione x1 e quelli in uscita dalla x2 , considerando lo stesso intervallo temporale. Il legame cercato e` definito dalla seguente espressione: Z x2 Z t2     ρ(t2 , x) − ρ(t1 , x) dx = q(x1 , t) − q(x2 , t) dt. x1

(2.11)

t1

Molti studiosi e ricercatori nel settore dei modelli di traffico hanno fornito un’equazione che potesse rappresentare nella maniera pi`u adeguata possibile le dinamiche di relazione fra la densit`a dei veicoli e la loro velocit`a media. In Tabella 2.1 sono riportati i vari risultati che la letteratura offre. E` possibile definire la dipendenza di v da ρ in diversi, ragionevoli e pi`u o meno efficaci modi. 46

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Come si vede dalla tabella 2.1 in ognuna delle forme proposte la velocit`a decresce in maniera monotona al crescere di ρ. Un esame pi`u attento conduce ben presto a concludere che, quella introdotta da Papageorgiou in [33] e` senz’altro pi`u flessibile e meglio adattabile a diverse situazioni. Infatti, la forma di Greenshields si ottiene per l = m = 1; quella di Drew per l = 1 e m = λ. Per le altre tre, dopo qualche considerazione elementare, possiamo accorgerci che, fondamentalmente, si riconducono alle prime due. Infatti, poich`e ρmax log = = − log ρ



ρ ρmax

   −1 +1 = = 1−

ρ ρmax



 + ρω(ρ) (2.12)

la forma di Greenberg e` del tipo della forma di Greenshields per valori piccoli di ρ mentre, se teniamo conto che, ρmax ρ

ρ

e− ρmax = 1 −

ρmax

+ ρω(ρ)

(2.13)

vediamo che lo stesso si pu`o dire della formula di Underwood. La formula di May, infine, e` un p`o pi`u flessibile, ma comunque si riduce a: α  ρ α( ρ ρ ) e max = 1 − + ρω(ρ) (2.14) ρmax e quindi e` molto simile a quella di Drew.

47

2.2. INTRODUZIONE AI MODELLI DI TRAFFICO

Carlo Caligaris, Iacopo Salvarani

 Greenshields (1935)

v = vf 1 −



ρ ρmax

[19]

 Greenberg (1959)

v = vf ln



ρ ρmax

[18]

Underwood (1961)

“ −ρ

v = vf e

ρ max



[43]

 Drew (1968)

v = vf 1 −



ρ ρmax

[14]

May (1988)

“ α −ρ

v = vf e

ρ max



[28]

" Papageorgiou (1995)

v = vf

1−

ρ

l # m

ρmax

[33]

Tabella 2.1: L’evoluzione della relazione tra velocit`a e densit`a

[6]

48

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

2.3

CAPITOLO 2. STRUMENTI MATEMATICI

Il Modello Macroscopico di Traffico Autostradale

Vogliamo qui descrivere brevemente le basi del modello macroscopico di traffico autostradale e delle approssimazioni alle differenze finite che sono a loro volta ispiratrici del modello discreto di Papageorgiou che abbiamo deciso di implementare. La teoria poggia sulle semplici considerazioni che servono per giustificare l’equazione di continuit`a dei fluidi. Cominciamo con il vedere come si pu`o giustificare tale equazione. Consideriamo una massa fluida che si muove lungo l’asse x nel tempo t. In analogia con la Sezione precedente, assumiamo: • x la coordinata relativa all’asse su cui avviene il movimento; • t la variabile di tempo; • ρ(x, t) la densit`a della sostanza che intendiamo studiare; • q(x, t) il flusso attraverso x al tempo t. Ricordiamo anche le dimensioni di ρ, che sono: unit`a di massa , unit`a di lunghezza e quindi la massa compresa tra x e x + ∆x pu`o essere calcolata mediante la: Z x+∆x m(t, x, x + ∆x) =

ρ(t, s)ds. x

Il flusso q(x, t) attraverso la sezione in x al tempo t e` la quantit`a di massa che transita per il punto x nell’istante t. Le dimensioni di q sono: unit`a di massa . unit`a di tempo 49

2.3. IL MODELLO MACROSCOPICO DI TRAFFICO AUTOSTRADALE

Carlo Caligaris, Iacopo Salvarani

Consideriamo un intervallo di lunghezza I = [x, x + ∆x] ed un intervallo di tempo T = [t, t + ∆t]. Sia µ(t, x) la massa che e` fluita attraverso il punto x fino all’istante t; il flusso istantaneo puo’ essere definito mediante la: ∂µ µ(t, x) − µ(t + ∆t, x) = − (t, x), ∆t→0 ∆t ∂t

q(t, x) = lim per cui:

q(t, x) − q(t, x + ∆x) 1 ∂ =− (µ(t, x) − µ(t, x + ∆x)) = ∆x ∆x ∂t Z 1 ∂ x+∆x ρ(t, s)ds. (2.15) = ∆x ∂t x Scambiando derivata ed integrale si ha: q(t, x) − q(t, x + ∆x) 1 = ∆x ∆x

Z x+∆x  x

 ∂ ρ(t, s) ds. ∂t

Passando al limite per ∆x → 0 si ottiene l’equazione 2.16. ∂ρ(x, t) ∂q(x, t) =− . ∂t ∂x

(2.16)

Possiamo anche tenere conto di apporto o sottrazione di massa mediante un termine k(x, t) a secondo membro: ∂ρ(x, t) ∂q(x, t) =− + k(x, t). ∂t ∂x

(2.17)

Tuttavia, fino a questo punto, l’equazione 2.17 contiene troppe incognite (ρ e q) e quindi occorre introdurre qualche ulteriore condizione. A tale scopo occorre ipotizzare una dipendenza tra ρ e q. Ad esempio possiamo supporre che: q = q(ρ), cos`ı che:

∂q = ∂x



dq dρ



50

∂ρ ∂x

 .

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

L’equazione 2.17 diventa allora:    ∂q(ρ(x, t)) ∂ρ(x, t) ∂ρ(x, t) =− + k(x, t). ∂t ∂ρ ∂x

(2.18)

Per definire la dipendenza q(ρ) possiamo supporre, che: q(ρ) = v(x, t)ρ. Consideriamo quindi l’ipotesi di advezione; v(x, t) ha dimensione: unit`a di lunghezza unit`a di tempo cio`e ha le dimensioni di una velocit`a che rappresenta la velocit`a con cui la materia si muove lungo l’asse x; infatti: v=

q unit`a di massa unit`a di lunghezza = . ρ unit`a di tempo unit`a di massa

Il caso pi`u semplice si incontra quando v(x, t) = c. L’equazione, quindi, prende la forma: ∂(ρ(x, t)v(x, t)) ∂ρ(x, t)) =− + k(x, t). ∂t ∂x

2.3.1

(2.19)

Un esempio di trasporto nel caso della velocit`a costante

Consideriamo il caso in cui la velocit`a con cui avviene il moto del fluido sia costante. Si tratta di un caso particolarmente semplice ma permette di mettere in luce alcune interessanti caratteristiche del fenomeno di trasporto Supporremo anche che ci sia una diminuzione della densit`a proporzionale alla densit`a stessa. Fisicamente possiamo trovare un significato pratico a questa equazione considerando l’evoluzione di un inquinante organico in un fiume che scorre a velocit`a c ed e` metabolizzato proporzionalmente alla densit`a stessa. L’equazione quindi e` : ∂ ∂ ρ(x, t) = −c ρ(x, t) − µρ(x, t). ∂t ∂x 51

(2.20)

2.3. IL MODELLO MACROSCOPICO DI TRAFFICO AUTOSTRADALE

Carlo Caligaris, Iacopo Salvarani

Riscriviamo la 2.20 nella forma: ∂ ∂ ρ(x, t) + c ρ(x, t) = −µρ(x, t). ∂t ∂x Il primo membro e` la derivata rispetto a t della funzione R(x, t) = ρ(x + ct, t) e quindi d d R(x, t) = ρ(x + ct, t) = dt dt ∂ ∂ = ρ(x + ct, t) + c ρ(x + ct, t) = ∂t ∂x = −µρ(x + ct, t) = −µR(x, t). Integrando rispetto a t l’equazione differenziale lineare che ne risulta si ottiene: ρ(x + ct, t) = h(x)e−µt . Imponendo le condizioni iniziali ρ(x, 0) = ρ0 (x) (`e nota la densit`a iniziale in ogni luogo del fiume) si ha: ρ0 (x) = ρ(x, 0) = h(x), da cui: ρ(x + ct, t) = ρ0 (x)e−µt e: ρ(x, t) = ρ0 (x − ct)e−µt . Consideriamo ora la situazione in cui si verifichi, in una locazione x = 0, che possiamo supporre coincidente con l’origine, una immissione di inquinante con flusso costante γ. Allo scopo, posto:

 0 γ(t) = γ

t ct, l’inquinante ha densit`a ρ nulla. (L’inquinante, in quel c momento non ha ancora raggiunto quel punto del fiume).

2.4

Modelli Differenziali di Traffico Autostradale

Veniamo ora a considerare il caso del traffico lungo un’autostrada utilizzando un modello di trasporto in cui il flusso dipende dalla densit`a delle auto. Denotiamo con x la variabile di spazio che identifica un punto sulla retta che descrive l’autostrada e con t, come al solito, il tempo; ρ(x, t) e` la densit`a delle auto mentre indichiamo ancora con q(x, t) il flusso. L’equazione che usiamo e` di tipo advettivo, di trasporto e, per semplificare la trattazione, che ha lo scopo di mettere in evidenza le caratteristiche elementari del modello, non prevediamo che nel tratto in esame esistano ingressi od uscite. Occorre anche ipotizzare il comportamento del flusso q rispetto alla densit`a ρ delle auto. A tale scopo possiamo fare riferimento alla pi`u semplice, dal punto di vista algebrico, delle dipendenze che nell’arco dell’evoluzione del modello macroscopico sono state proposte da vari autori: quello di Greenshields del 1935 ([19]). Se ρm e` la massima densit`a possibile, supponiamo che: 53

2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE

Carlo Caligaris, Iacopo Salvarani

1. la velocit`a delle auto sia compresa tra 0 e vm , quest’ultimo valore essendo conseguenza dei limiti di velocit`a o delle condizioni stradali; 2. la velocit`a delle auto dipenda dalla densit`a mediante la:   ρ . v(ρ) = vm 1 − ρm

(2.21)

Dalla 2.21 si ricava: • se ρ = 0 allora v = vm ; • se ρ = ρm allora v = 0. Tenuto conto che:  q(ρ) = v(ρ)ρ = vm

ρ2 ρ− ρm

 ,

da cui:   d 2ρ q(ρ) = vm 1 − q (ρ) = , dρ ρm 0

l’equazione che regola lo scorrere del traffico autostradale potr`a essere scritta nella forma:   ∂ρ(x, t) 2ρ(x, t) ∂ρ(x, t) = −vm 1 − ∂t ρm ∂x

(2.22)

o, pi`u brevemente,  ρt = −vm

2ρ 1− ρm



ρx = −q0 (ρ)ρx .

(2.23)

Possiamo studiare la soluzione dell’equazione individuandone le curve di livello; possiamo cercare cio`e di trovare le curve descritte dalle equazioni (x(t), t) sulle quali risulta: ρ(x(t), t) = costante = ρ0 . Se: ρ(x(t), t) = costante = ρ0 54

(2.24)

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

avremo che: q0 (ρ) = q0 (ρ0 ) = q00 e` esso pure costante. Pertanto, possiamo riscrivere la 2.23 come segue: ρt = −q00 ρx .

(2.25)

D’altro canto, derivando la 2.24, si ha: ρt + x˙ (t)ρx = 0.

(2.26)

Da 2.26 e 2.25 possiamo dedurre che: x˙ (t) = q0o da cui, ricordiamo che: q00 = q0 (ρ0 ) x(t) = q00 t + x0 . Le curve di livello (x(t), t) della soluzione ρ(x, t) sono rette di equazione x = q00 t + x0 . Se ρ(x, 0) = ρ0 (x) si ha: ρ(q00 t + x0 , t) = ρ(x0 , 0) = ρ0 (x0 )

(2.27)

E se supponiamo nota la densit`a iniziale ρ0 (x): ρ(x, t) = ρ(x − q0 (ρ0 )t) = ρ0 (x − q00 t). Esaminiamo ora due casi molto interessanti che possono offrire spunti per ulteriori studi.

2.4.1

Ripartenza dopo un blocco

Supponiamo che le auto siano incolonnate ad un semaforo prima del quale la densit`a e` massima e dopo il quale la densit`a e` nulla. 55

2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE

Carlo Caligaris, Iacopo Salvarani

Sia t = 0 l’istante in cui il semaforo diventa verde. Il flusso di traffico successivo pu`o essere descritto dall’equazione 2.22 con la condizione iniziale:  ρm ρ(x, 0) = ρ0 (x) = 0

x 0.

In corrispondenza di tali dati iniziali avremo che:  vm x > 0 (ρ0 = 0) 0 0 0 q0 = q0 (ρ(x, 0)) = q0 (ρ0 (x)) = = . −v x < 0 (ρ = ρ ) m 0 m La densit`a risulta costante su rette che si chiamano linee caratteristiche dell’equazione e sono date da:  vm t + x0 x= −v t + x m

x0 > 0 0

.

x0 < 0

Su ognuna di tali rette la densit`a e` ρ0 ed il flusso corrispondente e` : q00 = q0 (ρ(x, 0)) = q0 (ρ0 ). Tali rette coprono solo una parte del semipiano t > 0, ma non forniscono alcun dato su quanto accade nella zona del semipiano che e` compresa tra le rette x = ±vm t. La zona non coperta corrisponde al caso x0 = 0 e non e` ragionevole fissare il valore della densit`a per x0 = 0; infatti: • a destra di zero la densit`a e` nulla; • a sinistra e` massima; e quindi la densit`a presenta in zero una discontinuit`a di tipo “salto”. In tale zona ci interessa definire una soluzione ρ(x, t) in grado di raccordare il valore ρm con il valore 0. 56

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Figura 2.12: Le linee caratteristiche Per x0 = 0 le curve di livello della densit`a ρ sono: x = q0 (ρ(0, 0))t = q0 (ρ0 (0))t

(2.29)

ma la densit`a iniziale ρ0 (0) non e` definita, possiamo soltanto affermare che: ρ0 (0) ∈ [0, ρm ]. Quindi: 

0

q (ρ0 (0)) = vm

2ρ0 (0) 1− ρm

 ∈ [−vm , vm ].

Pertanto, per x0 = 0 possiamo considerare non una, ma infinite rette sulle quali ρ e` costante. Se in t = 0 assumiamo un valore della densit`a ρ, tale valore si manterr`a costante sulla retta 

0

x = q (ρ)t = vm

2ρ 1− ρm

 t.

Ricavando ρ si ottiene:   1 x ρ = ρm 1 − . 2 vm t Osserviamo che per t = 0 la 2.30 non e` definita. 57

(2.30)

2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE

Carlo Caligaris, Iacopo Salvarani

Figura 2.13: Grafico e livelli della 2.30 La 2.30 soddisfa l’equazione 2.22; infatti si ha: ρt =

x 2vm t2

,

ρx =

−1 . 2vm t

Per cui, trascurando la costante 12 ρm :    x 2ρ −1 + vm 1 − = vm t2 ρm vm t 1 2ρ x − + = = vm t2 t ρm t 

=

x

1 ρm 1 − vm t x − + vm t2 t ρm t

 = 0.

La soluzione cos`ı definita ha linee di livello che sono rette per l’origine, esse corrispondono ai diversi valori di densit`a che possono essere assunti nell’origine. Tali valori vanno da: • ρm , in corrispondenza del quale x = −vm t • a 0 caso in cui x = vm t. Infatti:   x 1 ρ = ρm 1 − =k 2 vm t

⇐⇒ x = vm 58



2k 1− ρm

 .

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Le rette (al variare di k ∈ [0, ρm ] hanno pendenza crescente da −vm a vm e coprono la zona lasciata scoperta dalle precedenti considerazioni. Sono le curve caratteristiche che passano per l’origine. I punti della retta x = −vm t caratterizzano i tempi ed i luoghi in cui inizia il movimento di un’auto in coda al semaforo. Al tempo t iniziano a muoversi le auto che per t = 0 si trovano alla posizione x = −vm t mentre al tempo t l’auto che si trova in x = 0 per t = 0 avr`a raggiunto la posizione x = vm t. La velocit`a con cui le auto si muovono nella zona in esame, sar`a:   ρ v = vm 1 − ρm

(2.31)

e quindi dalla soluzione 2.30 trovata per ρ,    1 x v = vm 1 − 1− 2 vm t per cui:  v = vm

x 1 + 2 2vm t



e v=

vm x + . 2 2t

Se x(t) e` la posizione di un’auto avremo che x˙ (t) = v. Si ottiene: x˙ (t) =

vm x + . 2 2t

Si e` in questo modo trovata una equazione differenziale che definisce il movimento dell’auto alla partenza dopo il verde. Una condizione iniziale pu`o essere dedotta tenendo conto che l’auto comincia a muoversi da x0 al tempo t0 = −x0 /vm ; Ne viene:

 x˙ (t) = x(t) + vm 2t 2 x(− x0 ) = x . 0

vm

59

2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE

Carlo Caligaris, Iacopo Salvarani

L’integrale generale dell’equazione e` : √ x(t) = C1 t + vm t; e imponendo che: x0 x0 = x(− ) = C1 vm

  r x0 x0 + vm − − vm vm

si ricava: √ C1 = −2 −x0 vm per cui la cui soluzione del problema di Cauchy e`  √ √ √ √ √ √ √ x(t) = −2 −x0 vm t + vm t t vm vm t − 2 −x0 . Si calcola che l’auto raggiunger`a il semaforo al tempo t˜ tale che x(t˜ ) = 0; si ricava: x0 t˜ = −4 . vm La figura seguente mostra come si muove un’auto in coda al semaforo dopo che il semaforo e` diventato verde.

Figura 2.14: Traiettoria di un’auto inizialmente in attesa al semaforo

60

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

2.4.2

CAPITOLO 2. STRUMENTI MATEMATICI

La formazione di code

Una situazione opposta si verifica quando la densit`a di traffico aumenta. In tal caso il metodo delle caratteristiche presenta inconvenienti e si rendono necessari degli aggiustamenti. La densit`a iniziale sia data da: ρ(x, 0) = ρ0 (x) =

  ρm

x 0.

4

(2.32)

Avremo che: q00

=

q00 (ρ(x, 0))

=

q00 (ρ0 (x))

= =

  vm

x < 0 (ρ0 =

−v m

x > 0 (ρ0 = ρm ).

2

ρm ) 4

Le curve caratteristiche su cui risulta costante la densit`a dell’equazione, saranno date da: x=

  vm t + x0

x0 < 0

−v t + x m 0

x0 > 0

2

come si vede nella figura seguente.

Figura 2.15: 61

2.4. MODELLI DIFFERENZIALI DI TRAFFICO AUTOSTRADALE

Carlo Caligaris, Iacopo Salvarani

E` evidente che la situazione non e` affatto chiara: esiste una zona del piano in cui le caratteristiche si sovrappongono. Ci`o causa la mancanza di unicit`a della soluzione, o meglio la sua indeterminatezza. Questo e` dovuto alla discontinuit`a del dato iniziale Dobbiamo pertanto operare una scelta tra le due soluzioni. Poich`e la densit`a e` discontinua la 2.16 pu`o causare problemi. Ad esempio pu`o non essere lecito lo scambio tra derivata ed integrale in 2.15. La 2.15 afferma:

q(t, x) − q(t, x + ∆x) = d = dt

Z x+∆x ρ(t, s)ds. x

Se σ(t) ∈ [x, x + ∆x] e` un punto in cui si verifica la discontinuit`a la 2.15 applicata agli intervalli [x, σ+ (t)] e [σ− (t), x + ∆x] assicura

d dt

Z σ(t) x

d ρ(s, t)ds + dt

Z x+∆x ρ(s, t)ds = σ(t)

= q(σ− (t), t) − q(x + ∆x, t) − q(σ+ (t), t) + q(x, t). σ(t)

x

σ−

σ+

x + ∆x

62

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

D’altro canto, per le solite regole di derivazione, si ha: Z Z d x+∆x d σ(t) ρ(s, t)ds + ρ(s, t)ds = dt x dt σ(t) Z σ(t) ∂ρ(s, t) − + ˙ ˙ = σ(t)ρ(σ (t), t) + ds − σ(t)ρ(σ (t), t)+ ∂t x Z x+∆x ∂ρ(s, t) ds. + ∂t σ(t) Quindi, se x → σ(t)− e x + ∆x → σ(t)+ otteniamo: − + ˙ ˙ σ(t)ρ(σ (t), t) − σ(t)ρ(σ (t), t) = − q(σ+ (t), t) + q(σ− (t), t).

Pi`u brevemente: ˙ ˙ σ(t)ρ − − σ(t)ρ + = −q+ + q− ovvero ˙ σ(t) =

q+ − q− ρ+ v+ − ρ− v− = . ρ+ − ρ− ρ+ − ρ−

Nel nostro caso, si verifica subito che: ρ+ = ρm v+ = 0 Per cui: ˙ σ(t) =−

vm 4

, ,

ρm , 4 3vm . v− = 4 ρ− =

e σ(t) = −

63

vm t. 4

(2.33)

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

La 2.33 rappresenta l’equazione della curva lungo la quale si passa da velocit`a 3vm a velocit`a v+ = 0 ed ivi si riscontra una brusca interruzione del traffico; v− = 4 quindi σ(t) individua il punto in cui in traffico subisce uno shock e ne descrive l’andamento nel tempo; solitamente σ(t) viene indicata come “shock wave” (onda d’urto).

2.5 2.5.1

Metodi di calcolo numerici alle Differenze Finite Generalit`a Sulle Equazioni Iperboliche

Per poter offrire una pi`u comprensibile trattazione del metodo di calcolo alle differenze finite, partiamo illustrando come esse vengono applicate ai diversi tipi di equazioni differenziali. L’esempio di base di equazione differenziale di tipo iperbolico e` dato dall’equazione del trasporto lineare: ut + aux = 0

(2.34)

dove a e` una costante, t rappresenta la variabile temporale e x e` la variabile spaziale. Data la funzione u = u(x, t) ad un istante iniziale t = 0, imponendo la condizione: u(x, 0) = u0 (x)

(2.35)

per una certa funzione data u0 , vogliamo determinare il valore di u per tempi successivi (∀ t ≥ 0). Questo e` un problema ai valori iniziali o di Cauchy. Risolvere questa equazione significa pertanto risolvere in maniera analitica il problema del traffico, ovvero stimare quale sar`a il flusso veicolare lungo la variabile spaziale negli istanti successivi a t = 0, avendo come dato iniziale il flusso lungo la variabile spaziale a t = 0. Purtroppo, come vedremo in seguito, questo tipo di trattazione e` effettuabile soltanto in casi molto semplici e specifici e non sulle tratte autostradali, le quali presentano forti caratteristiche di discontinuit`a o elementi che danno vita ad equazioni di difficile risoluzione. 64

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

L’unica soluzione di questo problema e` data da: u(x, t) = u0 (x − at).

(2.36)

Dalla formula (2.36) possiamo dedurre alcune importanti indicazioni. Innanzitutto, la soluzione non e` altro che la traslazione (verso destra se a > 0 o verso sinistra se a < 0) del dato iniziale, con “velocit`a dell’ond`a’ pari ad a. Inoltre, lungo le rette ξ = x − at, la soluzione e` costante e vale u0 (ξ). Queste rette sono le linee caratteristiche dell’equazione. Possiamo ritrovare la soluzione utilizzando questo concetto di caratteristica. Si effettui il cambio di variabili da (x, t) a (ξ, τ) definito da: ξ = x − at τ = t. La sua inversa e` data da: x = ξ + aτ t = τ. ˜ Possiamo allora definire una nuova funzione u(ξ, τ) = u(x, t). Nelle nuove coordinate, l’equazione (2.34) diventa: u˜ τ =

∂t ∂x ut + ux = 0. ∂τ ∂τ

Questa e` una semplice equazione differenziale in τ che ha come unica soluzione: ˜ u(ξ, τ) = u0 (ξ) da cui si pu`o ottenere anche la (2.36). Analogamente e` possibile dimostrare che la soluzione dell’equazione ut + aux + bu = f(x, t) con la condizione iniziale (2.35) e` data dalla funzione: Zt −bt u(x, t) = u0 (x − at)e + e−b(t−s) f(x − a(t − s), s)ds. 0

65

(2.37)

(2.38)

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Anche in questo caso si vede come la soluzione sia influenzata solo dai valori dei dati u0 ed f lungo la retta caratteristica ξ = x − a(t − s). Si osservi che, nonostante l’equazione richieda la differenziabilit`a della soluzione u, le (2.36) e (2.38) hanno senso per dati iniziali molto generali. Questo permette di trattare soluzioni generalizzate eventualmente discontinue. Questi metodi si possono estendere facilmente, bench´e in quel caso non ci sia pi`u necessariamente una soluzione esplicita, alle equazioni semilineari. ut + aux = f(x, t, u)

(2.39)

Come vedremo in seguito, porre a costante e` un caso particolare che mal si adatterebbe a trattare dal punto di vista matematico il fenomeno che andremo a studiare. Un’ulteriore estensione della teoria e` data da equazioni e sistemi a coefficienti variabili, eventualmente con termine di sorgente dipendente dall’incognita. Si consideri per esempio l’equazione scalare: ut + a(x, t)ux = 0

(2.40)

dove a(x, t) e` una funzione regolare. Se cerchiamo un cambio di variabili che, come prima, ci riporti ad un’equazione differenziale ordinaria, eseguiamo la trasformazione da (x, t) a (ξ, τ) definita da: τ=t lasciando per ora ξ indeterminata. ˜ Tramite questa trasformazione possiamo definire una nuova funzione u(ξ, τ) = u(x, t). Nelle nuove coordinate, l’equazione (2.40) diventa u˜ τ =

∂t ∂x ut + ux = 0 ∂τ ∂τ

se imponiamo che dx = a(x, τ). dτ 66

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

In pratica, si risolve il sistema di equazioni differenziali ordinarie:   du˜ = 0 ˜ u(ξ, 0) = u0 (ξ) dτ  dx = a(x, τ) x = ξ.

(2.41)

0



Essendo x0 = ξ, almeno per piccoli valori di τ, la relazione x = x(ξ, τ) e` invertibile per τ fissato tramite una funzione ξ = ξ(x, τ). La soluzione del problema (2.40) sar`a allora data dalla funzione ˜ u(x, t) = u(ξ, τ) = u0 (ξ(x, t), t). Osserviamo infine che le idee qui esposte non si applicano direttamente al caso in cui le velocit`a possano dipendere dall’incognita u, poich`e, come vedremo in seguito, le caratteristiche possono intersecarsi e generare soluzioni discontinue, che necessitano un trattamento particolare.

2.5.2

Introduzione al Metodo delle Differenze Finite

Il metodo alle differenze finite e` fondamentale per riuscire a risolvere le equazioni differenziali con algoritmi numerici. In pratica, con questo metodo si modifica il dominio dell’analisi dal caso continuo al caso discreto. Le equazioni differenziali funzionano in un insieme continuo e le derivate stesse sono definite su intervalli infinitesimi. Evidentemte, questi comportamenti non possono essere simulati nel modo reale, ma devono essere discretizzati (considerazione, questa, che si apre a molte obiezioni di natura filosofica, oltre che matematica, ma che aiuta a comprendere la necessit`a di questo passaggio). Definiamo quindi una griglia di punti nel piano cartesiano (x, t) e, per semplicit`a, ipotizziamo che il piano rappresenti le coordinate spazio/temporali di un qualsiasi fenomeno he abbia luogo in una sola dimensione spaziale. Fissati un passo di discretizzazione spaziale ∆x = h ed un passo di discretizzazione temporale ∆t = k, la griglia sar`a data dai punti nodali del piano (xm , tn ) = (mh, nk), per valori interi arbitrari m e n. Per una funzione v definita sulla griglia, scriveremo vm,n per il suo valore al nodo (xm , tn ), e questa notazione sar`a estesa naturalmente a funzioni definite ovunque per indicare i valori sui nodi. 67

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Figura 2.16: Una rappresentazione bidimensionale della griglia L’idea di base dei metodi alle differenze finite e` quella di sostituire nell’equazione da approssimare, ad ogni derivata, un rapporto incrementale finito. Per esempio, per una funzione regolare u, la derivata temporale ∂t u(xm , tn ) pu`o essere approssimata sia dalla differenza in avanti (forward): ∆+t u u(mh, (n + 1)k) − u(mh, nk) , ; ∆t k sia dalla differenza all’indietro (backward): ∆−t u u(mh, nk) − u(mh, (n − 1)k) , ; ∆t k sia, infine, dalla differenza centrata (central): ∆t u u(mh, (n + 1)k) − u(mh, (n − 1)k) , . 2∆t 2k Si procede analogamente nel caso di una derivata spaziale, ed eventualmente anche nel caso di pi`u variabili spaziali. In particolare, la derivata seconda spaziale 68

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

sar`a spesso approssimata dalla differenza seconda centrata ∆2x u u(mh, (n + 1)k) − 2u(mh, nk) + u(mh, (n − 1)k) , . 2 (∆x) h2 Questi schemi sono definiti da un sistema algebrico Ph,k v = 0 che agisce sullo spazio delle funzioni definite sui nodi della griglia. Usando diverse approssimazioni per le derivate si ottengono chiaramente schemi numerici differenti. Per esempio, per l’equazione (2.34) otteniamo i seguenti schemi: vm,n+1 − vm,n vm+1,n − vm,n +a =0 k h vm,n − vm−1,n vm,n+1 − vm,n +a =0 k h vm,n+1 − vm,n vm+1,n − vm−1,n +a =0 k 2h vm,n+1 − vm,n−1 vm+1,n − vm−1,n +a =0 2k 2h vm,n+1 − 21 (vm+1,n + vm−1,n ) vm+1,n − vm−1,n +a = 0. k 2h

(2.42) (2.43) (2.44) (2.45) (2.46)

Il primo schema (2.42) e` un forward-forward o upwind con a > 0 (le differenze prendono la direzione delle caratteristiche), perch`e in tale approssimazione e` usata la differenza in avanti sia per la variabile temporale che per quella spaziale. Lo schema (2.43) e` un forward-backward o upwind con a < 0 ed il (2.44) e` un forward-central. Lo schema (2.45) e` un central-central o leapfrog mentre il (2.46), che ha una struttura leggermente differente, e` chiamato schema di Lax-Friedrichs. Come si e` visto, il modo di derivare gli schemi e` estremamente semplice e permette di approssimare qualsiasi equazione differenziale, anche a coefficienti variabili o non lineare. Questo non vuol dire che tutti gli schemi cos`ı ottenuti siano ugualmente efficienti e veloci, e in effetti non e` detto nemmeno che tutti approssimino la soluzione del problema (2.34). Nel seguito, ci occuperemo di 69

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

stabilire certi criteri che assicurino la convergenza, ossia la propriet`a di approssimare la soluzione del problema limite quando i passi di discretizzazione spaziale e temporale tendono entrambi a zero. Tra gli schemi convergenti cercheremo di selezionare quelli che danno un’approssimazione pi`u accurata con il minor numero di punti. Una prima osservazione da fare riguardo agli schemi (2.42), (2.43), (2.44), (2.45) e (2.46) e` che tutti possono essere riformulati esprimendo vm,n+1 come una combinazione lineare dei valori di v al livello n o, nel caso dello schema central-central, anche al livello n − 1. Per esempio lo schema (2.42) pu`o essere riscritto come vm,n+1 = (1 + aλ)vm,n − aλvm+1,n avendo posto λ,

k . h

(2.47)

Questo valore λ, detto anche rapporto di CFL (da Courant, Friedrichs, Lewy, noti studiosi dell’argomento, con riferimento a [9]), apparir`a spesso nel seguito e il suo valore sar`a determinante nello stabilire le propriet`a degli schemi. Gli schemi che dipendono dai valori al passo immediatamente precedente sono chiamati schemi ad un passo, altrimenti, come nel caso dello schema central-central, si parla di schemi multistep. Per gli schemi ad un passo, una volta fissato il dato iniziale ed una sua ragionevole approssimazione sulla griglia di discretizzazione (per esempio il suo valore sui nodi), la soluzione approssimata viene costruita facilmente per ricorrenza. Per gli schemi multistep a k passi, k > 1, bisogna invece prescrivere una procedura di inizializzazione per assegnare la soluzione nei livelli k occorrenti. Per fare questo, usualmente si utilizza un metodo ad un passo per i primi k passi e poi si continua con il metodo proposto. Esempio 2.1 Prima di procedere con l’analisi degli schemi a differenze finite, analizziamo alcuni risultati numerici ottenuti utilizzando lo schema di Lax-Friedrichs. Si consideri l’equazione ut + ux = 0 70

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

con il dato iniziale

CAPITOLO 2. STRUMENTI MATEMATICI

 1 − x per | x |≤ 1 u0 = 0 per | x |> 1

la cui soluzione e` ottenuta semplicemente ponendo u(x, t) = u0 (x − t), ossia traslando verso destra a velocit`a 1 il dato iniziale.

Figura 2.17: Lax-Friedrichs, λ = 0, 8 [30] Per calcolare la soluzione noi ci limiteremo al caso 0 ≤ t ≤ 2, per cui il supporto della soluzione sar`a contenuto solo nell’intervallo −1 ≤ x ≤ 3 e baster`a imporre le condizioni al bordo nulle per la v. La formula relativa allo schema di Lax-Friedrichs e` 1 1 vm,n+1 = (vm+1,n + vm−1,n ) − λ(vm+1,n − vm−1,n ) 2 2 eccetto negli estremi destri e sinistri dove imporremo v = 0. La soluzione al tempo t = 1, 6 per λ = 0, 8 appare in figura (2.17), dove la soluzione esatta e` data dalla linea continua. Si osserva allora un sostanziale rispetto della soluzione, che viene per`o smussata negli spigoli a causa del fenomeno della cosiddetta 71

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

viscosit`a numerica, che verr`a discusso in seguito. Mantenendo fisso il valore di λ e diminuendo il valore di h, e quindi di k, la precisione migliora e possiamo constatare una sostanziale convergenza numerica. Se per`o usiamo λ = 1, 6, come mostrato nella figura (2.18) per il tempo t = 0, 8, vediamo che la soluzione numerica si comporta in modo anomalo, oscillando in modo incontrollato intorno alla soluzione esatta. Questo fatto, che verr`a ripreso e spiegato in seguito, mostra l’importanza di una corretta scelta del parametro λ.

Figura 2.18: Lax-Friedrichs, λ = 1, 6 [30]

Convergenza e Consistenza Come gi`a osservato, la propriet`a principale di uno schema e` la sua convergenza verso la soluzione esatta al tendere dei passi di discretizzazione h e k verso lo zero. Nel seguito estenderemo la nozione di schema convergente ad operatori pi`u generali, ma per ora vogliamo limitarci solo alle equazioni scalari del prim’ordine iperboliche. Definizione 2.4 Uno schema alle differenze finite ad un passo dato da un operatore discreto 72

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Ph,k v = 0 e` convergente per l’equazione differenziale (2.34) se per qualsiasi soluzione u dell’equazione con la condizione iniziale (2.35), data la soluzione vm,n dello schema alle differenze finite, tale che vm,0 converge a u0 quando mh converge a x, allora vm,n converge a u(x, t) se (mh, nk) tende a (x, t) al tendere di h e k a 0. Per gli schemi multistep la definizione si estende senza difficolt`a specificando la procedura di inizializzazione. Per confrontare una soluzione discreta v con una definita ovunque u, dobbiamo introdurre delle opportune topologie. Sia Ω un’intervallo reale e JΩ l’insieme dei valori dell’indice m tali che mh



Ω. I valori di una discretizzazione

v = {vm,n } al livello temporale n saranno definiti da: vn , {vm,n , m ∈ JΩ }. Una notazione analoga sar`a utilizzata per la restrizione della funzione u sui nodi della griglia. Possiamo allora considerare due tipi di norma. Per prima cosa la norma del massimo, che e` data da:  || vn ||∞,h , max | vm,n |, m ∈ JΩ .

(2.48)

Utilizzando la stessa norma per valutare un avremo un’approssimazione (dal basso) della norma usuale in L∞ della funzione u(·, tn ), che in generale non coincider`a con essa. Un’altra norma largamente utilizzata, specialmente nel contesto dei problemi lineari, sar`a la norma discreta L2 : || v ||2,h , n

X

h | vm,n |

2

21 .

(2.49)

m ∈ JΩ

La scelta della norma discreta da utilizzare non modifica in modo sostanziale l’analisi degli schemi, se non dal punto di vista tecnico. Nell’esempio precedente si vedeva che per λ = 0, 8 gli schemi di Lax-Friedrichs e leapfrog erano convergenti, mentre lo schema di Lax-Friedrichs mostrava un 73

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

cattivo comportamento per λ = 1, 6. Dimostrare che uno schema e` convergente e` spesso difficile per un problema di natura generale e procedendo in maniera diretta. Per le equazioni lineari a coefficienti costanti si pu`o per`o caratterizzare la convergenza in modo completo utilizzando delle condizioni di facile verifica, la consistenza e la stabilit`a. Definizione 2.5 L’errore di troncatura T di uno schema alle differenze finite per l’equazione (2.34) Ph,k v = 0 e` definito sostituendo nello schema della soluzione numerica una soluzione esatta u di (2.34) abbastanza regolare, ossia: T (x, t) = Ph,k u(x, t).

(2.50)

Definizione 2.6 Uno schema si dice consistente con l’equazione (2.34) se: T (x, t) → 0 se h, k → 0 per ogni (x, t) nel dominio di interesse. Per alcuni schemi dovremmo dare delle restrizioni al modo in cui h e k tendono a zero. Le soluzioni dovranno essere abbastanza regolari nel senso di essere derivabili abbastanza volte per eseguire i calcoli. Esaminiamo adesso la consistenza degli schemi proposti: Esempio 2.2 Lo Schema Upwind con a < 0 In questo caso sia u soluzione di (2.34), e: Ph,k v =

vm,n+1 − vm,n vm+1,n − vm,n +a = 0. k h

Eseguendo lo sviluppo di Taylor di u in un intorno di (mh, nk) otteniamo allora, ponendo um,n = u(mh, nk) 1 um,n+1 = um,n + kut + k2 utt + O(k3 ), 2 1 um+1,n = um,n + hux + h2 uxx + O(h3 ), 2 74

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

essendo le derivate calcolate nel punto stesso (mh, nk). Da questo si deduce che 1 1 T = Ph,k u = ut + aux + kutt + ahuxx + O(k2 ) + O(h2 ) 2 2

(2.51)

che tende a zero se h e k tendono a zero, per cui lo schema e` consistente. Esempio 2.3 Lo Schema di Lax-Friedrichs Per questo schema abbiamo: Ph,k u =

um,n+1 − 12 (um+1,n + um−1,n ) um+1,n − um−1,n +a . k 2h

Sfruttando nuovamente gli sviluppi di Taylor si pu`o osservare che: 1 1 um±1,n = um,n ± hux + h2 uxx ± h3 uxxx + O(h4 ) 2 6 ed otteniamo quindi: 1 1 (um+1,n + um−1,n ) = um,n + h2 uxx + O(h4 ) 2 2 e anche: um+1,n − um−1,n 1 = ux + h3 uxxx + O(h4 ). 2h 6 Sostituendo queste espressioni nello schema otteniamo: 1 1 1 Ph,k u = ut + aux + k2 utt − k−1 h2 uxx + ah3 uxxx + O(h4 + k−1 h4 + k2 ). 2 2 6 che, essendo u una soluzione, tende a zero se h e k tendono a zero con k−1 h2 → 0 Vediamo ora come l’errore di troncatura ci possa dare in alcuni esempi elementari una stima dell’errore di approssimazione numerica che stiamo commettendo. Per un dato schema denotiamo con Tm,n l’errore di troncatura in (xn , tm ) e sia data una stima di questo errore su di un intervallo fissato [0, T0 ) con | Tm,n |≤ Γ

(2.52)

se nk ≤ T0 . Si denoti quindi con e l’errore v − u nell’approssimazione; pi`u precisamente sia: em,n = vm,n − um,n . 75

(2.53)

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Analizziamo ora, per esempio, lo schema upwind con a < 0. Inserendo la quantit`a em,n nello schema (2.42) troviamo: em,n+1 = (1 + aλ)em,n − aλem+1,n − kTm,n .

(2.54)

Osserviamo allora che se −1 ≤ aλ ≤ 0, i coefficienti dei due primi termini a destra sono non negativi e sommati danno 1. Introduciamo quindi la norma del massimo dell’errore:  En , max | em,n |, m ∈ JΩ . A questo punto utilizzando la non negativit`a dei coefficienti di em,n nella (2.54) si ottiene facilmente: En+1 ≤ En + kΓ.

(2.55)

En ≤ nkΓ ≤ T0 Γ.

(2.56)

ovvero, essendo E0 = 0:

Utilizzando la stima (2.51) abbiamo per`o che:   1 |a| Γ ≤ k Mtt + Mxx 2 λ dove Mtt e Mxx sono la norma del massimo per le derivate utt e uxx rispettivamente. Abbiamo quindi che l’errore tende a zero, ovvero l’approssimazione numerica converge, al tendere di k = λh a zero, con λ costante, se la soluzione limite ha le derivate seconde utt e uxx uniformemente limitate su tutto il dominio. Un ragionamento analogo si applica allo schema di Lax-Friedrichs e ovviamente allo schema upwind con a > 0. In pratica la consistenza e la convergenza sono legate dal fatto che la prima dice che la soluzione esatta e` una soluzione approssimata dello schema numerico, mentre la seconda dice che la soluzione dello schema numerico e` una soluzione approssimata dell’equazione. Bisogna per`o porre attenzione al fatto che la consistenza da sola non implica necessariamente la convergenza, come si vede nell’esempio successivo. 76

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Esempio 2.4 Lo Schema Forward-Forward non Sempre Converge Si riprenda lo schema (2.42), per`o con a = 1. Possiamo allora scrivere lo schema come: vm,n+1 = (1 + λ)vm,n − λvm+1,n avendo posto come al solito λ ,  1 u0 = 0

(2.57)

k . Si prenda, come dato iniziale: h per − 1 ≤ x ≤ 0 altrove.

La soluzione u sar`a allora data da una semplice traslazione verso destra con velocit`a t, ed in particolare ci saranno valori positivi di x per cui u = 1. Analogamente, per lo schema alle differenze si prenda come dato iniziale

vm,0

 1 = 0

per − 1 ≤ mh ≤ 0 altrove.

Dalla (2.57) si vede che la soluzione numerica dipende solo dai valori di m maggiori o uguali al valore nel punto, per cui avremo: vm,n = 0 per tutti i valori m > 0, n ≥ 0. Per questo, essendo l’approssimazione vm,n identicamente nulla per x > 0 non pu`o tendere a u nel limite in nessun senso ragionevole.

Stabilit`a Abbiamo visto che la sola condizione di consistenza non e` sufficiente in generale a garantire la convergenza. La condizione supplementare da tenere in considerazione e` la stabilit`a. Per capire questa condizione si deve tener conto che se la successione approssimante converge in una qualche topologia, allora deve essere almeno limitata nella stessa topologia. 77

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Definizione 2.7 Uno schema alle differenze finite a un passo Ph,k v = 0 che approssima l’equazione (2.34) e` stabile nella norma || · ||·,h nella regione Ω se per ogni T > 0 esiste una costante CT tale che, per ogni v0 , || vn ||·,h ≤ CT || v0 ||·,h

(2.58)

per 0 ≤ nk ≤ T Ci concentreremo nel seguito sugli schemi ad un passo espliciti per l’equazione (2.34) che possono dunque essere scritti come: vn+1 = Cvn dove C e` un operatore lineare alle differenze indipendente da n del tipo: X vn,m+1 = (Cvn )m = cm,k vk,n

(2.59)

(2.60)

k ∈ JΩ

I coefficienti cm,k potranno in effetti dipendere da m e k per poter includere in seguito il caso a coefficienti variabili e le possibili condizioni al bordo. Eventuali termini di sorgente potranno anche essere inclusi senza difficolt`a e non cambieranno le propriet`a essenziali dello schema. Poich`e stiamo trattando il caso lineare, e` facile vedere che in generale la nostra richiesta di stabilit`a equivale ad una condizione sui coefficienti dell’operatore C del tipo: || Cn ||≤ CT

(2.61)

per 0 ≤ nk ≤ T usando un’opportuna norma operatoriale. Diremo infine che uno schema e` convergente nella norma prescelta se: || vn − un ||·,h → 0

(2.62)

con λ = k/h fissato e k → 0 e per nk → t ∈ (0, T ), per ogni dato iniziale u0 per cui il problema di Cauchy per la (2.34) e` ben posto nella norma prescelta. Nel caso presente per la norma del massimo serviranno dati limitati e per la norma di tipo L2 serviranno dati nello stesso spazio. A questo punto abbiamo tutti gli elementi per enunciare il risultato fondamentale che vale pi`u generalmente per tutti gli schemi alle differenze finite che approssimino problemi di tipo lineare. 78

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Teorema 2.1 Teorema di Equivalenza di Lax-Richtmyer. Uno schema alle differenze finite consistente per un problema lineare ben posto di evoluzione e` convergente se e solo se e` stabile. Il Teorema di Equivalenza di Lax-Richtmyer, stabilito per la prima volta da Peter Lax nel 1953 ([23]), quando aveva soltanto 27 anni, e` un risultato di grande importanza. Riesce a caratterizzare un concetto utile, ma difficile come la convergenza, essenzialmente legata a nozioni di carattere topologico, ad altri criteri pi`u semplici da stabilire come la stabilit`a e la consistenza. In pratica la consistenza e` un requisito abbastanza facile da verificare. La stabilit`a comporta un po‘ pi`u di difficolt`a, ma come vedremo in seguito e` possibile operare con manipolazioni essenzialmente di tipo algebrico. Inoltre questa caratterizzazione e` ottimale. Ossia non dice soltanto che la consistenza e la stabilit`a implicano la convergenza, ma anche che uno schema instabile o non consistente non pu`o essere convergente. Questo permette di scartare eventuali candidati con una semplice verifica a priori. Passiamo ora a considerare la classe degli schemi a tre punti, ossia degli schemi della forma: vm,n+1 = αvm+1,n + βvm,n + γvm−1,n

(2.63)

con α, β e γ costanti da fissare. Abbiamo intanto questo primo risultato di stabilit`a in L2 . Definizione 2.8 Sia dato uno schema a tre punti della forma (2.63) per l’equazione (2.34). Una condizione sufficiente affich`e lo schema risulti stabile rispetto alla norma (2.49) e` che valga la disuguaglianza: |α|+|β|+|γ|≤1

(2.64)

Per assicurare la consistenza con l’equazione (2.34) abbiamo: Definizione 2.9 Sia il rapporto

k uguale ad una costante fissata λ > 0. Allora uno schema h 79

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Schema

(α, β, γ)

q

Convergenza

Upwind con a < 0

(−λa, (1 + λa), 0)

−λa

−1 ≤ λa ≤ 0

Upwind con a > 0

(0, (1 − λa), λa)

λa

0 ≤ λa ≤ 1

0

Mai

1

| λa |≤ 1

Forward-Central  Lax-Friedrichs

(−λa/2, 1, λa/2)  1 − λa 1 + λa , 0, 2 2

Tabella 2.2: Schema Coefficienti [30]

a tre punti della forma (2.63) e` consistente con l’equazione (2.34) se e solo se α + β + γ = 1 e γ − α = λa. Si osservi che stiamo in effetti imponendo una limitazione nel modo di convergere delle discretizzazioni spaziali e temporali, richiedendo che λ sia una costante. Da questa proposizione si vede che la classe degli schemi lineari a tre punti che sono consistenti con l’equazione (2.34) forma una famiglia ad un parametro. Ponendo: q=α+γ

(2.65)

possiamo riscrivere tutti questi schemi nella forma cosiddetta viscosa; vm,n+1 = vm,n −

aλ q (vm+1,n − vm−1,n ) + (vm+1,n − 2vm,n + vm−1,n ). (2.66) 2 2

Il parametro q e` legato infatti alla viscosit`a numerica dello schema, in quanto formalmente lo schema e` consistente all’ordine 2, con l’equazione viscosa; 1 q ut + aux = λh( 2 − a2 )uxx . 2 λ

(2.67)

In particolare, abbiamo la tabella dei coefficienti 2.2. Le condizioni di stabilit`a trovate grazie alla (2.64) sono in questo caso anche necessarie. Osserviamo tuttavia che, tra gli schemi esaminati, la viscosit`a massima, in regime di stabilit`a, e` quella dello schema di Lax-Friedrichs, mentre il forward-central, che come si potrebbe dimostrare non e` mai stabile, ha viscosit`a negativa nell’equazione equivalente. 80

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

La Condizione di CFL Prima di passare a discutere pi`u in dettaglio la stabilit`a dei vari schemi, essenzialmente grazie all’analisi di von Neumann, presentiamo una condizione necessaria per la convergenza di facile verifica e che permette quindi una veloce analisi preliminare. Questa condizione fu proposta nel 1928 da R. Courant, K.O. Friedrichs e H. Lewy nel loro lavoro fondamentale sui metodi alle differenze finite ed e` conosciuta oggi come la condizione di CFL. Essa esprime una condizione necessaria di convergenza nei termini del dominio di dipendenza della soluzione. Prendiamo ad esempio la soluzione del problema dato dalle equazioni (2.34) e (2.35). Questa soluzione e` completamente determinata in un punto (x, t) a partire dal valore del dato iniziale nel punto (x − at). La condizione di CFL stabilisce che per uno schema convergente il dominio di dipendenza dello schema numerico deve contenere il dominio di dipendenza dell’equazione differenziale. Nel caso dell’equazione (2.34), eventualmente anche nel caso disomogeneo (2.38), questo si riduce alla caratteristica retrograda uscente dal punto (x, t), ossia la retta di equazione ξ = x − a(t − s).

Teorema 2.2

k = costante per uno schema esplicito a tre punti h per l’equazione (2.34) della forma (2.63), allora una condizione necessaria per Se fissiamo il rapporto λ =

la stabilit`a e` la seguente, detta condizione di CFL: | λa | ≤ 1

(2.68)

In particolare e` facile estendere questo risultato ai sistemi lineari fortemente iperbolici del tipo (2.40) per cui vale quindi la seguente regola generale: non ci sono schemi espliciti incondizionatamente stabili e consistenti alle differenze finite per sistemi fortemente iperbolici. La stabilit`a incondizionata potr`a infatti essere solo recuperata al prezzo di una perdita di accuratezza dello schema per la classe dei cosiddetti schemi impliciti. 81

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Monotonia Un modo semplice per trovare stime della norma del massimo e` quello di costruire degli schemi che verifichino la propriet`a del confronto monotono, ossia se due dati iniziali discretizzati verificano vm,0 ≤ v˜ m,0 allora per ogni n > 0 vale: vm,n ≤ v˜ m,n . Definizione 2.10 Uno schema nella forma (2.60) e` detto essere monotono se tutti i coefficienti cm,k ≥ 0. Si vede facilmente che lo schema e` monotono se e solo se verifica la propriet`a del confronto monotono. Abbiamo la seguente stima di limitatezza. Teorema 2.3 Sia dato uno schema monotono della forma (2.60). Allora, posto vmin , min{vm,0 } e vmax , max{vm,0 } avremo che vmin ≤ vm,n ≤ vmax

(2.69)

Dal Teorema di Lax-Richtmyer abbiamo immediatamente la convergenza di tutti gli schemi consistenti e monotoni (per una dimostrazione diretta si pu`o procedere anche stimando direttamente l’errore numerico come nelle (2.54)-(2.56). E` facile inoltre caratterizzare gli schemi monotoni tra tutti gli schemi consistenti a tre punti della forma (2.63). Per enunciare questa caratterizzazione utilizziamo per`o la forma viscosa (2.66). Definizione 2.11 Uno schema esplicito a tre punti consistente con l’equazione (2.34), nella forma viscosa (2.66), e` monotono se e solo se λ|a|≤q≤1 82

(2.70)

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Per dimostrare tale risultato basta osservare che valgono le seguenti uguaglianze: 1 α = (q − aλ) 2 β=1−q 1 γ = (q + aλ) 2 Vediamo dunque che la condizione di CFL e` ancora necessaria per la convergenza. Inoltre gli schemi upwind e Lax-Friedrichs sono monotoni. In particolare lo schema monotono con la pi`u bassa viscosit`a numerica e` lo schema upwind, mentre Lax-Friedrichs e` quello con la pi`u alta. Osserviamo infine come la condizione (2.70) sia in effetti equivalente alla condizione (2.64) che avevamo trovato per la norma L2 . Sfortunatamente la classe degli schemi monotoni e` troppo ristretta per contenere delle approssimazioni pi`u accurate, per cui sar`a necessario considerare la stabilit`a di tipo L2 , che risulter`a essere meno restrittiva.

L’Analisi di Von Neumann Lo strumento pi`u efficace per l’analisi delle equazioni lineari alle derivate parziali e` senz’altro l’uso estensivo della trasformata e delle serie di Fourier. Nel caso a coefficienti costanti questo permette di stabilire in modo diretto la buona disposizione e le propriet`a qualitative delle soluzioni di larghe classi di problemi differenziali. In particolar modo e` possibile caratterizzare in modo completo se, in L2 , i problemi di tipo iperbolico e parabolico siano ben posti, e nel caso scalare e per i sistemi. Se si considera una funzione v = {vm } definita su una griglia spaziale di passo h, la sua serie di Fourier e` data da: ∞ 1 X ^v(ξ) = √ he−imhξ vm 2π m=−∞

per 83

(2.71)

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

 ξ ∈ d`a:

Carlo Caligaris, Iacopo Salvarani

     π π π π − , . Si ha allora che ^v − = ^v e la formula di inversione h h h h Zπ h 1 vm = √ eimhξ ^v(ξ)dξ. (2.72) 2π − hπ

 che, di solito, si parte con una funzione periodica sull’intervallo  Si noti π π e si mostra che sotto opportune ipotesi vale la formula di rappresenta− , h h zione (2.71) con i coefficienti dati da (2.72). Prima di addentrarci ulteriormente nell’analisi degli schemi numerici, vale la pena di dare un cenno alle propriet`a della trasformata di Fourier che viene utilizzata per la risoluzione dei problemi differenziali. Sia ad esempio u una soluzione dell’equazione (2.34) e u ^ la sua trasformata di Fourier nella variabile spaziale, Z∞ 1 u ^ (ω) = √ e−iωx u(x)dx. 2π −∞ Allora u ^ risolve l’equazione differenziale ordinaria ossia:

(2.73)

u ^ t = −iaω^ u che ha come unica soluzione: u ^ (ω, t) = e−iatω u ^ 0 (ω). La norma L2 viene conservata nell’evoluzione dell’equazione e le propriet`a di regolarit`a della soluzione vengono trasformate in propriet`a di decrescenza all’infinito della u ^ e viceversa. Questo spiega perch`e le soluzioni irregolari presentano oscillazioni sulle frequenze pi`u alte, che in questo caso si trovano ad avere grande ampiezza. Per illustrare il metodo di Von Neumann considereremo un caso particolare, lo schema forward-backward (2.43) per l’equazione (2.34): vm,n − vm−1,n vm,n+1 − vm,n +a =0 k h

(2.74)

che riscriviamo in forma compatta come: vm,n+1 = (1 − aλ)vm,n + aλvm−1,n 84

(2.75)

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

k . h Dalla (2.83) abbiamo:

sempre ponendo λ ,

vm,n

1 =√ 2π



h

eimhξ ^vn (ξ)dξ.

π −h

Sostituendo quindi nella (2.75) si ottiene la relazione Zπ h 1 vm,n+1 = √ eimhξ [(1 − aλ) + aλe−ihξ ]^vn (ξ)dξ π 2π − h

(2.76)

da cui si deduce la relazione per ricorrenza ^vn+1 (ξ) = g(hξ)^vn (ξ)

(2.77)

con g(hξ) , (1 − aλ) + aλe−ihξ . Questo mostra come l’avanzamento di un passo temporale dello schema provochi un’amplificazione di un fattore g(hξ) della trasformata numerica, ottenendo cos`ı ^vn (ξ) = g(hξ)n ^v0 (ξ).

(2.78)

Daremo adesso la condizione per la stabilit`a in L2 per le approssimazioni numeriche dell’equazione (2.34), nonostante questa analisi sia valida pi`u in generale per problemi iperbolici e parabolici che siano ben posti in questa topologia. Seguendo quanto illustrato nell’esempio precedente possiamo affermare che per ogni schema alle differenze ad un passo e su 2l + 1 punti della forma (2.59), possiamo scrivere la relazione: ^vn+1 (ξ) = g(hξ)^vn (ξ) con g(hξ) ,

l X

(2.79)

cl eilhξ .

k=−l

La funzione g e` detta fattore di amplificazione e contiene tutte le informazioni importanti sullo schema e, cosa pi`u importante, risulta essere uno strumento abbastanza facile da analizzare. 85

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Teorema 2.4 Uno schema alle differenze ad un passo per l’equazione (2.34) e` stabile se e solo se esiste una costante K e alcuni valori fissati k0 e h0 tali che | g(χ, h, k) |≤ 1 + Kk

(2.80)

per tutti i valori di χ, 0 < k ≤ k0 , e 0 < h ≤ h0 . Se inoltre g(χ, h, k) e` indipendente da h e k allora basta porre K = 0 nella (2.80). Si osservi che si pu`o dimostrare che la condizione di Von Neumann e` necessaria per i sistemi a coefficienti costanti, se applicata agli autovalori della matrice di amplificazione, e continua ad essere anche sufficiente per tutti gli schemi ad un passo per le equazioni scalari con una sola derivata nel tempo. Terminiamo infine osservando che l’analisi di Von Neumann pu`o essere adattata opportunamente, anche se non direttamente, allo studio delle equazioni a coefficienti variabili, mediante il metodo del congelamento dei coefficienti. Per esempio per l’equazione a coefficienti variabili ut + a(x, t)ux = 0

(2.81)

varr`a ancora la condizione di stabilit`a | a(xm , tn )λ | ≤ 1 per tutti i punti della griglia (xm , tn ) nel dominio computazionale. Ordine di Accuratezza e Schema di Lax-Wendroff Fino a questo momento abbiamo considerato gli schemi solamente in base alla loro convergenza o meno, ossia in ultima analisi in base alla loro consistenza e stabilit`a. Tuttavia dal punto di vista numerico e` altrettanto importante stabilire la velocit`a di convergenza degli schemi. Questo sar`a fatto come conseguenza della nozione di accuratezza dello schema che definiamo qui di seguito. Definizione 2.12 Uno schema consistente con l’equazione (2.34) si dice accurato di ordine q in spazio e di ordine p in tempo, in breve accurato di ordine (q, p), se: | T (x, t) |= O(kp ) + O(hq ) 86

se (h, k) → 0

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

per ogni (x, t) nel dominio di interesse. Nel caso in cui k = K(h) diciamo che lo schema e` di ordine r se: | T (x, t) |= O(hr )

se h → 0.

In pratica l’accuratezza e` una nozione pi`u forte di consistenza, che corrisponde ad un errore di troncatura solamente dell’ordine di o(1). Cominciamo adesso a verificare l’ordine di accuratezza di alcuni degli schemi conosciuti. Lo schema di Lax-Friedrichs d`a uno sviluppo del tipo: 1 1 1 T = kutt − k−1 h2 uxx + ah2 uxxx + O(h4 + k−1 h4 + k2 ). 2 2 6 Fissando k = λh per una costante λ fissata, vediamo che lo schema e` di ordine 1. Analogamente abbiamo lo schema upwind con a < 0 che d`a: 1 1 T = kutt + ahuxx + O(k2 ) + O(h2 ), 2 2 corrispondente ad uno schema di ordine (1, 1) o, fissando k = λh per una costante λ fissata, ancora uno schema di ordine 1. Pi`u in generale vale la seguente propriet`a: Teorema 2.5 Uno schema lineare monotono nella forma (2.60) e` al pi`u del primo ordine, a meno che non sia lo schema banale vm,n+1 = vm,n con λ | a |= 1. Si prenda la forma generale (2.66) di uno schema a tre punti consistente per l’equazione (2.34). Uno schema di questo tipo pu`o essere di ordine (2, 2), oppure per λ = k/h fissato, di ordine 2, se e solo se vale la condizione: q = (aλ)2 .

(2.82)

Questo significa che esiste un solo schema lineare a tre punti consistente che sia di ordine 2. Questo schema, chiamato schema di Lax-Wendroff, e` stato proposto per la prima volta nel 1960 e si scrive: vm,n+1 = vm,n −

aλ a2 λ2 (vm+1,n −vm−1,n )+ (vm+1,n −2vm,n +vm−1,n ). (2.83) 2 2 87

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

La sua viscosit`a numerica e` la pi`u bassa possibile per lasciare l’equazione equivalente (2.67) ancora parabolica. Chiaramente, poich`e la condizione (2.70) non e` verificata, lo schema non e` monotono. Eseguiamo ora l’analisi di stabilit`a dello schema di Lax-Wendroff. Il suo fattore di amplificazione si calcola facilmente ed e` dato da     a2 λ2 iχ aλ iχ −iχ −iχ + = g(χ) = 1 − e −e e −2+e 2 2   χ 2 2 2 = 1 − iaλ sin(χ) − 2a λ sin 2 per cui

χ 2 Abbiamo quindi che g(χ) ≤ 1 se e soltanto se | aλ |≤ 1. Lo schema risulta quindi | g |2 = 1 − 4a2 λ2 (1 − a2 λ2 ) sin4

L2 -stabile. In generale vale anzi la seguente caratterizzazione degli schemi a tre punti consistenti con l’equazione (2.34). Definizione 2.13 Uno schema esplicito a tre punti consistente con l’equazione (2.34), nella forma viscosa (2.66), e` L2 -stabile se e solo se (λa)2 ≤ q ≤ 1

(2.84)

Vediamo quindi che la stabilit`a L2 e` meno restrittiva della stabilit`a nella norma del massimo e permette quindi di trovare almeno uno schema del secondo ordine stabile. Vediamo come si comporta lo schema di Lax-Wendroff nei confronti per esempio dello schema upwind. Si prenda l’equazione (2.34) con il dato iniziale uguale alla funzione caratteristica dell’intervallo (0.2, 0.4). La figura (2.19) mostra il risultato per lo schema upwind, mentre la figura (2.20) per lo schema di Lax-Wendroff. Nello schema monotono si nota uno smussamento degli spigoli e una piccola riduzione dell’altezza, mentre lo schema di Lax-Wendroff mantiene l’altezza dei bordi molto meglio, producendo tuttavia delle piccole oscillazioni. Riducendo h si vede un sostanziale miglioramento, anche se le oscillazioni persistono. Questo e` dovuto al fatto che la nostra analisi dell’errore e` valida solo 88

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

per soluzioni abbastanza regolari. Si veda infatti come si comporta lo schema di Lax-Wendroff con un dato molto pi`u regolare (di fatto ∈ C∞ ) nella figura (2.21). In pratica, l’instabilit`a, essendo legata alla crescita delle frequenze elevate, appare prima per dati irregolari, come si vede nelle figure (2.20) e (2.21). Si osservi anche che in generale questa instabilit`a e` di fatto un fenomeno locale. Per esempio nella figura (2.2) si vede che l’instabilit`a nasce essenzialmente nel punto di discontinuit`a della derivata e solo dopo si propaga a tutta la soluzione. Questo permette di distinguere tra gli effetti di un errore di programmazione, che spesso sono globali, e l’instabilit`a numerica dello schema.

89

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Figura 2.19: Trasporto lineare con il metodo upwind [30]

90

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Figura 2.20: Trasporto lineare con il metodo di Lax-Wendroff [30]

91

2.5. METODI DI CALCOLO NUMERICI ALLE DIFFERENZE FINITE

Carlo Caligaris, Iacopo Salvarani

Figura 2.21: Trasporto lineare (dato regolare) con il metodo di Lax-Wendroff [30]

92

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Accenniamo infine alla relazione che intercorre tra uno schema di ordine r e la sua accuratezza. Vale il seguente risultato, e in particolare se ne pu`o dimostrare uno analogo nel caso parabolico e pi`u generalmente per tutti i problemi di Cauchy ben posti in L2 . Teorema 2.6 Sia dato uno schema stabile per l’equazione (2.34) che sia accurato di ordine r ≥ 1. Allora esiste un indice intero non negativo s ≥ r tale che se u0 ∈ Hs , per ogni fissato T > 0 esiste una costante CT tale che || un − vn ||2,h ≤ CT hr || u0 ||Hs per ogni n tale che 0 ≤ kn ≤ T In generale per i metodi iperbolici si trova s = r + 1 e per quelli parabolici s = r + 2. [30]

93

2.6. IL MODELLO

2.6 2.6.1

Carlo Caligaris, Iacopo Salvarani

Il Modello La Scelta del Modello

Dopo una attenta valutazione delle possibili equazioni che possono meglio rappresentare il comportamento della tratta autostradale di nostra competenza si e` scelto di usufruire, nell’implementazione del software, delle considerazioni modellistiche suggerite da Markos Papageorgiou, ingegnere e ricercatore matematico greco che a lungo si e` occupato di problemi di controllo del traffico e ha fornito un metodo per utilizzare equazioni che rappresentano un modello macroscopico di traffico veicolare. Come gi`a illustrato il tratto di competenza appartiene ad una categoria ben definita: si tratta, infatti, di una autostrada multicorsia con numerose rampe di ingresso e uscita. Questo chiaramente comporta una ulteriore complicazione della trattazione ma permette di adattare adeguatamente un modello di tipo macroscopico quale quello suggerito da Papageorgiou. e` pertanto possibile considerare il comportamento del flusso di traffico come quello di un fluido avente determinate grandezze che lo caratterizzano. Variabili di Stato del Modello Riprendiamo le definizioni tipiche dei modelli macroscopici per il traffico: Definizione 2.14 Si definisca la densit`a locale dei veicoli alla sezione x al tempo t ρ(x, t) come la grandezza che d`a un’informazione su quanti veicoli stanno impegnando la carreggiata. E` misurata in veicoli per chilometro. Definizione 2.15 Si definisca la velocit`a media dei veicoli alla sezione x al tempo t v(x, t) 94

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

come la media delle velocit`a tenute dai veicoli nella sezione e al tempo indicato. E` misurata in chilometri orari. Definizione 2.16 Si definisca il flusso veicolare q(x, t) come la grandezza che d`a un’informazione su quanti veicoli attraversano una sezione di carreggiata in un intervallo di tempo. E` misurato in veicoli all’ora. Agendo in maniera ricorsiva su queste variabili di stato e` possibile farle evolvere in maniera congruente al comportamento del traffico veicolare e da questo ottenere una previsione sull’effettivo andamento futuro del traffico autostradale. Le ulteriori variabili che verranno ad essere definite per necessit`a rappresentativa del modello verranno illustrate e definite in seguito quando saranno introdotte nel modello.

2.6.2

L’equazione fondamentale di Papageorgiou

Come gi`a e` stato illustrato una delle propriet`a fondamentali dei modelli macroscopici e` proprio la maniera in cui le variabili che lo descrivono interagiscono e sono relazionate fra loro, e questo e` tanto pi`u vero nei modelli macroscopici ove le variabili tentano di rappresentare non i singoli elementi ma l’insieme degli stessi. Sicuramente e` sempre valida la relazione q(x, t) = ρ(x, t) · v(x, t) ma non possiamo essere altrettanto sicuri della bont`a della curva caratteristica velocit`a-densit`a che era stata definita partendo da ipotesi di omogeneit`a e condizione stazionaria che sicuramente non sono proprie del tratto stradale in questione. Abbiamo utilizzato una delle relazioni tra velocit`a e densit`a illustrate in Tabella 2.1, cio`e quella proposta dallo stesso Papageorgiou, che chiameremo diagramma fondamentale o relazione fondamentale:  m ρ l vρ = vf 1 − ρmax 95

(2.85)

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

dove l e m sono parametri determinabili in via sperimentale dall’osservazione di casi reali. In altre parole e` possibile raccogliere una grande quantit`a di dati sulle coppie (ρ, v) per ogni singola sezione in cui e` divisa l’autostrada. Tutti i dati puntuali raccolti vengono posti su un piano cartesiano (ρ, v). A tal punto mantenendo la formulazione di Papageorgiou si pu`o cercare la curva che meglio segue il comportamento della distribuzione dei punti semplicemente modificando i valori degli esponenti l e m. Applicando un qualsiasi algoritmo (ad esempio nel nostro caso abbiamo utilizzato un semplice metodo di programmazione lineare volto alla minimizzazione della somma dei quadrati delle distanze fra punti reali e punti della curva caratteristica) e` possibile cercare la curva caratterizzata dalla migliore approssimazione e fissare i valori dei due esponenti. I principali vantaggi della relazione fondamentale sono due. Innanzitutto e` caratterizzata da una grande capacit`a descrittiva del comportamento dell’autostrada; infatti possiamo definire una coppia di esponenti (l, m) per ogni singola sezione in cui abbiamo suddiviso il percorso globale. Questo e` molto importante poich`e c´ hiaro che la relazione fra densit`a e velocit`a e` influenzata soprattutto dalle caratteristiche della sezione stradale, che possono variare anche di parecchio anche su uno stesso tronco autostradale. In secondo luogo lo stesso Papageorgiou suggerisce i range entro i quali ricercare i valori degli esponenti l e m, per cui la ricerca stessa dei valori ha una complessit`a computazionale relativamente bassa (lo stesso problema di minimizzazione dei quadrati ne risulta molto semplificato). Si consiglia di tenere: 0, 5 ≤ m ≤ 2, 5

e 2 ≤ l ≤ 4. Da ci`o derivano le nuove curve caratteristiche velocit`a-densit`a e flusso-densit`a, una diversa per ogni singola sezione autostradale. 96

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Figura 2.22: Curva Caratteristica velocit`a-densit`a

Figura 2.23: Curva Caratteristica flusso-densit`a

2.6.3

L’Equazione del Modello

Consideriamo nuovamente il caso in studio; si tratta come gi`a detto di una lunga autostrada multicorsia con numerose stazioni di ingresso e di uscita. L’obiettivo e` sviluppare un modello matematico del flusso di traffico che descriva l’evoluzione 97

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

dinamica delle variabili, che abbiamo definito per descrivere il comportamento del traffico, lungo l’autostrada. Come illustrato in precedenza osserviamo il flusso veicolare come un un fluido avente un certo valore di densit`a e flusso. Da ci`o possiamo desumere l’equazione di conservazione della materia che gi`a prima abbiamo trattato. La differenza e` che per`o in questo caso l’equazione: ∂ρ(x, t) ∂q(x, t) + =0 ∂t ∂x

(2.86)

non e` sufficiente e descrivere il comportamento del modello. In effetti, mantenendo il paragone fra comportamento del traffico e comportamento del fluido, appare chiaro che nel nostro caso il canale di trasporto del fluido non e` assolutamente un canale chiuso, proprio a causa dei caselli di entrata e uscita da cui i veicoli possono liberamente entrare e uscire. Ci`o fa s`ı che l’equazione che avevamo trattano analiticamente non sia pi`u valida e impone la correzione del modello. Definizione 2.17 Definiamo il flusso di veicoli entrante alla sezione x e al tempo t r(x, t) come la grandezza che d`a un’informazione su quanti veicoli entrino nell’unit`a di tempo alla sezione e al tempo indicati. Si misura in veicoli per ora. Definizione 2.18 Definiamo il flusso di veicoli uscente dalla sezione x e al tempo t s(x, t) come la grandezza che d`a un’informazione su quanti veicoli escano nell’unit`a di tempo alla sezione e al tempo indicati. Si misura in veicoli per ora. Introdotti questi fondamentali elementi possiamo riscrivere l’equazione che regola il modello.

∂ρ ∂q + =r−s ∂t ∂x 98

(2.87)

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Chiaramente il significato dell’equazione e` identico, semplicemente viene anche considerata la possibilit`a che alcuni veicoli entrino o escano dall’autostrada. Trattandosi di un’equazione differenziale alle derivate parziali simile a quella vista nella trattazione analitica del problema del traffico, la sua risoluzione comporta le medesime difficolt`a che erano state riscontrate in precedenza; inoltre troviamo due complicazioni in pi`u che introducono ulteriore complessit`a alla risoluzione: i due termini relativi agli ingressi e alle uscite dei veicoli e il fatto che la funzione v(ρ) non segue pi`u la legge lineare (2.7) ma la relazione fondamentale di Papageorgiou (2.85). Per farla breve sarebbe impensabile cercare di ottenere una risoluzione analitica del problema. Pertanto per poter avere una soluzione dell’equazione conviene passare attraverso una soluzione numerica del problema sfruttando i metodi di risoluzione alle differenze finite. Come e` stato illustrato in precedenza l’idea di base dei metodi alle differenze finite e` quella di sostituire, nell’equazione da approssimare, ad ogni derivata un rapporto incrementale finito. Se ad esempio ci troviamo a trattare un fenomeno che avviene nel tempo e in una sola dimensione spaziale (ed e` proprio questo il nostro caso), ci`o si ottiene definendo una griglia di punti nel piano cartesiano (x, t). Fissati un passo di discretizzazione spaziale ∆x = h ed un passo di discretizzazione temporale ∆t = k, la griglia sar`a data dai punti nodali del piano (xm , tn ) = (mh, nk), per valori interi arbitrari m e n. Soluzioni di questo genere sono molto facilmente implementabili e programmabili su calcolatore. Si pone per`o a questo punto un problema dovuto principalmente alla natura fisica del problema. Scegliere un passo di discretizzazione ∆t per il tempo e` cosa concettualmente abbastanza semplice: se ci si dimentica per un attimo di tutti i problemi relativi alla convergenza e alla stabilit`a delle soluzioni alle differenze finite, basta scegliere una porzione di tempo non troppo piccola, dal momento che appesantirebbe eccessivamente l’elaborazione, e non troppo grande, poich´e il problema potrebbe perdere capacit`a descrittiva. Molto pi`u complicato sarebbe scegliere un passo di discretizzazione spaziale da applicare alla lunghezza dell’autostrada. Per scegliere un ∆x sensato bisognerebbe tenere conto di numerosi

99

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

fattori: la lunghezza dei veicoli, la lunghezza dell’intera autostrada, la lunghezza delle varie tratte fra una stazione di entrata/uscita e quella successiva. Papageorgiou e` riuscito a rispondere a questo problema adattando i metodi di risoluzione alle differenze finite al problema; ci`o che ha fatto e` stato imporre una discretizzazione a passo costante sulla dimensione temporale (ovvero le variabili di stato vengono calcolate solo per gli istanti nk). Quindi ha suddiviso il percorso autostradale in numerose tratte, ognuna delle quali avesse al massimo una singola stazione di entrata e una singola stazione di uscita; infine lungo la dimensione spaziale ha applicato una discretizzazione a passo variabile, in cui la lunghezza del passo e` uguale alla lunghezza delle singole tratte (ovvero le variabili di stato sono calcolate in modo da dare un valore per ognuna delle tratte). Quello che avviene in pratica e` che ad ogni ricorsione del metodo numerico il modello avanza di un istante temporale e, per ogni singola tratta, vengono calcolati i valori delle variabili di stato. Per effettuare questo calcolo vengono utilizzati i valori delle variabili all’istante precedente riferiti a quella medesima tratta e alle due tratte adiacenti (la precedente e la successiva).

2.6.4

Le Equazioni di Papageorgiou

L’equazione della densit`a L’equazione alle derivate parziali della densit`a diventa l’equazione discretizzata: ρi (k + 1) = ρi (k) +

 T  qi−1 (k) − qi (k) + ri (k) − si (k) ∆i

(2.88)

dove l’indice i e` quello relativo alle tratte, mentre l’indice k e` quello relativo agli istanti temporali. T e` il passo di discretizzazione temporale; pertanto ρi (k + 1) e` il valore della densit`a sulla tratta i-esima al passo di discretizzazione (k + 1)-esimo, ovvero al tempo T · (k + 1). ∆i e` invece la lunghezza della i-esima tratta. qi (k) e` il flusso veicolare in uscita dalla tratta i-esima al passo di discretizzazione (k)-esimo; analogamente qi−1 (k) e` il flusso veicolare in uscita al medesimo passo di discretizzazione ma relativo alla tratta (i − 1)-esima, che e` quella immediatamente prima; pertanto trattasi del flusso in entrata per la tratta i-esima. 100

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

ri (k) e` il flusso veicolare entrante proveniente dalla stazione di ingresso nella tratta i-esima al passo di discretizzazione (k)-esimo; si (k) e` il flusso veicolare uscente attraverso la stazione di uscita nella tratta i-esima al passo di discretizzazione (k)-esimo.

Figura 2.24: Flussi veicolari relativi alla tratta i-esima Significato dell’equazione della densit`a L’equazione della densit`a ha un significato fisico molto chiaro: il termine   qi−1 (k) − qi (k) + ri (k) − si (k) costituisce la somma algebrica dei flussi che interagiscono con la tratta i-esima immettendo in essa veicoli e permettendo l’uscita degli stessi. Tale termine pertanto d`a come risultante il differenziale nel tempo del numero dei veicoli (potremmo definirlo un flusso incrementale). Moltiplicato tale valore per il periodo di discretizzazione del tempo   T qi−1 (k) − qi (k) + ri (k) − si (k) otteniamo il differenziale effettivo di veicoli che si e` verificato nel passo temporale per quella tratta; volendolo vedere espresso dall’analisi dimensionale   numero veicoli = [numero veicoli] [tempo] · tempo 101

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

Dividendo poi il numero incrementale di veicoli per la lunghezza della tratta  T  qi−1 (k) − qi (k) + ri (k) − si (k) ∆i si ottiene il differenziale di densit`a per quella tratta   numero veicoli ´ = [densita] lunghezza il quale va sommato al valore della densit`a al passo di discretizzazione temporale precedente per ottenere il nuovo valore di densit`a. ρi (k) +

 T  qi−1 (k) − qi (k) + ri (k) − si (k) ∆i

´ + [densita] ´ = [densita] ´ [densita] Convergenza della densit`a Come appena mostrato l’equazione discretizzata della densit`a proposta da Papageorgiou sembra portare a riprodurre esattamente il comportamento dell’andamento di ρ(x, t). Non dobbiamo per`o dimenticare che questa affermazione e` vera solo se la discretizzazione e` tale da assicurare la convergenza. Ora per`o appare chiaro che tutta la trattazione introdotta nella sezione teorica e` valida per i metodi alle differenze finite di risoluzione di equazioni alle derivate parziali veri e propri. In realt`a l’equazione discretizzata di Papageorgiou e` un adattamento dell’idea che regola i metodi alle differenze finite al principio di conservazione della materia che porta ad un modello macroscopico del comportamento del traffico. Inoltre come gi`a detto la discretizzazione stessa della variabile spaziale non segue la trattazione dei metodi alle differenze finite ma si piega alla necessit`a della rappresentazione delle tratte autostradali. Detto questo proveremo ugualmente ad effettuare alcune considerazioni sulla convergenza delle equazioni di Papageorgiou, ma sottolineando che tale trattazione non ha alcuna pretesa di rigore matematico. Semplicemente e` nostro desiderio mostrare che il metodo del matematico greco, che ha offerto in gi`a numerosissime applicazioni ottimi risultati, poggia le sue fondamenta sulla teoria matematica. 102

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Proviamo pertanto a controllare se e` verificata la condizione di CFL (2.68), che e` condizione necessaria per la stabilit`a e la convergenza: | aλ | ≤ 1; applichiamola all’equazione ρt + vf (1 − 2

ρ ρmax

) ρx = 0.

Gi`a ci troviamo davanti ad alcuni problemi: la condizione di CFL si riferisce a equazioni in cui il termine a sia indipendente dalla funzione incognita, e quindi soltanto a(x, t); nel nostro caso invece a dipende anche da ρ. Inoltre alcuni dei termini costanti che determinano il valore di a nel nostro caso non sono costanti ma variano da tratta a tratta. Infine λ, ovvero il rapporto fra i passi di discretizzazione, dovrebbe essere costante, ma come ben sappiamo il passo di discretizzazione sulla coordinata spaziale e` variabile e corrisponde alle lunghezze delle tratta autostradali. Proviamo pertanto a porci nella condizione peggiore possibile, ovvero lasciamo che | aλ | resti in funzione di ρ e assumiamo che i vari elementi (che dovrebbero essere costanti ma nel nostro caso sono variabili) che concorrono a determinare il suo valore siano sfavorevoli e quindi tali da massimizzare | aλ |. Quindi poniamo: · vf = 130 km/h; · ρmax=150 auto/km ; · ∆t = 0.0167 h; · ∆x = 2.4 km. ed otteniamo il grafico di Figura 2.25. 103

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

Figura 2.25: | aλ | in funzione della densit`a Possiamo notare che la condizione di CFL e` verificata fino a valori di densit`a di circa 160 veicoli per km. Questo e` gi`a abbastanza positivo; infatti i valori massimi di densit`a si aggirano di solito intorno a 180 veicoli per km, questo significa che la stabilit`a e la convergenza sono plausibili per quasi la totalit`a delle situazioni di traffico, senza contare che ci si era posti volutamente in una condizione fortemente negativa che non si realizza mai. Proviamo adesso a porre delle condizioni comunque sfavorevoli alla verifica della condizione di CFL, ma il cui accadimento e` possibile; per la precisione ricerchiamo la condizione che si pu`o realizzare col valore | aλ | maggiore. Quindi poniamo: · vf = 130 km/h; · ρmax=180 auto/km ; · ∆t = 0.0167 h; · ∆x = 2.6 km. 104

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

ed otteniamo il grafico di Figura 2.26

Figura 2.26: | aλ | in funzione della densit`a E osserviamo che la condizione di CFL decade per valori di densit`a di circa 200 veicoli per km. Come detto pocanzi i valori massimi di densit`a che si riscontrano raramente superano i 180 veicoli per km, pertanto si pu`o dire che anche nella situazione pi`u sfavorevole la condizione di CFL e` verificata per qualsiasi condizione del traffico veicolare. Teniamo a sottolineare per l’ultima volta che questo non equivale a sostenere la convergenza di un metodo alle differenze finite, ma certamente si pu`o dire che non solo i risultati sperimentali, ma anche la teoria matematica confermano la bont`a del modello di Papageorgiou. L’equazione della velocit`a Una volta che per il passo di discretizzazione k-esimo e` nota la distribuzione di ρ su tutte le tratte i per conoscere la distribuzione delle velocit`a allo stesso istante si potrebbe semplicemente utilizzare la relazione fondamentale v = V(ρ). L’e105

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

sperienza convinse per`o Papageorgiou a non operare semplicemente in questa maniera. Infatti la relazione fondamentale non tiene conto del tempo che impiega il traffico ad adeguare la propria velocit`a media alla nuova situazione di densit`a. Si potrebbe dire che il traffico agisce con un certo ritardo, e, pertanto, e` opportuno ipotizzare:  v(x, t + τ) = V ρ(x, t)

(2.89)

ove τ e` appunto il ritardo di risposta. Evidentemente passando alla discretizzazione dell’equazione vale la relazione: v(x, t + τ) = v(x, t) + τ

dv(x, t) dt

(2.90)

e perci`o v˙ =

 1  1 v(x, t + τ) − v(x, t) = V(ρ(x, t)) − v(x, t) . τ τ

(2.91)

La relazione (2.91) e` alla base dell’equazione della velocit`a che Papageorgiou inserisce nel suo modello. Alla base poich`e oltre a tale termine differenziale, in seguito a prove sperimentali, sono aggiunti altri due termini correttivi che cercano di rappresentare l’interazione con il comportamento delle due tratte adiacenti.     T T vi (k + 1) = vi (k) + V(ρi (k)) − vi (k) + vi (k) vi−1 (k) − vi (k) + (2.92) τ ∆i   νT ρi+1 (k) − ρi (k)   . − τ∆i ρi (k) + χ Significato dell’equazione della velocit`a L’equazione delle velocit`a merita particolare attenzione. Sulla tratta generica iesima la velocit`a al passo temporale (k + 1)-esimo e` calcolato come la velocit`a sulla medesima tratta al passo temporale precedente variata da tre fattori incrementali. Il primo dei tre termini come si e` visto proviene dall’equazione discretizzata della velocit`a nel continuo; gli altri due termini sono stati ritenuti significativi da Papageorgiou a seguito delle prove sperimentali che ha effettuato. 106

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

Il primo termine   T V(ρi (k)) − vi (k) τ d`a un’indicazione su quanto pu`o variare la velocit`a dal suo valore al passo temporale precedente k-esimo rispetto ad valore massimo teorico stabilito dall’equazione fondamentale di Papageorgiou. Se al passo temporale k-esimo la velocit`a sulla tratta i-esima valeva vi (k) e la densit`a dei veicoli valeva ρi (k) e per V(ρ) si indica la relazione fondamentale di Papageorgiou, allora la velocit`a potr`a variare all’istante (k + 1)-esimo di un valore incrementale dato proprio da   V(ρi (k)) − vi (k) . La rapidit`a con cui la velocit`a accetta tale variazione dipende dal coefficiente τ   1 V(ρi (k)) − vi (k) τ che rappresenta il ritardo che il traffico impiega per adeguarsi, data una densit`a veicolare, al valore di velocit`a medio dato dalla relazione fondamentale di Papageorgiou per quella densit`a. Il secondo termine   T vi (k) vi−1 (k) − vi (k) ∆i d`a un’indicazione su quanto pu`o variare la velocit`a sulla tratta i-esima a causa del diverso valore di velocit`a che si verifica sulla tratta precedente. Si presuppone infatti che i veicoli entranti in una tratta mantengano la velocit`a che avevavno sulla tratta precedente (ci`o e` valido chiaramente se la densit`a rimane costante, e infatti ρ non compare nel secondo termine). Con tale termine si traspone tale comportamento nel modello. 107

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

Se al passo temporale k-esimo le velocit`a sulle tratte (i − 1)-esima e i-esima sono rispettivamente: vi−1 (k) e vi (k) allora

  vi−1 (k) − vi (k)

indica di quanto pu`o variare la velocit`a a causa dell’effetto descritto. La rapidit`a con cui la velocit`a accetta la variazione dipende da quanto celermente i veicoli con la velocit`a relativa al passo temporale precedente lasciano la tratta in questione, e quindi   T vi (k) vi−1 (k) − vi (k) ∆i dipende dalla lunghezza della tratta e dalla velocit`a precedente dei veicoli. L’ultimo termine

  νT ρi+1 (k) − ρi (k)   − τ∆i ρi (k) + χ

d`a un’informazione su come si evolve la velocit`a in relazione alla diversa densit`a sulla tratta successiva. Una densit`a di traffico sulla tratta successiva ρi+1 (k) molto diversa, in termini relativi, rispetto alla densit`a sulla tratta per cui si sta calcolando la velocit`a

  ρi+1 (k) − ρi (k)

[ρi (k)] provoca rapidamente un effetto all’indietro di variazione della velocit`a dovuto al fenomeno delle back waves gi`a incontrato nella trattazione dei modelli microscopici. Infatti, come si era visto, in una fila di veicoli il comportamento della vettura di testa viene seguito, ritardato nel tempo e amplificato nell’ampiezza, dalle vetture che seguono. 108

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

La rapidit`a con cui la velocit`a varia a causa di tale fenomeno dipende dalla lunghezza della tratta, dalla costante di ritardo del traffico τ, dalla costante ν che d`a una misura della velocit`a di propagazione all’indietro dell’onda, e dalla costante χ che attenua la misura della differenza relativa fra i valori delle densit`a delle due tratte contigue   ν ρi+1 (k) − ρi (k)   . − τ∆i ρi (k) + χ L’equazione del flusso L’equazione del flusso permette di calcolare il flusso veicolare; essendo noti per la tratta i-esima al passo temporale k-esimo il valore della densit`a dei veicoli ρi (k) ed il valore della velocit`a media dei veicoli vi (k) entrambi calcolati utilizzando le due precedenti equazioni, il flusso relativo alla medesima tratta sar`a: qi (k) = vi (k) · ρi (k).

2.6.5

(2.93)

Inizializzazione del modello

L’inizializzazione del modello e` sicuramente una delle fasi fondamentali per il funzionamento della simulazione. Infatti da un diverso tipo di inizializzazione dipende fortemente il tipo di risposta che otterremo dal modello. Ipotizziamo infatti di trascurare completamente l’inizializzazione delle variabili di stato di densit`a dei veicoli, velocit`a media e flusso veicolare. Questo significa che la simulazione parte con valori casuali, oppure nulli, oppure, per non ritrovarsi in una situazione iniziale troppo peculiare, con i valori relativi a condizioni di traffico regolare. 109

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

Ovviamente i valori immediatamente successivi all’istante di partenza della simulazione daranno risultati non congruenti con la realt`a. Per`o, lasciando continuare la simulazione per un tempo (simulato, ovviamente) sufficientemente lungo, le variabili di ingresso e i parametri inerenti all’autostrada, se sono stati stimati con buona accuratezza, porteranno l’andamento della simulazione verso risultati coerenti col reale comportamento del traffico. Da questo si evince che se il modello viene utilizzato per uno scopo prettamente simulativo, l’inizializzazione delle variabili di stato riveste un ruolo altamente marginale e addirittura e` un passaggio che pu`o essere sacrificato. Naturalmente e` altrettanto vero l’opposto: se il modello viene utilizzato come strumento previsionale on-line e real-time, la corretta inizializzazione delle variabili di stato acquista un’importanza addirittura drastica. e` evidente che se l’intenzione e` di avere una previsione per gli N passi di discretizzazione temporale successivi, con N abbastanza piccolo, la bont`a della stima dipende quasi esclusivamente dalla bont`a dell’inizializzazione delle variabili di stato. Il problema in tal caso diventa, oltre che sistemistico, anche sensoristico; spesso infatti e` difficile poter avere buone misurazioni in tempo reale della velocit`a, del flusso veicolare e soprattutto della densit`a delle vetture. In tal caso addirittura diventa necessario trovare un modo per stimare in maniera adeguata anche le variabili di ingresso del sistema. Infatti se l’intento del modello e` quello previsionale, l’ingresso del sistema sar`a costituito dai flussi veicolari in ingresso e in uscita dalle stazioni, relativi ai passi di discretizzazione temporale successivi, che in quanto futuri sono ignoti. Per ottenere buoni risultati dalla simulazione previsionale occorre che l’inizializzazione delle variabili di ingresso all’inizio della simulazione sia il pi`u precisa possibile, e che la stima dei valori futuri sia accurata e coerente con il successivo verificarsi nella realt`a.

2.6.6

Pregi e difetti del modello

I principali vantaggi del modello sono i seguenti: • Capacit`a di modellare sistemi assai vasti. Come si e` visto i sistemi macroscopici come quello di Papageorgiou sono i pi`u indicati per affrontare situa110

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

zioni complesse o molto vaste sia per lunghezza della strada, sia per numero di veicoli in gioco. In una situazione autostradale un modello microscopico si troverebbe nell’assoluta difficolt`a di gestire l’eccessivo numero di variabili di cui necessita. • Bont`a dei risultati una volta ben tarati i parametri. Applicazioni sperimentali (molte di queste condotte dallo stesso padre del modello Papageorgiou) dimostrano che, una volta che tutti i parametri che descrivono la tratta autostradale sono stimati in maniera da rendere perfettamente il comnportamento reale, i risultati delle simulazioni sono sorprendentemente validi. • Maneggevolezza dal punto di vista informatico. Come si pu`o facilmente notare le equazioni di Papageorgiou sono molto semplici da implementare in maniera ricorsiva tramite un qualsiasi linguaggio di programmazione. I dati in uscita dal modello sono altrettanto maneggevoli, in quanto sono in effetti facilmente rappresentabili in forma matriciale. Il che permette una grande semplicit`a di aggregazione secondo la necessit`a di chi vuole usufruire dei dati in uscita. • Adattabilit`a perfetta ai tipi di autostrada compatibili. Le equazioni di Papageorgiou sono facilmente applicabili a qualsiasi tipo di autostrada che rappresenti un sistema chiuso (ovvero ove si possono avere informazione su tutti gli elementi che entrano ed escono dal sistema). Per applicare le equazioni ad un nuovo tratto sar`a sufficiente modificare il sistema di acquisizione dei dati iniziali, delle variabili di ingresso e i parametri relativi alle tratte autostradali; le equazioni di Papageorgiou restano perfettamente immutate. I pricipali svantaggi del modello sono i seguenti: • Difficolt`a di settaggio dei parametri fisici e di simulazione. Per poter settare tutti i paraetri relativi alle varie tratte occorre effettuare, come gi`a illustrato, 111

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

una serie di misurazioni di prova. Pertanto e` necessario consultare un archivio di dati storici oppure, se non si e` in possesso di dati storici, sfruttare una sensoristica distribuita capillarmente che permetta di effettuare le misurazioni che occorrono. Quando capita che manchino entrambe le soluzioni occorre stimare i parametri secondo il buon senso per poi affinarli effettuando continue simulazioni e valutandone la bont`a. • Necessit`a di dati per il settaggio iniziale e difficile reperibilit`a dei suddetti. Come spiegato precedentemente, se il modello viene utilizzato in ottica previsionale, e non simulativa, il problema di una corretta inizializzazione diventa di fondamentale importanza. Purtroppo non sempre e` facile effettuare rilevamenti e misurazioni del fenomeno reale per inizializzare le variabili di stato. Specialmente in ambito autostradale la sensoristica spesso difetta in quantit`a e qualit`a e il rischio di inficiare in maniera determinante la previsione con dati iniziali poco accurati diventa tangibile. • Impossibilit`a di prevedere nel futuro le variabili di ingresso. Un grosso limite del modello di Papageorgiou quando viene utilizzato in ottica previsionale e` l’impossibilit`a di avere i valori esatti per le variabili di ingresso. Infatti, ad eccezione dell’istante 0 in cui parte la simulazione ed e` possibile acquisire i dati tramite misurazione sensoristica, i valori futuri dei flussi in ingresso e in uscita relativi alle stazioni non sono noti n`e fissi. Chiaramente nell’arco della giornata i flussi veicolari ai caselli seguono un comportamento abbastanza standard, che pu`o essere stimato in maniera anche abbastanza precisa, se si e` in possesso dei dati storici relativi agli ingressi e alle uscite. Ad ogni modo la previsione di questi valori, per accurata che sia, raramente centrer`a perfettamente il valore reale, e di sicuro non potr`a prevedere situazioni occasionali (che sovente si manifestano). L’unico modo sensato di dare una soluzione accettabile a questo problema e` quello di integrare le informazioni sul comportamento standard delle variabili di ingresso con il dato reale misurato all’istante iniziale di simulazione 112

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 2. STRUMENTI MATEMATICI

e ottenere da questi due elementi la stima pi`u corretta possibile dei valori futuri. • Necessit`a di compatibilit`a con la tipologia di autostrada. Nella trattazione analitica del problema si era parlato di equazione di conservazione della materia, che e` l’equazione che regola il sistema, mettendo in relazione i flussi e le densit`a. Tale equazione presuppone che la tratta autostradale in esame sia un sistema chiuso, ovvero che si possa avere l’informazione dettagliata su tutti gli elementi che varcano il confine del sistema, entrandone o uscendone. Nelle strade extraurbane dove non sia possibile misurare i flussi di ingresso o uscita relativi alle stazioni, oppure ove il flusso entrante nella prima tratta o quello uscente dall’ultima non sono n`e noti n`e misurabili e` impossibile applicare il modello di Papageorgiou, in quanto alcuni dei termini delle equazioni sono mancanti, e se i loro valori non sono trascurabili chiaramente la previsione delle variabili di stato risulta ampiamente distorta. Per nostra fortuna le autostrade, essendo munite dei sistemi di pagamento del pedaggio agli ingressi e alle uscite, raramente sono caratterizzate da questo tipo di problemi. [31]

113

2.6. IL MODELLO

Carlo Caligaris, Iacopo Salvarani

114

Capitolo 3 Strumenti Informatici Utilizzati

Figura 3.1: Boston Traffic [57]

115

3.1. JAVA

3.1 3.1.1

Carlo Caligaris, Iacopo Salvarani

Java Introduzione al Linguaggio di Programmazione Java

Quasi tutto il software da noi prodotto e` stato scritto in Java. Java e` un linguaggio di programmazione molto potente ed e` diventato lo standard di riferimento per l’implementazione di applicazioni basate su Internet e per lo sviluppo di software per dispositivi che comunicano attraverso una rete. Gran parte della nuova tecnologia si basa su questo linguaggio: in particolare dispositivi wireless come i telefoni cellulari comunicano tramite la cosiddetta wireless Internet usando applicazioni di rete basate su Java. Java e` di fatto entrato prepotentemente nel terreno delle applicazioni di larga scala; non e` pi`u un linguaggio utilizzato per rendere vive le pagine web, ma e` diventato il linguaggio preferito di riferimento di molte aziende ed organizzazioni. [10]

Figura 3.2: Gli Aspetti di Java [49]

3.1.2

Linguaggi Macchina, Assembly e di Alto Livello

I programmatori possono scrivere le istruzioni in vari linguaggi di programmazione. Alcuni linguaggi vengono compresi direttamente dai computer, mentre altri richiedono dei passaggi intermedi di traduzione. Allo stato attuale vengono 116

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

utilizzati centinaia di linguaggi di programmazione diversi, che possono essere raggruppati in tre grandi categorie: 1. linguaggi macchina; 2. linguaggi assembly; 3. linguaggi di alto livello. Un computer e` in grado di capire direttamente soltanto il proprio linguaggio macchina, che deve essere considerato come il suo linguaggio naturale, in quanto e` definito dalla progettazione dell’hardware. In genere i linguaggi macchina consistono di stringhe di numeri (che si riducono infine a sequenze di 0 ed 1) che ordinano al computer di eseguire operazioni elementari, una alla volta. I linguaggi macchina dipendono dall’architettura del computer per cui sono stati definiti e sono assolutamente oscuri agli occhi di un essere umano. Con l’aumentare della popolarit`a dei computer ci si rese conto che continuare a programmare in linguaggio macchina era un’operazione decisamente noiosa e lenta. Anzich´e scrivere stringhe di numeri che i computer potevano capire direttamente, i programmatori cominciarono a far uso di abbreviazioni che rappresentavano le operazioni elementari dei computer. Tali abbreviazioni costituirono la base dei linguaggi assembly. Parallelamente furono sviluppati dei programmi di traduzione, detti assembler, che convertono i programmi scritti in linguaggio assembly in linguaggio macchina. L’utilizzo dei computer aument`o sensibilmente con l’introduzione dei linguaggi assembly, ma in definitiva essi richiedevano ugualmente un gran numero di istruzioni per eseguire anche il compito pi`u banale. Per velocizzare la programmazione furono allora inventati i linguaggi di alto livello, nei quali una singola istruzione poteva eseguire compiti anche complessi. Programmi di traduzione detti compilatori convertono poi i programmi scritti nel linguaggio di alto livello in linguaggio macchina. I linguaggi di alto livello consentivano ai programmatori di scrivere delle istruzioni che suonavano all’incirca come una normale frase in lingua inglese e che contenevano alcuni simboli matematici. I linguaggi C, C++, Java e quelli della piattaforma Microsoft .NET sono tra i linguaggi ad alto livello pi`u potenti ed utilizzati al giorno d’oggi. 117

3.1. JAVA

Carlo Caligaris, Iacopo Salvarani

La compilazione di un programma ad alto livello in linguaggio macchina pu`o comunque richiedere un considerevole tempo di elaborazione. Perci`o furono anche inventati i cosiddetti interpreti, in grado di eseguire direttamente i programmi scritti in linguaggio ad alto livello senza doverli prima convertire in linguaggio macchina. Anche se i programmi compilati sono molto pi`u veloci di quelli interpretati, gli intrepreti sono spesso utilizzati negli ambienti di sviluppo in cui e` necessario apportare continue modifiche ai programmi, cos`ı da non doverli compilare frequentemente. Una volta raggiunta la versione definitiva di un programma, per`o, e` possibile compilarlo per avere un’efficienza migliore. A questo punto e` chiaro che esistono fondamentalmente due modalit`a diverse di tradurre un programma scritto con un linguaggio di alto livello in una forma che sia direttamente comprensibile da un computer: la compilazione e l’interpretazione. Java utilizza un’approccio ibrido combinando queste due modalit`a. [10]

3.1.3

La Storia dei Linguaggi C e C++

Il linguaggio Java e` una evoluzione del linguaggio C++ che costituisce l’evoluzione naturale del linguaggio C, il quale a sua volta discende da altri due linguaggi, BCPL e B. Il linguaggio BCPL fu sviluppato nel 1967 da Martin Richards per scrivere sistemi operativi e compilatori. Ken Thompson modell`o poi molte delle caratteristiche del suo linguaggio B sulla base del BCPL ed utilizz`o il B per creare le prime versioni del sistema operativo UNIX presso i Bell Laboratories nel 1970. Il linguaggio C si svilupp`o dal B grazie a Dennis Ritchie presso i Bell Laboratories, e fu implementato originariamente nel 1972. Il C fu noto inizialmente come linguaggio di sviluppo del sistema operativo UNIX. Oggi la maggior parte dei sistemi operativi che possiamo trovare nei computer portatili, nei normali computer da tavolo, nelle workstation e persino nei piccoli server sono scritti in C o C++. Il linguaggio C++, estensione del C, e` stato sviluppato da Bjarne Stroustrup 118

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

agli inizi degli anni ’80 presso i Bell Laboratories. Il linguaggio C++ offre una serie di funzionalit`a che potenziano il C e, cosa pi`u importante, lo rendono adatto per la programmazione orientata agli oggetti. Il C++ e` un linguaggio ibrido poich´e e` possibile scrivere programmi nel vecchio stile procedurale del C, nello stile orientato agli oggetti, o in entrambi. Gli oggetti o, pi`u precisamente, le classi di oggetti, sono essenzialmente componenti software riutilizzabili. Possiamo creare oggetti che rappresentano varie tipologie di dati. Ogni nome pu`o essere utilizzato per rappresentare un oggetto software in termini di propriet`a e comportamento. Gli sviluppatori di software si stanno rendendo conto che usare un approccio modulare ed orientato agli oggetti nella programmazione e nell’implementazione pu`o rendere i team di programmazione molto pi`u produttivi rispetto alle tecniche del passato, come la programmazione strutturata. I programmi orientati agli oggetti, infatti, sono spesso pi`u semplici da capire, da correggere e da modificare. In questo scenario, Java e` ormai divenuto il linguaggio di programmazione orientato agli oggetti pi`u utilizzato. [10]

3.1.4

La Storia di Java

Il contributo pi`u importante della rivoluzione dei microprocessori e` stato forse lo sviluppo dei personal computer, che hanno avuto un profondo impatto sulla vita delle persone ed ancora di pi`u sulle organizzazioni e sulle aziende. Sono in molti a credere che il prossimo settore in cui i microprocessori avranno un impatto di questo tipo sia quello dei dispositivi elettronici intelligenti di uso comune. In vista di questa nuova rivoluzione, Sun Microsystems ha finanziato, nel 1991, un progetto di ricerca interno, chiamato Green. Questo progetto ha dato vita ad un linguaggio basato su C e C++, inizialmente chiamato Oak dal suo creatore, James Gosling. Il nome e` stato poi modificato in Java (nome di una marca di caff´e) quando si e` scoperto che gi`a esisteva un linguaggio chiamato Oak. Il progetto Green ha incontrato delle difficolt`a, in quanto il mercato dei dispositivi elettronici di consumo non si e` sviluppato tanto rapidamente quanto Sun credeva. Fortunatamente, nel 1993 e` esploso il World Wide Web e Sun ha intravisto immediatamente il potenziale di Java per creare pagine web con contenuti dinamici ed animazioni. 119

3.1. JAVA

Carlo Caligaris, Iacopo Salvarani

Sun ha presentato ufficialmente Java in una conferenza tenutasi nel Maggio del 1995, sollevando un clamoroso interesse. Java viene attualmente utilizzato per sviluppare applicazioni industriali su larga scala, per estendere le funzionalit`a dei server web, per realizzare applicazioni destinate ai dispositivi di consumo e per molti altri scopi. [10]

3.1.5

Le Librerie di Classi Java

I programmi di Java si compongono di parti dette classi, che a loro volta contengono metodi, i quali eseguono vari compiti e, alla fine, ritornano delle informazioni. Sebbene sia possibile creare ogni parte di un programma Java, normalmente un programmatore cerca di riutilizzare l’enorme quantit`a di classi gi`a esistenti, racchiuse nelle librerie di classi Java. Le librerie di classi sono conosciute anche come Java API (Application Programming Interface). Per conoscere il mondo di Java, quindi, e` necessario studiare due cose: il linguaggio vero e proprio, per realizzare le proprie classi, e le librerie di classi gi`a esistenti. [10] Nel corso del nostro lavoro abbiamo utilizzato un gran numero di classi predefinite, ma abbiamo anche costruito alcune classi personalmente, al fine di raggruppare comandi ripetitivi in funzioni o al fine di avere dei metodi che ci consentissero di trattare i tipi di dati di nostro interesse.

3.1.6

Gli Elementi Fondamentali di un Tipico Ambiente Java

Un programma attraversa generalmente cinque fasi per essere eseguito: 1. scrittura e modifica; 2. compilazione; 3. caricamento; 4. verifica; 5. esecuzione. 120

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

Scrittura e Modifica di un Programma Per scrivere e modificare i files che costituiscono il nostro programma Java, si utilizza generalmente un editor. I nomi dei file dei programmi Java terminano generalmente con l’estensione .java. Le aziende che sviluppano grossi sistemi informativi utilizzano solitamente ambienti di sviluppo Java integrati (IDE), forniti da vari distributori di software. Gli IDE mettono a disposizione del programmatore diversi strumenti per lo sviluppo di programmi e per la loro messa punto, facilitando l’individuazione degli errori. I nostri supervisori aziendali ci hanno consigliato Eclipse, un IDE dall’interfaccia e dalle funzioni molto simili a quelle di Microsoft Visual Studio. Compilazione di un Programma Java in Bytecode Il compilatore Java converte il codice in bytecode, ossia le istruzioni comprese dall’interprete Java. Il compilatore Java pu`o essere lanciato tramite linea di comando (in ambiente Microsoft, ad esempio, si utilizza il prompt MS-DOS) con l’istruzione javac oppure, se l’IDE supporta questa possibilit`a, impostando il percorso del compilatore tra le opzioni dell’IDE stesso e lanciando la compilazione con un comando interno all’ambiente di sviluppo. Se il programma e` stato compilato correttamente, viene prodotto un file con estensione .class contenente i bytecode che verranno interpretati durante la fase di esecuzione. Il compilatore Java traduce il codice sorgente in un bytecode che rappresenta le operazioni che verranno eseguite in fase di esecuzione. I bytecode vengono eseguiti dalla Java Virtual Machine (JVM), cio`e una parte del JDK ed una componente fondamentale della piattaforma Java. Una macchina virtuale (VM) e` una applicazione software che simula un computer, nascondendo ai programmi che con essa interagiscono sia il sistema operativo, sia l’hardware sottostanti. Se la stessa macchina virtuale e` disponibile per diverse piattaforme, le stesse applicazioni eseguite dalla VM possono automaticamente essere utilizzate in ognuna di tali piattaforme. La macchina virtuale Java e` una delle macchine virtuali pi`u diffuse. 121

3.1. JAVA

Carlo Caligaris, Iacopo Salvarani

A differenza del linguaggio macchina, che e` specifico per ciascun diverso tipo di hardware, il bytecode e` costruito da istruzioni che sono indipendenti dalla piattaforma, ossia non sono specifiche per una particolare piattaforma hardware. In questo modo il bytecode Java risulta essere portabile: lo stesso bytecode pu`o essere eseguito in una qualunque piattaforma contenente una JVM compatibile con la versione di Java nella quale il bytecode e` stato originariamente compilato. La JVM e` richiamabile da linea di comando con l’istruzione java. La JVM avvia tutti i passi necessari per eseguire l’applicazione. Caricamento di un Programma in Memoria Prima che un programma possa essere eseguito, deve essere posto in memoria. Il programma class loader trasferisce nella memoria primaria i files .class. Il class loader pu`o anche caricare eventuali files messi a disposizione da Java e richiamati dal nostro programma. La sorgente di questi files pu`o essere una sorgente hardware interna al sistema o una rete. Verifica del Bytecode Quando le classi vengono caricate, i loro bytecode vengono esaminati dal verificatore di bytecode. In questo modo si garantisce che i bytecode delle classi siano validi e rispettino le norme di sicurezza Java. Java prevede infatti norme molto severe nell’ambito della sicurezza, affinch´e i programmi Java provenienti dalla rete non possano danneggiare il sistema ospite. Esecuzione Finalmente, l’interprete, sotto il controllo del sistema operativo, interpreta il programma, un bytecode per volta, eseguendo tutte le azioni previste dal programma stesso. Nelle prime versioni di Java, la JVM era un semplice interprete di bytecode. Questa caratteristica rendeva i programmi in esecuzione molto lenti poich´e la JVM interpretava ed eseguiva un bytecode alla volta. Le JVM attuali, invece, eseguono i bytecode sfruttando una combinazione di due tecniche: l’interpreta122

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

zione e la cosiddetta compilazione just-in-time. Durante questo processo la JVM analizza i bytecode non appena essi vengono interpretati, cercando di localizzare quelle parti di bytecode eseguite pi`u spesso, dette hot spot. Una volta isolate queste parti, esse vengono passate al compilatore just-in-time, il quale le traduce nel linguaggio macchina specifico per la piattaforma corrente. Quando la JVM ritrova le stesse parti una seconda volta durante l’esecuzione del programma, ci`o che viene effettivamente eseguito e` il pi`u veloce linguaggio macchina. In questo modo i programmi Java passano per due fasi di compilazione distinte: la prima in cui il codice sorgente viene tradotto in bytecode (favorendo la portabilit`a verso JVM presenti in diverse piattaforme) e la seconda nella quale, durante l’esecuzione, i bytecode vengono tradotti in linguaggio macchina specifico per il computer sul quale il programma e` in esecuzione. [10]

3.1.7

Concetti Fondamentali della Tecnologia ad Oggetti

Concludiamo questa panoramica sul linguaggio di programmazione pi`u utilizzato per il nostro lavoro introducendo la metodologia orientata agli oggetti. Ovunque si guardi nel mondo reale, si vedono oggetti: persone, animali, piante e cos`ı via. Le persone, inoltre, pensano in termini di oggetti. I programmi per computer, e quindi i programmi Java, possono essere visti come oggetti costituiti da tanti altri oggetti software interconnessi. La progettazione orientata agli oggetti modella il software in termini simili a quelli utilizzati dalle persone per descrivere gli oggetti del mondo reale. Essa sfrutta le relazioni di classe, in cui gli oggetti di una certa classe hanno le stesse caratteristiche, e le relazioni di ereditariet`a con cui e` possibile derivare nuove classi assorbendo le caratteristiche di classi esistenti ed aggiungendone di nuove. La progettazione orientata agli oggetti e` un modo naturale ed intuitivo di vedere il processo di progettazione. Modellando i componenti software proprio come descriviamo gli oggetti del mondo reale: usando i loro attributi ed il loro comportamento. La progettazione orientata agli oggetti modella anche la comunicazione tra oggetti che avviene tramite messaggi. Questo tipo di progettazione incapsula 123

3.1. JAVA

Carlo Caligaris, Iacopo Salvarani

gli attributi e le funzionalit`a (il comportamento) negli oggetti: gli attributi e le funzionalit`a di un oggetto sono strettamente legati tra loro. Gli oggetti hanno la propriet`a di nascondere le informazioni, Questo significa che, sebbene gli oggetti sappiano come comunicare tra loro attraverso ben definite interfacce, non possono sapere come altri oggetti sono implementati; i dettagli dell’implementazione sono nascosti all’interno degli oggetti stessi. Del resto, e` possibile guidare una macchina senza conoscere i dettagli del funzionamento interno del motore, della trasmissione o del cambio. Java e` un linguaggio orientato agli oggetti; i linguaggi come il C, invece, sono procedurali e la loro programmazione tende ad essere orientata all’azione. In C, l’unit`a di programmazione e` la funzione. Gruppi di azioni che svolgono qualche compito comune vengono trasformati in funzioni e le funzioni sono raggruppate a loro volta per formare programmi. In Java l’unit`a di programmazione e` la classe da cui gli oggetti vengono istanziati. Le classi Java contengono metodi, che implementano funzionalit`a, e campi, che implementano attributi. I programmatori Java si concentrano sulla creazione di classi. Ogni classe contiene dei campi e l’insieme dei metodi che manipolano questi campi per fornire determinati servizi ai clienti. I programmatori usano le classi esistenti come mattoni per costruire nuove classi. Da una stessa classe e` possibile istanziare molti oggetti. Le relazioni tra classi vengono chiamate associazioni. Quando il software viene scritto come aggregato di classi, queste possono essere riusate in sistemi software futuri. Riusare classi esistenti nella costruzione di nuove classi e programmi fa risparmiare tempo e sforzi. Il riuso aiuta anche i programmatori a costruire sistemi pi`u affidabili dal momento che le classi ed i componenti esistenti sono stati a lungo verificati e corretti. Con la tecnologia degli oggetti, possiamo costruire la maggior parte del software che ci serve combinando delle classi. [10]

124

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

3.2

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

Le Basi di Dati ed i Sistemi di Gestione di Basi di Dati

Gran parte della nostra attivit`a ha richiesto una costante interazione con una enorme base di dati dalla quale abbiamo cercato di ricavare le informazioni a noi pi`u utili. La raccolta e lo storage dei dati rappresenta un enorme campo di applicazione dei sistemi informatici quindi, prima di descrivere nel dettaglio come abbiamo operato per relazionarci con la banca dati, vogliamo introdurre i fondamenti di questo argomento, proprio come abbiamo fatto e faremo con tutte le aree di interesse scientifico che abbiamo toccato.

3.2.1

Introduzione alle Basi di Dati

Le attivit`a di raccolta, organizzazione, conservazione dei dati costituiscono uno dei principali compiti dei sistemi informatici; essi garantiscono che questi dati vengano conservati in modo permanente su dispositivi per la loro memorizzazione, aggiornati per riflettere rapidamente le loro variazioni e resi accessibili alle interrogazioni degli utenti, talvolta distribuiti in modo capillare sul territorio Nello svolgimento di ogni attivit`a, sia a livello individuale sia in organizzazioni di ogni dimensione, sono essenziali la disponibilit`a di informazioni e la capacit`a di gestirle in modo efficace; ogni organizzazione e` dotata di un sistema informativo, che organizza e gestisce le informazioni necessarie per perseguire gli scopi dell’organizzazione stessa. L’esistenza del sistema informativo e` in parte indipendente dalla sua automatizzazione. A sostegno di questa affermazione possiamo ricordare che i sistemi informativi esistono da molto prima dell’invenzione e della diffusione dei calcolatori elettronici. Per indicare la porzione automatizzata del sistema informativo viene di solito utilizzato il termine sistema informatico. La diffusione capillare dell’informatica in quasi tutte le attivit`a umane ha fatto s`ı che gran parte dei sistemi informativi fossero anche, in buona misura, sistemi informatici. Nei sistemi informatici si porta all’estremo il concetto di rappresentazione 125

3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI

Carlo Caligaris, Iacopo Salvarani

e codifica: le informazioni vengono rappresentate per mezzo di dati che hanno bisogno di essere interpretati. A livello concettuale possiamo dire che i dati da soli non hanno alcun significato ma, una volta interpretati e correlati opportunamente, essi forniscono informazioni che consentono di arricchire la nostra conoscenza del mondo. Una base di dati e` una collezione di dati, utilizzati per rappresentare le informazioni di interesse per un sistema informativo. L’attenzione ai dati ha caratterizzato le applicazioni dell’informatica fin dalle sue origini, ma sistemi software specificamente dedicati alla gestione dei dati sono stati realizzati solo a partire dalla fine degli anni Sessanta. Un sistema di gestione di basi di dati (DBMS) e` un sistema software in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, assicurando la loro affidabilit`a e riservatezza. Come ogni prodotto informatico, un DBMS deve essere efficiente ed efficace. Una base di dati e` una collezione di dati gestita da un DBMS. Precisiamo le caratteristiche dei DBMS su cui si basano le definizioni precedenti. • Le basi di dati possono essere grandi, talvolta sono enormi (come quella con cui abbiamo lavorato) e comunque in generale hanno dimensioni molto maggiori della memoria centrale disponibile. Di conseguenza, i DBMS debbono prevedere una gestione dei dati in memoria secondaria. E` importante che i sistemi possano gestire i dati senza porre limiti alle dimensioni, oltre a quelli fisici imposti dai dispositivi usati. • Le basi di dati sono condivise, nel senso che applicazioni ed utenti diversi debbono poter accedere, secondo opportune modalit`a, a dati comuni. E´ importante notare che in questo modo si riduce la ridondanza dei dati, poich´e si evitano ripetizioni, e conseguentemente si riduce anche la possibilit`a di inconsistenze: se esistono varie copie degli stessi dati e` possibile che esse, in qualche momento, non siano uguali. Per garantire l’accesso condiviso ai dati da parte di molti utenti che operano contemporaneamente, il DBMS dispone di un meccanismo apposito detto controllo di concorrenza. • Le basi di dati sono persistenti, cio`e hanno un tempo di vita che non e` limitato a quello delle singole esecuzioni dei programmi che le utilizzano. In 126

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

contrasto, ricordiamo che i dati gestiti da un programma in memoria centrale hanno una vita che inizia e termina con l’esecuzione del programma; tali dati, quindi, non sono persistenti. • I DBMS garantiscono l’affidabilit`a, cio`e la capacit`a del sistema di conservare sostanzialmente intatto il contenuto della base di dati (o almeno di permetterne la ricostruzione) in caso di malfunzionamenti hardware e software. A questo scopo i DBMS forniscono specifiche funzionalit`a di salvataggio e ripristino (backup e recovery). • I DBMS garantiscono la riservatezza dei dati. Ciascun utente, riconosciuto in base ad un nome di utente che e` specificato all’atto di interagire con il DBMS, viene abilitato a svolgere solo determinate azioni sui dati, attraverso meccanismi di autorizzazione. • Per efficienza si intende la capacit`a di svolgere le operazioni utilizzando un insieme di risorse (tempo e spazio) che sia accettabile per gli utenti. Questa caratteristica dipende dalle tecniche utilizzate nell’implementazione del DBMS e dalla bont`a della realizzazione della base di dati da parte dei suoi progettisti. Va sottolineato che i DBMS forniscono un insieme piuttosto ampio di funzionalit`a che richiedono molte risorse, e quindi possono garantire efficienza solo a condizione che il sistema informatico su cui installati sia adeguatamente dimensionato. • Per efficacia intendiamo la capacit`a della base di dati di rendere produttive, in ogni senso, le attivit`a dei suoi utenti. Questa definizione e` chiaramente generica e non corrisponde ad un aspetto specifico, dato che un DBMS fornisce vari servizi e funzionalit`a ad utenti differenti. L’attivit`a di progettazione della base di dati e delle applicazioni che la utilizzano mira essenzialmente a garantire una buona efficacia complessiva del sistema. I DBMS sono stati concepiti e realizzati per estendere le funzioni dei file system, fornendo la possibilit`a di accesso condiviso agli stessi dati da parte di pi`u utenti ed applicazioni e garantendo anche molti altri servizi in maniera integrata. I DBMS 127

3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI

Carlo Caligaris, Iacopo Salvarani

utilizzano a loro volta files per la memorizzazione ma i files cos`ı gestiti ammettono organizzazioni dei dati pi`u sofisticate. [3]

3.2.2

Modelli dei Dati: il Modello Relazionale

Un modello dei dati e` un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che essa risulti comprensibile ad un elaboratore. Ogni modello dei dati fornisce meccanismi di strutturazione, analoghi ai costruttori di tipo dei linguaggi di programmazione, che permettono di definire nuovi tipi sulla base di tipi elementari predefiniti e di costruttori di tipo. Il modello relazionale dei dati, attualmente il pi`u diffuso, permette di definire tipi per mezzo del costruttore relazione, che consente di organizzare i dati in insiemi di record a struttura fissa. Una relazione viene spesso rappresentata per mezzo di una tabella, le cui righe descrivono specifici record e le cui colonne corrispondono ai campi del record; l’ordine delle righe e delle colonne e` sostanzialmente irrilevante. Il modello relazionale, definito formalmente agli inizi degli anni Settanta, si e` affermato negli anni Ottanta con una certa lentezza, dovuta all’elevato livello di astrazione: non e` stato immediato individuare relazioni efficienti per strutture significativamente da quelle utilizzate allora. Il modello relazionale quindi si basa sui concetti: relazione e tabella, che sono di natura diversa ma facilmente riconducibili l’uno all’altro. La nozione di relazione proviene dalla matematica e, in particolare, dalla teoria degli insiemi, mentre il concetto di tabella e` semplice ed intuitivo. La presenza contemporanea di un concetto prevalentemente formale e di uno intuitivo e` responsabile del grande successo del modello: infatti, le tabelle risultano naturali e comprensibili anche per gli utenti finali (che le usano nei pi`u svariati contesti per diversi scopi, senza un riferimento diretto alle basi di dati sottostanti). D’altra parte, la presenza di una formalizzazione semplice e precisa ha permesso anche uno sviluppo teorico a supporto del modello con risultati di interesse concreto. Il modello relazionale risponde al requisito dell’indipendenza dei dati, che prevede una distinzione, nella descrizione dei dati, tra livello fisico e livello logico; 128

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

gli utenti che accedono ai dati ed i programmatori che sviluppano le applicazioni fanno riferimento solo al livello logico; i dati descritti al livello logico sono poi realizzati per mezzo di opportune strutture fisiche, ma per accedere ai dati non e` necessario conoscere le strutture fisiche stesse. Infatti, i modelli proposti precedentemente al modello relazionale, includevano espliciti riferimenti alla sottostante struttura realizzativa, attraverso l’uso di puntatori e l’ordinamento fisico dei dati. Il termine relazione viene utilizzato in questa trattazione in tre accezioni che differiscono nella sostanza: 1. relazione matematica secondo la definizione normalmente data nella teoria degli insiemi elementare; 2. relazione secondo la definizione del modello relazionale, che presenta alcune differenze rispetto a quella della teoria degli insiemi; 3. relazione come traduzione dell’inglese relationship, costrutto del modello concettuale Entit`a-Relazione utilizzato per descrivere legami tra entit`a del mondo reale. [3]

3.2.3

Livelli di Astrazione nel DBMS ed Indipendenza dei Dati

Nelle basi di dati esiste una parte sostanzialmente invariante nel tempo, detta schema della base di dati, costituita dalle caratteristiche dei dati, ed una variabile nel tempo, detta istanza o stato della base di dati, costituita dai valori effettivi. lo schema di una relazione e` costituito dalla sua intestazione, cio`e dal nome della relazione seguito dai nomi dei suoi attributi. L’istanza di una relazione e` costituita dall’insieme, variante nel tempo, delle sue righe. Si dice anche che lo schema e` la componente intensionale della base di dati e l’istanza e` la componente estensionale. 129

3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI

Carlo Caligaris, Iacopo Salvarani

La nozione di modello e di schema pu`o essere ulteriormente sviluppata tenendo presenti altre dimensioni nella descrizione dei dati. Esiste una proposta di architettura standardizzata per DBMS articolata su tre livelli, detti rispettivamente esterno, logico ed interno; per ciascun livello esiste uno schema. • Lo schema logico costituisce una descrizione dell’intera base di dati per mezzo del modello logico adottato dal DBMS. • Lo schema interno costituisce la rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione. • Lo schema esterno costituisce la descrizione di una porzione della base di dati di interesse, per mezzo del modello logico. Uno schema esterno pu`o prevedere organizzazioni dei dati diverse rispetto a quelle utilizzate nello schema logico, che riflettono il punto di vista di un particolare utente o insieme di utenti. Pertanto, e` possibile associare ad uno schema logico vari schemi esterni. Nei sistemi pi`u moderni il livello esterno non e` esplicitamente presente, ma e` possibile definire relazioni derivate (o viste). L’architettura a livelli cos`ı definita garantisce l’indipendenza dei dati, la principale propriet`a dei DBMS. In generale, questa propriet`a permette ad utenti e programmi applicativi che utilizzano una base di dati di interagire ad un elevato livello di astrazione, che prescinde dai dettagli realizzativi utilizzati nella costruzione della base di dati. In particolare, l’indipendenza dei dati pu`o essere caratterizzata ulteriormente come indipendenza fisica e logica. • L’indipendenza fisica consente di interagire con il DBMS in modo indipendente dalla struttura fisica dei dati. In base a questa propriet`a e` possibile modificare le strutture fisiche (per esempio le modalit`a di organizzazione dei files gestiti dal DBMS o la allocazione fisica dei files sui dispositivi di memorizzazione) senza influire sulle descrizioni dei dati ad alto livello e quindi sui programmi che utilizzano i dati stessi. 130

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

• L’indipendenza logica consente di interagire con il livello esterno della base di dati in modo indipendente dal livello logico. Per esempio, e` possibile aggiungere uno schema esterno in base alle esigenze di un nuovo utente oppure modificare uno schema esterno senza dover modificare lo schema logico e perci`o la sottostante organizzazione fisica dei dati. Dualmente, e` possibile modificare il livello logico, mantenendo inalterate le strutture esterne (modificandone la definizione in termini delle strutture logiche) di interesse per l’utente. E` importante sottolineare che gli accessi alla base di dati avvengono solo attraverso il livello esterno (che pu`o coincidere con quello logico); e` il DBMS che traduce le operazioni in termini dei livelli sottostanti. L’architettura a livelli e` quindi il meccanismo fondamentale attraverso cui i DBMS realizzano l’indipendenza dei dati. [3]

3.2.4

Definizioni Fondamentali

In questo contesto non riteniamo necessario assumere un livello di dettaglio eccessivamente profondo per quanto riguarda il modello relazionale e le sue interazioni con i DBMS; tuttavia, ci sembra coerente con lo scopo di questa trattazione introdurre alcune definizioni fondamentali e chiarire alcuni concetti di base relativi a questi argomenti in modo da consentire anche ad un neofita di comprendere per sommi capi gli approcci che abbiamo utilizzato.

Definizione 3.1 Una relazione matematica su due insiemi D1 e D2 (chiamati domini della relazione) e` un sottoinsieme di D1 ×D2 dove l’operatore × rappresenta il prodotto cartesiano di due insiemi, ossia l’insieme di tutte le coppie possibili in cui il primo elemento appartiene al primo insieme ed il secondo elemento al secondo insieme. A livello teorico si assume, ove necessario, che le basi di dati siano costituite da relazioni finite su domini eventualmente infiniti. Generalmente le informazioni 131

3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI

Carlo Caligaris, Iacopo Salvarani

che siamo interessati ad organizzare nelle relazioni delle nostre basi di dati hanno una struttura che si pu`o naturalmente ricondurre a quella dei record: una relazione e` sostanzialmente un insieme di record omogenei, cio`e definiti sugli stessi campi. Nel casi dei record, ad ogni campo e` associato un nome, detto attributo, che descrive il ruolo giocato dal dominio stesso. Nella rappresentazione tabellare utilizziamo gli attributi come intestazioni per le colonne. Si noti come l’ordinamento degli attributi risulti irrilevante.

Definizione 3.2 [3] Per formalizzare i concetti, stabiliamo la corrispondenza tra attributi e domini per mezzo di una funzione dom : X → D, che associa a ciascun attributo A ∈ X un dominio dom(A) ∈ D. Poi, diciamo che una t-upla su un insieme di attributi X e` una funzione t che associa a ciascun attributo A ∈ X un valore del dominio dom(A). Possiamo quindi dare la nuova definizione di relazione: una relazione su X e` un insieme di t-uple su X. La differenza tra questa definizione e quella tradizionale di relazione matematica risiede solo nella definizione di t-upla: nella relazione matematica abbiamo n−uple in cui elementi sono individuati per posizione, mentre nelle t-uple della nuova definizione gli elementi sono individuati per mezzo degli attributi, cio`e secondo una notazione posizionale.

3.2.5

Relazioni e Basi di Dati

La base di dati nella Figura 3.2.5 mostra una delle caratteristiche fondamentali del modello relazionale, che viene spesso indicata dicendo che esso e` basato sui valori: i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle t-uple. Va notato che gli altri modelli realizzano le corrispondenze in modo esplicito attraverso puntatori e vengono pertanto detti modelli basati su record e puntatori. 132

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

Figura 3.3: Una base di dati relazionale La Figura 3.2.5 rappresenta la stessa base di dati della Figura 3.2.5 con puntatori al posto dei riferimenti realizzati tramite valori.

Figura 3.4: Una base di dati non relazionale con puntatori Rispetto ad un modello basato su record e puntatori, il modello relazionale basato sui valori presenta diversi vantaggi: 133

3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI

Carlo Caligaris, Iacopo Salvarani

• esso richiede di rappresentare solo ci`o che e` rilevante dal punto di vista dell’applicazione (dell’utente); i puntatori sono qualcosa di aggiuntivo, legato ad aspetti realizzativi; nei modelli con puntatori, il programmatore delle applicazioni fa riferimento a dati che non sono significativi per l’applicazione; • la rappresentazione logica dei dati (costituita dai soli valori) non fa alcun riferimento a quella fisica, che pu`o anche cambiare nel tempo: il modello relazionale permette quindi l’indipendenza fisica dei dati; • essendo tutta l’informazione contenuta nei valori, e` relativamente semplice trasferire i dati da un contesto ad un altro (per esempio se si deve trasferire una base di dati da un calcolatore ad un altro); in presenza di puntatori l’operazione e` pi`u complessa hanno un significato locale, relativo al singolo sistema, che non e` sempre immediato esportare. In una base di dati relazionale, a livello fisico, i dati possono essere rappresentati secondo modalit`a che prevedono l’uso dei puntatori. La differenza, rispetto ai modelli basati su puntatore, e` nel fatto che qui i puntatori non sono visibili a livello logico. Inoltre, nei sistemi di basi di dati ad oggetti, che rappresentano una delle direzioni di evoluzione delle basi di dati, vengono introdotti gli identificatori di oggetto, che, pur ad un livello di astrazione pi`u alto, presentano alcune delle caratteristiche dei puntatori. [3]

3.2.6

Linguaggi ed Utenti delle Basi di Dati

I DBMS sono caratterizzati, da un lato, dalla presenza di molteplici linguaggi per la gestione dei dati; dall’altro, dalla presenza di molteplici tipologie di utenti.

Linguaggi per Basi di Dati Su un DBMS e` possibile specificare operazioni di vario tipo, in particolare quelle relative agli schemi ed alle istanze. Al riguardo, i linguaggi per basi di dati si dividono in due categorie: 134

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

• linguaggi di definizione dei dati o Data Definition Language (DDL), utilizzati per definire gli schemi logici, esterni e fisici e le autorizzazioni per l’accesso; • linguaggi di manipolazione dei dati o Data Manipulation Language (DML), utilizzati per l’interrogazione e l’aggiornamento delle istanze di basi di dati. Il linguaggio SQL, da noi estensivamente utilizzato, presenta in forma integrata le funzionalit`a di entrambe le categorie. L’accesso ai dati pu`o essere effettuato con diverse modalit`a: • tramite linguaggi testuali interattivi, per esempio il linguaggio SQL; • tramite comandi simili a quelli interattivi immersi in linguaggi di programmazione tradizionali; • tramite comandi simili a quelli interattivi immersi in linguaggi di sviluppo ad hoc, spesso con funzionalit`a specifiche e varianti da sistema a sistema. • tramite interfacce che permettono di sintetizzare interrogazioni senza usare un linguaggio testuale Varie categorie di persone possono interagire con una base di dati o con un DBMS. L’amministratore della base di dati e` il responsabile della progettazione, controllo ed amministrazione della base di dati. I progettisti e programmatori di applicazioni definiscono e realizzano i programmi che accedono alla base di dati. Gli utenti utilizzano la base di dati per le proprie attivit`a. Gli utenti finali utilizzano transazioni, cio`e programmi che realizzano attivit`a predefinite e di frequenza elevata, con poche eccezioni previste a priori. Gli utenti casuali in grado di impiegare linguaggi interattivi possono invece essere specializzati ed interagire frequentemente con la base di dati con interrogazioni non predefinite. [3]

3.2.7

Vantaggi e Svantaggi dei DBMS

In conclusione, possiamo riassumere come segue i vantaggi derivanti dall’utilizzo dei DBMS. 135

3.2. LE BASI DI DATI ED I SISTEMI DI GESTIONE DI BASI DI DATI

Carlo Caligaris, Iacopo Salvarani

• I DBMS permettono di considerare i dati come una risorsa comune di una organizzazione, a disposizione (con opportune forme di controllo) di tutte le sue componenti. • La base di dati fornisce un modello unificato e preciso della parte del mondo reale di interesse per l’organizzazione, utilizzabile nelle applicazioni attuali e, con possibili estensioni, in applicazioni future. • Con l’uso di un DBMS e` possibile un controllo centralizzato dei dati, che pu`o essere arricchito da forme di standardizzazione e beneficiare di economie di scala. • La condivisione permette di ridurre ridondanze ed inconsistenze. • L’indipendenza dei dati, caratteristica fondamentale dei DBMS, favorisce lo sviluppo di applicazioni pi`u flessibili e facilmente modificabili. L’uso dei DBMS comporta anche alcuni aspetti negativi, o almeno delicati, fra cui i seguenti. • I DBMS sono prodotti costosi, complessi ed abbastanza diversi da molti altri strumenti informatici. La loro introduzione comporta quindi notevoli investimenti, diretti (acquisto del prodotto) ed indiretti (acquisizione delle risorse hardware e software necessarie, conversione delle applicazioni, formazione del personale). • I DBMS forniscono, in forma integrata, una serie di servizi, che sono necessariamente associati ad un costo. Nei casi in cui alcuni di questi servizi non siano necessari, e` difficile scorporare quelli effettivamente richiesti dagli altri, e ci`o pu`o comportare una riduzione di prestazioni. [3]

136

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

3.3

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

Oracle9i

Il centro Infoblu della Societ`a Autostrade per l’Italia utilizza un gestore di database relazionali tra i pi`u noti e performanti: Oracle9i. Vediamo alcuni concetti legati al software Oracle ed a questa versione in particolare.

3.3.1

Introduzione ad Oracle9i

Oracle e` il fornitore leader nel mondo di software per l’information management ma e` conosciuto soprattutto per i suoi prodotti di gestione dei database relazionali (in particolar modo la versione 9i). Questo software e` stato il primo a supportare l’SQL (Structured Query Language), che ora e` uno standard del settore. Come detto, Oracle e` un DBMS, ovvero un programma che consente ad uno o pi`u utenti di computer di accedere ai dati nei database. In particolare, siamo di fronte ad un RDBMS, cio`e un programma che consente di creare, aggiornare ed amministrare un database relazionale. [48] Oracle e` salita alla posizione di conclamata leadership da origini molto umili che risalgono agli anni Settanta. Con prodotti come Oracle8, Oracle8i ed Oracle9i, Oracle ha aggiunto maggiore potenza espressiva alla sua gi`a solida base. Oracle8, lanciato nel 1977, ha messo a disposizione degli utenti un livello di performance clamorosamente superiore a tutti gli altri dell’epoca. Oracle8i, datato 1999, ha aggiunto una nuova serie di sviluppi in grado di rendere questo software un punto focale nel nuovo mondo dell’informatica basata su Internet. Lo Sviluppo dei Database Relazionali Il concetto di database relazionale e` stato inizialmente introdotto nel 1970 dal Dott. Edgar F. Codd in una ricerca svolta per conto dell’IBM ed intitolata System R4 Relational Databases. Inizialmente, non era affatto facile capire se un sistema basato su questi concetti avrebbe potuto ambire al successo commerciale. Nonostante ci`o, nel 1979, venne fondata la RSI (Relational Software Incorporated) che mise sul mercato Oracle V.2, il primo database relazionale al mondo. Entro 137

3.3. ORACLE9I

Carlo Caligaris, Iacopo Salvarani

il 1985, Oracle poteva contare su pi`u di 1000 clienti operanti con database relazionali. Abbiamo gi`a visto in 3.2.5 i motivi che hanno portato questo modello a dominare la scena mondiale. Come Oracle Crebbe Nel 1983, RSI e` stata rinominata Oracle Corporation per evitare confusione con un competitor chiamato RTI. Al tempo, gli sviluppatori decisero di creare una versione di Oracle portabile, in grado di funzionare non solo su sistemi Digital VAX/VMS, ma anche su Unix ed altre piattaforme. Nel 1985 Oracle ha reso nota la possibilit`a di funzionare su 30 piattaforme differenti (che nel frattempo sono arrivate a 70). Alcune di queste piattaforme, al giorno d’oggi non sono altro che delle curiosit`a storiche mentre altre sono tuttora utilizzabili. Oggi, Oracle ha esteso la sua portabilit`a a sistemi come Microsoft Windows NT/2000/XP e Linux per conquistare una importante fetta di mercato anche su queste piattaforme. Fin dalla met`a degli anni Ottanta, il modello di sviluppo si e` evoluto da applicazione per database sui server ad una architettura client/server orientata all’utilizzo di Internet per accedere alla base di dati tramite un browser. A partire dalla versione 8i Oracle ha messo a disposizione anche una JVM integrata nel database. Oracle ha centrato lo sviluppo intorno ad un singolo nucleo di codice sorgente fin dal 1983. Ogni versione successiva del database include alcune parti di codice sorgente specifiche per il sistema, mentre gran parte del codice e` comune tra le varie implementazioni. Le interfacce con cui gli utenti, gli sviluppatori e gli amministratori hanno a che fare sono coerenti attraverso le varie versioni. La Famiglia di Prodotti Oracle La famiglia dei prodotti messi a disposizione da Oracle comprende 4 differenti tipi di database. 1. Oracle Server/Standard Edition: la versione di Oracle per un server che deve avere a che fare con un numero limitato di utenti e con una banca dati di piccole dimensioni. 138

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

2. Oracle Enterprise Edition: la versione di Oracle per un grande numero di utenti e per un grande database con componenti avanzate per estensibilit`a, prestazione e gestione. E` la versione da noi utilizzata. 3. Oracle Personal Edition: versione di Oracle per un singolo utente, tipicamente usato per lo sviluppo di applicazioni da utilizzare su altre versioni di Oracle. 4. Oracle Lite: motore di piccole dimensioni per consentire il lavoro su dispositivi portatili come i notebooks. [20]

3.3.2

Componenti per lo Sviluppo di Applicazioni su Database

Le applicazioni sono spesso costruite sulle fondamenta del sistema di base di dati di Oracle. Programmazione verso il Database Oracle offre ai programmatori diversi linguaggi e diverse interfacce per consentire l’accesso e la manipolazione dei dati. Il primo linguaggio naturalmente supportato e` l’SQL (si veda 3.4) che mette a disposizione funzioni di base per la manipolazione dei dati, il controllo delle transazioni ed il recupero dei dati dalla banca dati. Molti utenti, utilizzano interfacce che nascondono comandi SQL semplificandone l’utilizzo. L’SQL viene esteso in Oracle in PL/SQL, un linguaggio procedurale comunemente usato per implementare moduli applicativi contenenti elementi logici di programmazione. PL/SQL pu`o essere usato per costruire stored procedures e triggers, controlli in loop ed istruzioni condizionali oltre ad una gestione degli errori. Le procedure PL/SQL possono essere compilate e memorizzate all’interno del database. I blocchi PL/SQL sono eseguibili anche via SQL*Plus, uno strumento interattivo fornito con tutte le versioni di Oracle. Con Oracle8isi e` introdotto l’uso di Java come linguaggio procedurale appoggiato ad una JVM interna al database (inizialmente chiamata JServer). [20] 139

3.3. ORACLE9I

3.3.3

Carlo Caligaris, Iacopo Salvarani

Componenti di Connessione del Database

La connessione tra il client ed il server del database e` una componente chiave dell’architettura globale di un sistema di computazione. La connessione al database e` responsabile di tutte le comunicazioni tra una applicazione ed i dati che essa usa. Oracle include un numero di strumenti per stabilire e calibrare le connessioni al database. Gli utenti di Oracle si collegano al database tramite una connessione di rete. L’interfaccia di rete utilizzata da Oracle e` Oracle Net; questa pu`o essere usata con una ampia variet`a di protocolli di rete, tra cui il pi`u utilizzato TCP/IP. Oracle Names consente ai clients di collegarsi al server senza un file di configurazione per ogni utente. Questo consente di ridurre il carico del lavoro di manutenzione, dal momento che una modifica nella topologia della propria rete non richiede un corrispondente cambio nei files di configurazione su ogni macchina client. La stessa funzione, ma con protocolli diversi da Oracle Net, e` svolta da Oracle Internet Directory.

Figura 3.5: Concentratori per un grande numero di utenti [20] Ogni connessione al database sfrutta le risorse di rete in modo intensivo, al punto di poter influenzare le performance globali di una applicazione per databa140

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

se. Il Connection Manager di Oracle (Figura 3.5) riduce il numero di connessioni di rete verso il database tramite l’utilizzo di concentratori che eseguono un multiplexing per implementare connessioni multiple su una singola connessione di rete. Questa tecnica consente grandi benefici nel caso in cui molti utenti siano attivi contemporaneamente. Il Connection Manager consente anche di provvedere ad una connettivit`a multiprotocollo nel caso in cui client e server si servano di protocolli differenti. La connessione di rete e` resa sicura tramite un meccanismo di criptatura dei dati. [20]

3.3.4

Oracle9iApplication Server

Il successo delle applicazioni via Internet o Intranet ha condotto ad uno sviluppo da una architettura di tipo client/server ad una che viene generalmente indicata con il termine three tier (tre livelli). Il modello three-tier si struttura su tre livelli. Il primo livello, quello dei client che eseguono le richieste e gestiscono l’interfaccia con l’utente, resta sostanzialmente lo stesso del modello client-server, ma la parte server viene suddivisa in due livelli, introducendo un middle-tier, su cui deve appoggiarsi tutta la logica di analisi delle richieste dei client per ottimizzare l’accesso al terzo livello, che si limita a fornire i dati dinamici che verranno usati dalla logica implementata nel middle-tier per eseguire le operazioni richieste dai client. In questo modo si pu`o disaccoppiare la logica dai dati, replicando la prima, che e` molto meno soggetta a cambiamenti ed evoluzioni, e non soffre di problemi di sincronizzazione, e centralizzando opportunamente i secondi. In questo modo si pu`o distribuire il carico ed accedere in maniera efficiente i dati. [36] Oracle9iAS (Application Server) funziona da middle-tier. Nella Figura 3.6 vediamo le diverse tipiche connessioni che si possono avere tra un client ed un server in una architettura Oracle. 141

3.3. ORACLE9I

Carlo Caligaris, Iacopo Salvarani

Figura 3.6: Tipiche connessioni di un database Oracle [20]

3.3.5

Confronto con Altri RDBMS

Esistono altri sistemi di gestione dei database forse ancora pi`u famosi di Oracle: in particolare ci riferiamo a Microsoft Access e Microsoft SQL Server. MS Access non e` un vero sistema di gestione di database relazionali. Fornisce effettivamente le funzioni di un database relazionale, dal momento che memorizza i dati in tabelle relazionali, ma non e` un sistema di gestione. Infatti ha una scarsa implementazione dei concetti di transazioni multi-utente, di sicurezza multi-utente e di altre caratteristiche che definiscono un gestore di database. D’altra parte MS Access e` stato progettato dall’inizio come un database per un singolo utente. [35] SQL Server 2000 lavora solo su piattaforme Windows mentre Oracle lavora anche su piattaforme alternative come Unix Linux Intel e Sun Solaris. E` molto difficile fare un confronto di performance tra SQL Server 2000 ed Oracle 9i. Questa caratteristica viene influenzata da fattori fortemente dipendenti dall’esperienza di chi sviluppa ed amministra il database. A parit`a di piattaforma, SQL Server 2000 pu`o vantare un valore del TPC-C pi`u alto, mentre Oracle si rende preferibile sulle piattaforme alternative. Il TPC (Transaction Processing Performance Council) e` una organizzazione che determina le transazioni tipiche utilizzate in sistemi di controllo di inventario, sistemi di prenotazione nelle linee aeree e sistemi bancari ed alcune regole generali che queste transazioni dovrebbero soddisfare. Lo scopo 142

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

e` produrre benchmarks che misurino le performance di un database nel processare transazioni in una certa unit`a di tempo. Il TPC-C e` il pi`u popolare tra questi valori di confronto. [8]

143

3.4. SQL

3.4 3.4.1

Carlo Caligaris, Iacopo Salvarani

SQL Introduzione ad SQL

SQL e` il linguaggio di riferimento per le basi di dati relazionali. Il nome SQL inizialmente rappresentava l’acronimo di Structured Query Language, ma lo standard specifica ora che SQL deve essere considerato come un nome proprio. SQL e` ben pi`u di un linguaggio per scrivere interrogazioni. Contiene, infatti, al suo interno, sia le funzionalit`a di un Data Definition Language sia quelle di un Data Manipulation Language. [3]

3.4.2

Standardizzazione dell’SQL

La diffusione di SQL e` dovuta in buona parte alla intensa opera di standardizzazione dedicata a questo linguaggio, svolta principalmente nell’ambito degli organismi ANSI (American National Standards Institute, l’organismo nazionale statunitense degli standard) ed ISO (l’organismo internazionale che coordina i vari organismi nazionali). Gran parte dei produttori del settore hanno avuto modo di partecipare al processo decisionale. Il processo di standardizzazione ha avuto inizio nella prima met`a degli anni Ottanta e continua tuttora. Sono state cos`ı prodotte nel tempo diverse versioni, sempre pi`u complesse e sofisticate, dello standard del linguaggio. La prima definizione di uno standard per il linguaggio SQL e` stata emanata nel 1986 dall’ANSI. Questo primo standard possedeva gi`a gran parte delle primitive di formulazione di interrogazioni, mentre offriva un supporto limitato per la definizione e manipolazione degli schemi e delle istanze. Sono state poi sviluppare versioni successive come SQL-92 ed SQL:1999; quest’ultimo e` un linguaggio estremamente complesso ed e` molto difficile trovare un sistema commerciale che metta a disposizione tutte le funzionalit`a previste dal linguaggio. Analizzando con cura i sistemi relazionali, si osserva che ciascuno di essi offre in effetti piccole differenze nella implementazione del linguaggio SQL; le differenze emergono soprattutto quando si conforntano fra di loro le funzionalit`a innovative. Invece, per quanto riguarda gli aspetti pi`u consolidati del linguaggio, 144

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

l’adesione allo standard e` maggiore e questo permette agli utenti di dialogare in SQL standard con sistemi completamente diversi, come possono essere l’implementazione di un DBMS per un personal computer monoutente ed una base di dati su mainframe su cui si appoggia il sistema informativo di una grossa azienda. [3] In questo contesto non scriveremo nulla sui comandi dell’SQL, ma solo informazioni di alto livello riguardanti questo linguaggio.

3.4.3

Interrogazioni in SQL

La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le interrogazioni in modo dichiarativo, ovvero si specifica l’obiettivo dell’interrogazione e non il modo in cui ottenerlo. In ci`o SQL segue i principi del calcolo relazionale e si contrappone a linguaggi di interrogazione procedurali, come l’algebra relazionale, in cui l’interrogazione specifica i passi da compiere per estrarre le informazioni dalla base di dati. L’interrogazione SQL per essere eseguita viene passata all’ottimizzatore di query (query optimizer), un componente del DBMS il quale analizza l’interrogazione e formula a partire da questa un’interrogazione equivalente nel linguaggio procedurale interno del sistema di gestione di basi di dati. Questo linguaggio procedurale e` nascosto all’utente. Per questo, chiunque scriva interrogazioni in SQL pu`o trascurare gli aspetti di traduzione ed ottimizzazione. Il grande sforzo dedicato allo sviluppo di tecniche di ottimizzazione ha permesso di costruire strumenti che sono in grado di produrre traduzioni molto efficienti per la maggior parte dei DBMS relazionali. Esistono in generale molti modi diversi per esprimere la stessa interrogazione in SQL: il programmatore dovr`a effettuare una scelta basandosi non sull’efficienza, bens`ı su caratteristiche come la leggibilit`a e la modificabilit`a dell’interrogazione. SQL agevola cos`ı il lavoro del programmatore permettendogli di descrivere le interrogazioni in un modo astratto e di alto livello.

145

3.5. JDBC

3.5 3.5.1

Carlo Caligaris, Iacopo Salvarani

JDBC Cosa Significa JDBC?

JDBC (Java DataBase Connectivity e` una interfaccia standard per connettere Java con i databases relazionali. Lo standard JDBC e` stato definito da Sun Microsystems con la possibilit`a per tutti gli utilizzatori individuali di implementare ed estendere lo standard con i propri drivers JDBC. Si pu`o usare JDBC per eseguire queries ed updates su tabelle dove, per esempio, il numero ed il tipo di colonne non sono noti fino al runtime. Questa possibilit`a si chiama SQL dinamico. JDBC consente di utilizzare istruzioni di SQL dinamico in programmi Java. Evidentemente, non ci sono analisi o controlli delle istruzioni SQL: se queste fossero sbagliate causerebbero errori durante il runtime. [47] Nel software da noi progettato viene spesso utilizzata questa propriet`a di JDBC: ad esempio, uno dei nostri programmi genera a runtime una query in cui si richiede una data dipendente dall’istante di lancio del programma. JDBC fornisce un insieme di classi di alto livello che consentono a chiunque conosca SQL e Java di scrivere applicazioni operanti su database. Componenti di networking e protocolli del database sono trasparenti al programmatore dell’applicazione; questi sono gestiti da classi interne ai drivers JDBC. Le specifiche JDBC sono concordate all’interno della comunit`a Java ed ogni concessionario di database deve provvedere ad implementare queste funzioni per rendere il suo prodotto fruibile dagli utenti. [40]

3.5.2

Gli Oracle JDBC Drivers

Oracle fornisce 4 diversi JDBC drivers. JDBC Thin Driver Il JDBC Oracle Thind Driver e` un driver al 100% puro Java e quindi e` totalmente indipendente dalla piattaforma su cui viene utilizzato. Non richiede alcuna componente software lato client aggiuntiva oltre al client di Oracle e comunica con il 146

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

server utilizzando TTC, un protocollo sviluppato da Oracle per accedere all’Oracle RDBMS (Relational DataBase Management System).

JDBC OCI Driver Questo driver deve essere utilizzato per applicazioni Java lato client, richiede l’installazione del client di Oracle e dipende dalla piattaforma Oracle su cui deve funzionare. Questo driver e` scritto con una combinazione di Java e C e converte le richieste JDBC in chiamate all’Oracle Call Interface (OCI) usando metodi nativi per chiamare punti di accesso in C. Queste chiamate sono spedite attraverso la Oracle Net fino al server. OCI e` una Application Programming Interface (API) che consente di creare applicazioni che utilizzano procedure native o chiamate di funzioni di un linguaggio di terza generazione per accedere al server di un database di Oracle e controllare tutte le fasi di esecuzione di una istruzione SQL. Il driver OCI e` progettato per costruire applicazioni in grado di sostenere un grande numero di utenti in sicurezza.

JDBC Server-Side Thin Driver Questo driver le stesse funzionalit`a dell’omonima versione client-side ma lavora all’interno di una base di dati Oracle ed accede ad un database remoto. Questo consente anche di accedere ad un server dall’interno di un altro. Questo driver pu`o essere usato indifferentemente dal server e dal client.

JDBC Server-Side Internal Driver Il driver interno Oracle JDBC server-side supporta ogni tipo di codice Java che funzioni dall’interno di un database, come ad esempio in una stored procedure, e debba accedere al database stesso. Questo driver consente alla JVM di comunicare direttamente con il motore SQL. 147

3.5. JDBC

Carlo Caligaris, Iacopo Salvarani

3.5.3

La Connessione da Java ad Oracle

Nei nostro lavoro abbiamo utilizzato molto spesso la possibilit`a di connessione al database Oracle e lo abbiamo fatto usando il thin driver; riportiamo si seguito un esempio della procedura seguita.

Estratto 3.1 .... Connection c = connect (”oracle . jdbc . driver . OracleDriver” , ” j d b c : o r a c l e : t h i n : @SchemaName : 1 5 2 1 : DBName” , ”....”, ” . . . . ”); .... 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 , S t r i n g dbURL , S t r i n g dbUser , S t r i n g dbPwd ) throws ClassNotFoundException , SQLException { C l a s s . forName ( D b D r i v e r ) ; C o n n e c t i o n dbCon= n u l l ; dbCon = DriverManager . g e t C o n n e c t i o n ( dbURL , dbUser , dbPwd ) ; r e t u r n dbCon ; }

148

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

3.6

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

XML

Nel corso del nostro lavoro, abbiamo spesso incontrato la necessit`a di comunicare dati da un programma ad un altro. Per questo, abbiamo scritto questi dati migranti su files XML, un linguaggio universalmente accettato per lo scambio di informazioni.

3.6.1

Introduzione ad XML

Apparentemente, l’XML (eXtensible Markup Language) sembra soltanto un altro formato per la serializzazione dei dati, simile a tanti altri formati con i quali si e` lavorato in passato. Il suo successo non e` per`o legato solamente alla sua semplicit`a, ma soprattutto alla sua estensibilit`a e flessibilit`a. XML e` infatti basato sui concetti di apertura e libert`a. In termini di libert`a, esso non obbliga ad utilizzare una particolare API o uno specifico modello di documento (anche se esistono raccomandazioni a riguardo), e quindi gli sviluppatori sono liberi di decidere come meglio programmare documenti XML all’interno del loro sistema. In un mondo dove lo scambio di informazioni tra applicazioni eterogenee sta diventando una caratteristica sempre pi`u comune, lo sviluppatore pu`o utilizzare l’XML come uno standard de facto che rende possibile attraversare i confini solitamente rappresentati dal sistema su cui si sta lavorando. La storia dell’XML ha le sue radici nei primi anni Sessanta quando vennero introdotti i linguaggi con marcatori, come l’HTML. Fin dall’inizio della storia dell’informatica, gli sviluppatori sono stati sempre alla ricerca del miglior modo per strutturare le informazioni. Praticamente ogni applicazione(da quelle di gestione database, ai word processor, ai software ingegneristici) hanno utilizzato dei formati binari personalizzati per strutturare le informazioni di cui avevamo bisogno. A causa di ci`o, le informazioni generate da un’applicazione non potevano essere utilizzate da un’altra applicazione senza prima venire trasformate. Nei primi anni Sessanta, ai tempi delle telescriventi e delle macchine da scrivere, quando si volevano effettuare delle correzioni ai testi prodotti dai primi elaboratori, venivano utilizzati degli speciali simboli, chiamati marcatori, che apposti sui fogli prodotti 149

3.6. XML

Carlo Caligaris, Iacopo Salvarani

dalle stampanti, servivano, appunto, a marcare le indicazioni su come formattare una specifica riga, una parola o un paragrafo. Il gruppo di simboli utilizzati divenne molto presto famoso come markup language. A quei tempi, c’erano fondamentalmente due tipi di linguaggi, quelli specifici per le indicazioni sul layout e quelli generici per l’indicazione sulla struttura del documento. A questo proposito, il formato RTF (Rich Text Format) e` un moderno esempio di specifiche di formattazione. Al contrario dei linguaggi specifici per la formattazione dei testi, i linguaggi di markup generici non si occupano dei dettagli della formattazione quanto della struttura del documento (resta inteso che per ottenerne una specifica rappresentazione questi dati dovranno essere trasformati). Ci`o fa s`ı che la struttura del documento possa essere codificata in un formato che ne facilita lo scambio tra i computer. Questa scoperta apr`ı la strada al successo dei linguaggi di markup generici che ebbe, appunto, inizio nel corso degli anni Sessanta. [12]

3.6.2

HTML

L’HTML e` un markup language che fu inizialmente sviluppato da uno studioso del CERN ed offre uno specifico vocabolario di marcatori per formattare, strutturare, ma soprattutto collegare tra loro i documenti. La possibilit`a di effettuare link tra i documenti ha permesso la creazione di una rete di documenti collegati tra loro in grado di sfruttare il potenziale di Internet. Nacque cos`ı il World Wide Web (WWW). Furono velocemente sviluppati software in grado di visualizzare ed elaborare documenti HTML (i cosiddetti browser), e a partire dal 1993, anno della comparsa di Mosaic (il primo browser sviluppato dall’NCSA) l’interesse per il WWW inizi`o ad esplodere. Grazie alla sua semplicit`a, l’HTML fu universalmente adottato ed un grande numero di pagine web iniziarono ad essere disponibili tanto che a tutt’oggi il formato HTML e` quello pi`u usato al mondo. Il comitato W3C (World Wide Web Consortium) nato nel 1994 al MIT/CERN sviluppa e raccomanda tutte le specifiche dell’HTML per favorirne e governarne l’evoluzione e lo sviluppo. Il vocabolario implementato dall’HTML e` tuttavia limitato alla formattazione ed al collegamento di documenti e per questo motivo non pu`o essere utilizzato al di fuori dell’ambito dei browser web. 150

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

L’XML fu proposto al W3C nel 1996 da Jon Bosak, che a quei tempi lavorava in Sun, e che e` considerato il padre di questo linguaggio. La sintassi consente di sviluppare un vocabolario di marcatori personalizzati. Oggi XML e` usato in una vasta gamma di applicazioni distribuite che richiedono un alto livello di interoperabilit`a. [12]

3.6.3

Che Cosa E` l’XML

L’XML e` un metalinguaggio che permette di creare linguaggi di marcatura personalizzati per l’interscambio di dati tra siti web ed applicazioni, anche basati su sistemi differenti. XML usa dei marcatori per definire la struttura delle informazioni (elementi): l’eventuale aggiunta di metadati (attributi) pu`o ulteriormente definire le specifiche delle informazioni stesse. [12]

Figura 3.7: Un esempio di file XML da noi utilizzato

3.6.4

Lo Stack di Protocolli XML

Fino a pochi anni fa i programmatori che parlavano di XML si riferivano alle specifiche XML 1.0. Oggi, XML e` composto da pi`u parti rispetto alla specifica nata nel 1998 e quando i programmatori si riferiscono ad esso, intendono l’intera famiglia di specifiche. Queste vengono considerate come se fossero degli strati 151

3.6. XML

Astratto

Concreto

Carlo Caligaris, Iacopo Salvarani

Classi ed oggetti

Specifico dell’applicazione

Tipi ed istanze

XML Schema

Voci strutturali

XML Information Set

Elementi ad attributi

XML 1.0 + Namespace

Entit`a e documenti

XML 1.0

Files e pacchetti

Specifico dell’OS e del protocollo

Settori e streams di dati Specifico dell’hardware Tabella 3.1: Lo stack di protocolli XML

(layers) sovrapposti, dato che le specifiche pi`u recenti sono definite in termini di specifiche precedenti. Questo meccanismo e` simile allo stack di protocolli di rete (ad esempio il TCP/IP) progettato in termini di strati isolati tra loro.

Al pari dei protocolli di rete, il protocollo XML ha sette distinti livelli. I due strati di livello pi`u alto definiscono il sistema dei tipi XML nei termini di modello di dati astratto sottostante; essi definiscono inoltre in che modo le classi e gli oggetti specifici dell’applicazione debbano essere mappati nei tipi XML. Lo strato chiamato Infoset definisce l’XML in termini di un modello di dati astratto che focalizza l’attenzione sulla strutturazione logica di un documento XML. In altre parole, l’Infoset non si occupa di come debbano essere serializzati i dati per modellare un documento XML logico. XML 1.0 ed i namespace servono a definire i documenti XML in termini di elementi ed attributi. Lo strato successivo, definito come XML 1.0, stabilisce come sono costituiti fisicamente i documenti XML da entit`a come files e pacchetti. Il sistema operativo ed i protocolli di rete rappresentano lo strato successivo in quanto offrono l’astrazione (in termini di files e pacchetti) che incapsula la complessit`a relativa all’interfacciamento con i dispositivi hardware. Il livello hardware non e` altro che un insieme di settori e flussi di dati. [12]

152

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

3.6.5

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

Specifiche XML

XML 1.0 + Namespace Una delle grandi potenzialit`a del linguaggio XML e` la possibilit`a di leggere e scrivere XML da qualsiasi piattaforma. Per ottenere questo risultato, per`o, si deve costruire il documento XML seguendo una sintassi ben definita da due specifiche: XML 1.0 ed i namespaces. Entrambe si occupano della rappresentazione lessicale e binaria delle informazioni in un documento XML. In maniera particolare esse hanno a che fare con: • la sintassi per l’assegnazione dei nomi degli elementi e degli attributi; • la sintassi per la strutturazione delle informazioni utilizzando gli elementi e gli attributi; • la sintassi per altri costrutti dell’XML come direttive di elaborazione, commenti, etc.; • le modalit`a di composizione di documenti logici da entit`a fisiche; • il set di caratteri usato nel documento; • l’utilizzo di codifiche differenti in fase di serializzazione; • l’associazione al documento di risorse binarie come immagini, files audio ed altro. Infoset L’Infoset definisce il modello astratto dei dati e rappresenta il vero cuore dell’XML. Esso codifica il modello di dati astratto dell’XML, che altre specifiche possono utilizzare per costruire documenti ben formati (well formed) e definisce i differenti costrutti che servono per creare un documento XML e le relazioni tra di essi. Per esempio, l’Infoset stabilisce che ogni documento deve contenere al suo interno le informazioni sotto forma di un singolo elemento figlio. Questo, a sua volta, pu`o avere zero o pi`u figli ordinati (anche di tipo diverso) ed un insieme di 153

3.6. XML

Carlo Caligaris, Iacopo Salvarani

attributi non ordinati. L’Infoset stabilisce inoltre che ogni elemento ed attributo debbano contenere due parti di informazione: il nome locale ed il namespace URI. Nell’Infoset non c’`e nulla che abbia a che fare con la sintassi XML o con i dettagli della serializzazione, in quanto esso e` completamente astratto. Infatti, XML 1.0 + Namespace e` solo uno dei possibili formati di serializzazione dell’Infoset. [12]

3.6.6

Le Interfacce di Programmazione

Uno dei motivi di successo dell’XML e` costituito dal fatto che non obbliga il programmatore ad utilizzare una specifica interfaccia di programmazione. Nel corso degli anni sono state sviluppate numerose API, che si sono avvicendate nel panorama della programmazione dell’Infoset dell’XML, ma allo stato attuale due sono le pi`u comuni, quella che offre una vista a cursore e quella che fornisce una vista del documento nella sua interezza.

Interfaccia per lo Streaming dell’Infoset (parser) L’analisi (parsing) di un file XML in modalit`a a cursore, sia in lettura che in scrittura, viene offerta da una interfaccia di streaming per l’Infoset. E` bene sottolineare che allo stato attuale non esiste uno standard che supporti nessuna delle modalit`a di streaming e quindi ogni produttore si e` creato la sua particolare implementazione. L’implementazione dell’interfaccia di streaming si divide fondamentalmente in due metodologie ben distinte: pull parsing e push parsing. In un pull parser e` il codice dell’applicazione che esplicitamente riceve gli eventi dal parser. Solitamente e` presente un ciclo nel quale il codice richiede l’evento successivo dal parser. Poich´e e` l’applicazione che controlla il parser, si possono scrivere programmi nei quali vengono gestiti specifici eventi e magari completamente ignorati altri, che non sono di interesse per l’applicazione. In un push parser gli eventi vengono spinti verso il client. Tipicamente, un parser di tipo push richiede che l’applicazione registri un metodo di gestione per ciascun evento. Durante la lettura del file da parte del parser, per ogni evento viene 154

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

richiamato il metodo appropriato ed il controllo rimane al parser fino al termine della lettura del documento.

Interfaccia per la Navigazione dell’Infoset (DOM) Spesso si ha bisogno di leggere (o scrivere) un file XML in maniera non sequenziale, e si potrebbe avere la necessit`a, per esempio, di invertire l’ordine degli elementi. Il DOM (Document Object Model) e` una interfaccia per la manipolazione dei contenuti e della struttura di un file XML in modalit`a object-oriented. Esso definisce un modo standard per la manipolazione di documenti XML con operazioni accesso agli elementi, l’applicazione di stili, il caricamento in memoria, il salvataggio su disco ed altro ancora. Il DOM rappresenta il documento XML come un albero di oggetti. Ogni oggetto nell’albero e` chiamato nodo. Esistono vari tipi di nodo che rispecchiano praticamente tutte le componenti di cui e` costituito un documento XML, tra cui Document, Element, Attr. Alcuni nodi possono avere un sottonodo ed e` possibile anche specificare il tipo dello stesso. Il DOM e` indipendente dal linguaggio e dalla piattaforma utilizzata, il che significa che pu`o essere utilizzato con qualsiasi linguaggio o framework o sistema operativo ed esiste praticamente un’implementazione di DOM in ogni linguaggio di programmazione. Essendo un’API molto potente, DOM appare come la scelta preferenziale da applicare in qualsiasi scenario, ma in realt`a non e` detto che sia sempre la scelta migliore. Infatti, quando un’applicazione deve lavorare con documenti di grosse dimensioni, il sovraccarico dovuto all’implementazione del modello DOM pu`o essere un grosso problema e la modalit`a parsing diventa un’alternativa molto interessante. Grazie alla sua caratteristica di cursore, viene letto un solo nodo per volta e, soprattutto nel modello pull, non si e` nemmeno costretti a prenderlo in considerazione se rappresenta un nodo non rilevante per l’applicazione. E` anche interessante notare che quasi tutte le implementazioni di DOM utilizzano le classi di parsing per il caricamento e la scrittura dei file da/verso il disco. [12] 155

3.6. XML

Carlo Caligaris, Iacopo Salvarani

Figura 3.8: La Struttura ad Albero Tipica dell’XML [51]

3.6.7

Altre Specifiche XML

Esistono altre specifiche collaterali che vengono fornite allo sviluppatore tutta una serie di funzionalit`a di elaborazione e gestione del file stesso. XML Path XPath definisce una sintassi uniforme per identificare sottoinsiemi dell’Infoset. XML Path definisce un linguaggio basato su percorsi collegato alle relazioni di parentela che intercorrono tra i nodi dell’albero che e` la rappresentazione in memoria del documento XML. XML Schema Un XML Schema definisce i tipi di dato per una specifica applicazione nei termini dell’Infoset. Una problematica collegata ai linguaggi di markup e` quella della 156

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

validazione di un documento, e cio`e la verifica che gli elementi e gli attributi in esso contenuti rispettino determinati requisiti, stabiliti dall’applicazione. In questo senso, ad un documento XML e` possibile associare un file DTD, che serve a descriverne la struttura in termini di nome e posizione di elementi ed attributi. [12]

157

3.6. XML

Carlo Caligaris, Iacopo Salvarani

Nodo radice Istruzioni di elaborazione Documento Commenti Elemento

Attributo Testo

Elemento

Elemento

Elemento

Attributo

Attributo

Testo

Testo

Elemento

Elemento

Figura 3.9: La Struttura di un file XML [12]

158

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

3.6.8

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

Java ed XML

Il linguaggio Java consente di interagire con XML tramite librerie create appositamente. Nel nostro lavoro abbiamo utilizzato una libreria sviluppata internamente alla Societ`a Autostrade in grado di fornire un accesso tramite DOM ai files di nostro interesse. Le stesse classi sono state utilizzate anche per la scrittura su files XML.

159

3.7. SVG

3.7

Carlo Caligaris, Iacopo Salvarani

SVG

I dati che abbiamo memorizzato nei files XML, spesso hanno avuto bisogno di una rappresentazione grafica. Si e` reso quindi necessario trovare un dispositivo grafico in grado di leggere i files XML, estrarre i dati di interesse e mostrarli a schermo previa una qualche trasformazione per migliorarne la leggibilit`a. A questo scopo, abbiamo utilizzato l’SVG (Scalable Vector Graphics).

3.7.1

Cosa e` SVG

SVG e` un linguaggio utilizzato per definire elementi grafici vettoriali normalmente diffusi attraverso il Web. La grafica di SVG e` definita in formato XML ed ha la propriet`a di non perdere qualit`a qualora dovesse essere ridimensionata. Inoltre, ogni elemento ed ogni attributo dei files SVG pu`o essere animato. Il World Wide Web Consortium (W3C) raccomanda l’utilizzo di questo standard. SVG si integra con altri standard raccomandati dal W3C come il DOM e l’XSL. La raccomandazione e` divenuta ufficiale nel Gennaio 2003. [50]

3.7.2

Storia e Vantaggi di SVG

Sun Microsystems, Adobe, Apple, IBM e Kodak sono tra le organizzazioni pi`u note che sono state coinvolte nella definizione dell’SVG. I vantaggi di usare SVG in luogo degli altri formati (come JPEG e GIF) sono: • i file possono essere letti e modificati da un grande insieme di strumenti (tra cui Notepad o un qualunque editor di testo); • i files sono pi`u piccoli e pi`u facilmente comprimibili dei JPEG o GIF; • le immagini sono scalabili; • le immagini possono essere stampate con alta qualit`a a qualsiasi risoluzione; • le immagini possono essere ingrandite ed ogni parte di una immagine pu`o essere ingrandita senza degradazione; 160

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

• il testo dell’SVG e` selezionabile e pu`o essere cercato all’interno della pagina (ideale per le mappe); • SVG lavora con tecnologia Java; • SVG e` uno standard aperto; • il files SVG sono puri XML. Il principale competitor per SVG e` Flash. I due hanno molte componenti simili. Il pi`u grande vantaggio che SVG ha rispetto a Flash e` la compatibilit`a con altri standard; Flash si affida a tecnologia di sua propriet`a che non e` open source. Il difetto principale di SVG e` che, al momento, non tutti i browser lo supportano. Internet Explorer, in versioni successive alla 5, consente l’utilizzo di SVG; Mozilla Firefox sta lavorando per consentire ai suoi utenti la completa compatibilit`a con questo standard. Per vedere i files SVG, e` comunque necessario scaricare gratuitamente dal sito Adobe il plug-in SVG Viewer ed installarlo. [50]

161

3.8. JAVASCRIPT ED HTML

3.8 3.8.1

Carlo Caligaris, Iacopo Salvarani

JavaScript ed HTML Cosa e` JavaScript

JavaScript e` un linguaggio di scripting, basato su oggetti, che viene utilizzato per sviluppare applicazioni per Internet. Venne implementato per la prima volta nel Giugno 1995 nella versione beta del browser Navigator 2.0 di Netscape. Tale linguaggio ha apportato un notevole cambiamento alle pagine HTML: grazie ad esso, alcuni effetti sono diventati pi`u facili da realizzare e la dinamicit`a delle pagine Web non e` pi`u stata confinata alle sole GIF animate. Oggi tutti i browser pi`u importanti hanno al loro interno un interprete JavaScript.

Il 1995, inoltre, resta una pietra miliare nello sviluppo di Internet, perch`e accanto a Netscape, un’altra azienda saliva all ribalta, la Sun Microsystems Inc., che aveva presentato ad inizio anno Java, il linguaggio evoluto che si proponeva di diventare uno standard nella comunicazione in rete. Spesso si confonde Java con JavaScript, ma i due linguaggi sono profondamente diversi, pur presentando qualche aspetto in comune come: • la somiglianza sintattica di molti costrutti ed espressioni, ereditati dal C; • la possibilit`a che entrambi offrono di avviare contenuto eseguibile all’interno di pagine Web.

Anche il nome dei due linguaggi e` simile, ma ci`o e` del tutto casuale: infatti JavaScript, alla sua prima apparizione, si chiamava LiveScript, per parallelismo con LiveWire, un linguaggio che la stessa Netscape aveva messo a punto per la gestione della programmazione dal lato server; i due linguaggi, affermatisi contemporaneamente, non potevano per`o che avere vite parallele ed infatti, nel Dicembre 1995, la Netscape e la Sun annunciarono la decisione di collaborare sinergicamente allo sviluppo di LiveScript, che fin`ı con il prendere il nome attuale di JavaScript. [15] 162

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

3.8.2

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

Scripting e Programmazione

Come accennato, JavaScript e` un linguaggio di scripting e non un linguaggio di programmazione. Pur avendo molti aspetti in comune, questi due tipi di linguaggi presentano notevoli differenze. Un linguaggio di scripting pu`o controllare il comportamento del browser ed il suo contenuto, ma non pu`o effettuare elaborazioni grafiche o gestire la rete, mentre un linguaggio di programmazione non ha alcuna possibilit`a di controllare il browser nella sua interezza, ma pu`o gestire la grafica, la rete e possiede funzionalit`a avanzate che permettono di creare e gestire processi paralleli, comportandosi come un sistema operativo in miniatura. JavaScript dispone di diverse caratteristiche appositamente progettate per renderlo semplice da usare. Sotto questa apparente semplicit`a, per`o, si nasconde la completezza che si riscontra in un linguaggio di programmazione. [15]

3.8.3

Principali Caratteristiche di JavaScript

JavaScript ha alcune caratteristiche peculiari: • e` un linguaggio interpretato; • e` un linguaggio basato sugli oggetti; • e` un linguaggio guidato dagli eventi; • il nucleo del linguaggio e` stato incorporato all’interno dei browser; • esistono sia la variante lato client che quella lato server. La variante lato client e` quella pi`u comune ed e` anche quella da noi utilizzata per i nostri scopi. Essa permette l’inserimento di contenuti eseguibili all’interno di pagine Web; in questo modo, le pagine Web non sono pi`u pagine statiche, ma diventano pagine attive o dinamiche, cio`e possono comprendere programmi che interagiscono con l’utente, controllando il browser e creando dinamicamente nuovi contenuti HTML. 163

3.8. JAVASCRIPT ED HTML

3.8.4

Carlo Caligaris, Iacopo Salvarani

Come Inserire uno Script in un Documento HTML

L’HTML prevede un tag apposito per gli script.

Estratto 3.2 Istruzioni

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

< / SCRIPT> Quando il browser, analizzando un documento HTML, incontra il tag , interpreta il codice presente al suo interno e lo esegue dall’alto verso il basso. Se durante l’esecuzione incontra un errore, pu`o succedere che il documento venga visualizzato, ma il codice errato non sia eseguito oppure che il documento resti bianco o visualizzato parzialmente, perch´e l’esecuzione del codice e` stata interrotta. In linea di principio, uno script JavaScript pu`o essere inserito in due modi all’interno di un documento HTML: • inserendo il codice nel documento HTML sia nel BODY che nell’HEAD; • caricandolo da un file esterno. Quando lo script e` salvato in un file con estensione .js, pu`o essere richiamato mediante l’attributo SRC dell’elemento SCRIPT.

Estratto 3.3 < / SCRIPT> Il file esterno viene eseguito all’interno del documento HTML. Ci`o vuol dire che questo file viene solo letto come file di testo, trasferito nell’HTML nella posizione di richiamo e poi eseguito. [15] 164

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

3.8.5

CAPITOLO 3. STRUMENTI INFORMATICI UTILIZZATI

ECMAScript

Lo Standard ECMA e` uno standard di scripting basato su varie tecnologie, tra cui le pi`u note sono JavaScript (Netscape) e JScript (Microsoft). Lo sviluppo di questo standard e` iniziato nel Novembre 1996 e la sua prima edizione e` stata adottata dall’Assemblea Generale ECMA nel Giugno 1997. [46]

165

3.8. JAVASCRIPT ED HTML

Carlo Caligaris, Iacopo Salvarani

166

Capitolo 4 Oggetto del Lavoro

Figura 4.1: Night Motorway [60]

167

4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA

4.1

Carlo Caligaris, Iacopo Salvarani

Presentazione del Tratto Milano-Brescia

Come abbiamo gi`a detto in precedenza, il nostro obiettivo e` stato quello di costruire un simulatore di traffico autostradale relativo alla tratta Milano - Brescia della Autostrada A4. Questa tratta ha caratteristiche particolari sotto vari punti di vista: • e` tra quelle che sopporta i maggiori flussi di traffico; • ha moltissimi strumenti di rilevazione (se confrontati con quelli delle altre tratte) lungo il tracciato; • pu`o essere considerata come un tratto “chiuso” (questo importante concetto sar`a approfondito in seguito). Nelle seguenti Sottosezioni analizzeremo questi aspetti.

4.1.1

La Autostrada A4

Il tratto Milano - Brescia e` una parte dell’Autostrada A4, detta Serenissima. Essa attraversa da Ovest ad Est l’intera Pianura Padana, partendo da Torino, passando per Milano e terminando a Trieste. Numerose sono le interconnessioni con le altre grandi arterie autostradali. La A4 dispone, nel tratto tra Torino e Venezia, di tre corsie pi`u una d’emergenza (ad eccezione di pochi tratti in concomitanza del passaggio sopra fiumi come nel caso del viadotto sull’Adda situato tra Trezzo sull’Adda e Capriate San Gervasio). Il tratto compreso tra Venezia e Trieste e` , al momento attuale, ancora con sole due corsie per ogni senso di marcia. Nel 2005 sono iniziati i lavori per aggiungere la quarta corsia nel tratto Milano-Bergamo, mentre si attende la conclusione dei lavori che hanno interessato il tratto tra Torino e Milano, collegati ai cantieri dell’alta velocit`a ferroviaria. Da sempre questa autostrada e` considerata uno dei punti nevralgici della rete viaria italiana facendo parte di uno dei pi`u importanti corridoi europei che collegano l’estremit`a della Penisola Iberica con le nazioni dei Balcani. Il suo percorso, di circa 530 km, e` gestito da societ`a diverse come Autostrade per l’Italia, Autostrada Brescia, Verona, 168

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 4. OGGETTO DEL LAVORO

Vicenza, Padova, Societ`a delle Autostrade di Venezia e Padova e Autovie venete. [52] La Storia dell’Autostrada Torino-Milano inizia negli anni Venti dello scorso Secolo, quando il Senatore Frola, appoggiato dalla Provincia e dal Comune di Torino, dal Touring, dall’ACI e da altri Enti pubblici e privati costituisce un Comitato avente lo scopo di promuovere lo studio di fattibilit`a dell’opera ed iniziarne la progettazione preliminare. La reale costruzione inizi`o per`o grazie al Senatore Agnelli e all’Ing. Cartesegna che costituirono la S.A. Autostrada TorinoMilano, ne divennero rispettivamente Presidente ed Amministratore Delegato/Direttore Generale e nel ’29 firmarono la convenzione per la costruzione e l’esercizio dell’opera.

Figura 4.2: Gli inizi della Torino-Milano [45] Il Senatore Agnelli aveva infatti, tra i primi, intuito la necessit`a di una via di trasporto speciale per i veicoli a motore, anche e soprattutto come fattore di promozione commerciale dell’automobile. La costruzione dur`o meno di 3 anni e l’autostrada venne inaugurata nell’ottobre 1932. L’Autostrada attivava un nuovo ed importante collegamento tra Torino e Milano e, assieme alle autostrade Bergamo-Milano, Brescia-Bergamo (gi`a in esercizio) e Venezia-Padova (in costruzione) si inseriva nel disegno della progettata “strada automobilistica pedealpina Torino-Trieste”. La ferrovia costruita nell’800 non aveva, infatti, ancora creato un collegamento adeguato, diretto e veloce, tra le due citt`a. Il traffico fu sempre consistente, sin dai primordi dell’esercizio, grazie anche 169

4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA

Carlo Caligaris, Iacopo Salvarani

alla politica tariffaria adottata dalla Societ`a, che applicava tariffe di pedaggio relativamente basse; la media dei passaggi giornalieri raddoppi`o nel breve volgere di sette anni. Il flusso veicolare e` passato dai circa 700.000 passaggi/anno dei primi anni di vita dell’infrastruttura agli oltre 35.000.000 di oggi e l’infrastruttura e` molto cambiata adattandosi alle esigenze che si modificavano. In particolare, nel 1953, in seguito ad un notevole incremento di traffico, la larghezza del piano viabile venne portata dagli 8 metri originali ai 10 metri e, nel 1962, oramai alle soglie della grande industrializzazione del Paese, l’autostrada venne raddoppiata.

Figura 4.3: Le due corsie dell’autostrada [45]

All’inizio degli anni Settanta, infine, si pass`o ad una configurazione a tre corsie per senso di marcia. L’autostrada e` divisa in due tratte: una cosiddetta “a sistema aperto” ovvero dove il pedaggio viene corrisposto in una barriera e gli svincoli intermedi sono privi di stazione di esazione, ed una “a sistema chiuso” dove il pedaggio corrisposto dipende dalla percorrenza effettuata. In totale vi sono 4 interconnessioni con altre autostrade, 6 svincoli senza stazione di esazione, 13 stazioni di uscita con esazione e 2 barriere terminali. Interventi futuri prevedono, inoltre, il collegamento autostradale con il nuovo Polo Fieristico Milanese (in zona Pero) e il collegamento autostradale Carisio-Biella (18 km). [45] 170

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

4.1.2

CAPITOLO 4. OGGETTO DEL LAVORO

Il Tratto Milano-Brescia

Dopo un percorso denominato tratto urbano della A4 in cui l’autostrada passa a Nord della citt`a di Milano, attraversando le zone fortemente industrializzate di Cormano, Cinisello Balsamo e Sesto San Giovanni e dove, in molte ore della giornata, il traffico risulta quasi paralizzato, nella A4 confluisce, nei pressi di Agrate Brianza dove e` situato il casello di Milano Est, il traffico in arrivo dall’autostrada A1 attraverso la Tangenziale Est di Milano. Con un percorso di quasi 90 km l’autostrada si snoda completamente in territorio lombardo, presentando un percorso completamente pianeggiante e rettilineo ad eccezione di una impegnativa curva in concomitanza con il casello autostradale di Bergamo. A Brescia viene intersecata l’autostrada A21, anch’essa originata a Torino, ma con un percorso pi`u meridionale rispetto alla A4 attraverso Alessandria, Piacenza e Cremona. [52]

Figura 4.4: Il tratto Milano-Brescia [53] In Figura 4.4 si pu`o vedere il tratto Milano-Brescia cos`ı come appare su AutoTraf. Nella Tabella 4.1, riportiamo invece le principali caratteristiche del tratto mutuate dal database interno.

171

4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA

Carlo Caligaris, Iacopo Salvarani

Tratta

Codice Ent.

Entrata

Codice Usc.

Uscita

Lunghezza

1

654

Milano Est

655

Tangenziale Milano

6.2 km

2

655

Tangenziale Milano

653

Agrate

2.4 km

3

653

Agrate

652

Cavenago

4.7 km

4

652

Cavenago

651

Trezzo

9.0 km

5

651

Trezzo

650

Capriate

2.6 km

6

650

Capriate

649

Dalmine

7.6 km

7

649

Dalmine

648

Bergamo

5.2 km

8

648

Bergamo

647

Seriate

7.1 km

9

647

Seriate

646

Grumello

9.1 km

10

646

Grumello

645

Ponte Oglio

3.8 km

11

645

Ponte Oglio

644

Palazzolo

2.7 km

12

644

Palazzolo

643

Rovato

8.7 km

13

643

Rovato

643

Ospitaletto

5.5 km

14

642

Ospitaletto

641

Brescia Ovest

9.4 km

Tabella 4.1: Le stazioni della Milano-Brescia Sempre in Figura 4.4 vediamo anche tutta la sensoristica distribuita lungo il percorso. I sensori sono sincronizzati attraverso il protocollo NTP (Network Time Protocol), per garantire l’assoluta precisione nella determinazione dell’istante di rilevamento del dato.

Figura 4.5: Legenda di AutoTraf [53] 172

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 4. OGGETTO DEL LAVORO

In particolare, noi utilizziamo i dati provenienti da ingressi, uscite, spire e boe. Nei paragrafi seguenti illustreremo in che modo il database riflette le informazioni in arrivo dalla rete. Ingressi I dati provenienti dagli ingressi riguardano, tra le altre, le informazioni sull’ora di ingresso di ogni veicolo, sul numero del biglietto a cui essa e` associata o al codice Telepass con il quale e` entrata. In effetti, la sensoristica mette a disposizione altri dati che per`o non sono di interesse per questa trattazione. Questi dati vengono organizzati in quattro tabelle: TTPMA3 ENT, TTPMA3 ENT 1, TTPMA3 ENT 2 e TTPMA3 ENT 3. Ciascuna di esse contiene i dati relativi ad un numero di giorni precedenti uguale all’ultimo numero del loro nome. Ad esempio, TTPMA3 ENT 2 contiene i dati relativi agli ingressi di due giorni prima rispetto al momento dell’interrogazione del database. In realt`a, l’aggiornamento delle tabelle non avviene precisamente alla mezzanotte, ma ad un’ora variabile intorno alle 02:03:00 AM. La struttura di queste tabelle e` parzialmente simile alla seguente. Estratto 4.1

◦ Codice Stazione Ingresso (C STZ)

◦ Ora di Ingresso (D ENT) ◦ Codice Biglietto (C APP) ◦ Codice Apparato Telepass (C APP) ◦ ... Uscite I dati provenienti dalle uscite sono organizzati in un modo molto simile a quello con cui sono organizzati i dati provenienti dagli ingressi. L’articolazione in quattro tabelle viene utilizzata anche in questo caso e la radice della famiglia di queste tabelle e` : TTPMA2 USC. Rispetto alla struttura precedente, viene aggiunto un campo molto importante che riporta la stazione da cui e` entrato il veicolo di cui si 173

4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA

Carlo Caligaris, Iacopo Salvarani

sta rilevando l’uscita. Inoltre, viene anche riportata l’ora di ingresso del veicolo stesso. Estratto 4.2

◦ Codice Stazione Uscita (C STZ)

◦ Ora di Uscita (D MSG) ◦ Codice Stazione Ingresso (C STZ ENT) ◦ Ora di Ingresso (D MSG ENT) ◦ Codice Biglietto (C APP) ◦ Codice Apparato Telepass (C APP) ◦ ... Purtroppo, lungo tutto il periodo del nostro lavoro, la stazione 655 non ha mai funzionato: il problema e` relativo al mancato trasferimento dei dati sul database. Le uniche informazioni su questa stazione sono ottenibili dalle tabelle delle uscite: infatti, gli utenti entrati alla stazione 655 ed usciti in una qualunque stazione del nostro tratto, vengono regolarmente rilevati grazie al campo di questa tabella contenente il codice della stazione di ingresso. Le piste Telepass accumulano i dati (messaggi) relativi all’entrata ed all’uscita di veicoli in files che sono inviati circa ogni 10’ ad un server centrale, via FTP. Il tempo che intercorre tra l’evento e l’invio del messaggio ad esso relativo, rende tuttavia inadeguato questo meccanismo di acquisizione per quanto riguarda il progetto AutoTraf. Per questo motivo, e` stato modificato il software delle piste, attivando un flusso di acquisizione parallelo a quello tradizionale della fatturazione, che prevede l’invio del singolo messaggio al server centrale nel momento stesso in cui viene generato. Per ridurre al minimo l’overhead delle piste, si e` scelto di utilizzare il protocollo UDP per l’invio dei dati, senza eseguire quindi alcun controllo sul recapito del messaggio. La perdita di una bassa percentuale di messaggi non e` , stata valutata come limitativa per un’applicazione di tipo statistico come AutoTraf. [4] 174

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 4. OGGETTO DEL LAVORO

Sistemi PMT o Boe in Itinere I sistemi PMT, detti boe in itinere, utilizzano la tecnologia Telepass per rilevare il passaggio di veicoli dotati di apparato di bordo. Collocati in opportune posizioni sopra la sede autostradale, in prossimit`a di PMV (Pannelli a Messaggio Variabile) o di cavalcavia, inviano al sistema centrale un messaggio contenente il codice del sensore, il codice dell’apparato e l’istante in cui la rilevazione ha avuto luogo, utilizzando il protocollo UDP. Questi sistemi sono stati sviluppati a partire dalle piste Telepass ritagliandone le funzionalit`a e personalizzando i meccanismi di autodiagnosi. [4] Le boe in itinere sono lo strumento di rilevazione pi`u diffuso lungo la rete, ma, purtroppo, sono anche quello meno affidabile. Infatti, e` molto difficile prevedere la percentuale di veicoli che le boe riusciranno a rilevare in rapporto al totale dei veicoli transitati. In pratica, queste boe sono gruppi di rilevamento talvolta costituiti da una sola antenna, altri da due ed altri ancora da tre. Nel nostro tratto, le boe hanno tutte due antenne: tuttavia, non esiste una relazione precisa e sicura su quanti autoveicoli si perdano in funzione del numero di antenne. La struttura delle tabelle TTPMA1 BOE (anche esse replicate per conservare i dati dei giorni precedenti) e` rappresentata in seguito. Estratto 4.3

◦ Numero Progressivo della Boa (N PRG)

◦ Codice Apparato Telepass (C APP) ◦ Ora del Passaggio (D MSG) ◦ ... Spire Le spire sono lo strumento di rilevazione pi`u affidabile e completo sul quale si possa fare affidamento. Sono anche i sensori pi`u costosi, dal momento che richiedono una tecnologia avanzata, e sono di difficile installazione a causa della loro particolare locazione. Infatti, devono essere immerse nell’asfalto sotto il piano stradale. Nel tratto di nostra competenza sono installate tre spire: una lungo la 175

4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA

Carlo Caligaris, Iacopo Salvarani

tratta 6, una lungo la tratta 9 ed una poco dopo il casello di Brescia Ovest in direzione di Venezia. La tabella contenente i dati provenienti dalle spire e` unica: questo significa che tutti i dati sono compresi in (TTPM66 DAT SPR), aggiornata con un periodo inferiore ai 4 giorni. Quindi, i dati provenienti dalle spire sono mediamente pi`u recenti di quelli provenienti dalle boe: volendo eseguire una analisi incrociata retrospettiva, bisogna assumere la tabella delle spire come riferimento postdatato per il tempo in corrispondenza del quale si possono ancora trovare informazioni. I dati delle spire, al contrario di quelli degli altri tre strumenti sopra illustrati, vengono aggregati lungo il tempo. Quindi, mentre le altre tabelle hanno una nuova riga per ogni mezzo rilevato, questa ha una riga che riassume i dati dell’ultimo intervallo di tempo. L’intervallo di tempo e` variabile, ma per le spire del nostro tratto e` sempre pari a 60 secondi. In pratica, ogni riga contiene la somma dei dati del minuto precedente. I campi rilevanti sono quelli elencati di seguito. Estratto 4.4

◦ Codice della Centralina Contenente la Spira (C CEN)

◦ Numero della Corsia (N CRS) ◦ Ora del Messaggio (D MSG) ◦ Somma dei Veicoli (N TOT VEI) ◦ Velocit`a Media (VEL MED) ◦ Deviazione Standard della Velocit`a (DEV STD VEL MED) ◦ Gap Medio (GAP MED) ◦ Deviazione Standard del Gap (DEV STD GAP MED) ◦ Headway Medio (HDW MED) ◦ Deviazione Standard dell’Headway (DEV STD HDW MED) ◦ Densit`a (DEN) 176

Universit`a degli Studi di Genova, Tesi di Laurea in Ingegneria Gestionale

CAPITOLO 4. OGGETTO DEL LAVORO

◦ ... Le corsie sono numerate come in Figura 4.6

Figura 4.6: Numerazione delle corsie

Il gap e` definito come la distanza media che intercorre tra la coda di un veicolo e la testa del veicolo seguente. L’headway e` invece la distanza media tra due teste consecutive. In questa tabella, i vari dati calcolati come media possono essere anche valutati alla luce della loro deviazione standard.

4.1.3

Quante Auto hanno il Telepass?

Per i nostri programmi, serve una percentuale piuttosto precisa che reppresenti quante, delle auto che passano mediamente sotto una boa con due antenne, vengono rilevate. Come abbiamo gi`a detto, le boe possono solo riconoscere le auto con il telepass, ma tendono a “perdere” anche alcune di queste. Abbiamo cos`ı calcolato il rapporto tra utenti con il telepass ed utenti totali ed abbiamo infine cercato di calcolare il rapporto tra utenti rilevati sotto una boa ed utenti totali. 177

4.1. PRESENTAZIONE DEL TRATTO MILANO-BRESCIA

Carlo Caligaris, Iacopo Salvarani

Percentuale di Telepass Per calcolare la percentuale di auto con il Telepass, possiamo confrontare i dati provenienti dagli ingressi del nostro tratto e valutare su quante di esse e` montato il Telepass. Per ottenere il totale delle auto entrate in ciascuna delle stazioni di nostro interesse possiamo eseguire la query 4.5. Estratto 4.5 SELECT C STZ COUNT(D MSG) FROM TTPMA3 ENT WHERE D MSG BETWEEN TO DATE( ’ 08−11−2005 7 : 3 0 : 0 0 ’ , ’DD−MM−YYYY hh24 : mi : s s ’ ) AND TO DATE( ’ 08−11−2005 1 3 : 0 0 : 0 0 ’ , ’DD−MM−YYYY hh24 : mi : s s ’ ) AND C STZ>=641 AND C STZ=641 AND C STZ=1 AND N CRS646 AND C STZ ENT=641 AND ENTRATE . C STZ=641 AND USCITE . C STZ=641 AND ENTRATE . C STZ=641 AND ENTRATE . C STZ=641 AND ENTRATE . C STZ