Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tesi

754 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Tesi

  1. 1. 1
  2. 2. ` UNIVERSITA DEGLI STUDI DI TRIESTE ` FACOLTA DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica Dipartimento di Elettronica, Elettrotecnica ed Informatica Tesi di laurea in RETI DI CALCOLATORI PROGETTO E REALIZZAZIONE DI STIMATORI PREDITTIVI CON TECNICHE DI GENETIC PROGRAMMING Laureando: Relatore: Gabriele DEL PRETE Prof. Alberto BARTOLI Correlatore: Ing. Giorgio DAVANZO Anno Accademico 2008-2009
  3. 3. Indice 1 Introduzione 1 1.1 La Genetic Programming per predirre il mercato elettrico . 1 1.2 Struttura della tesi . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Convenzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Il mercato dell’elettricit` degli Stati Uniti a 5 2.1 Il mercato dell’elettricit` degli Stati Uniti . a . . . . . . . . . 5 2.2 Il mercato della California . . . . . . . . . . . . . . . . . . . 6 2.3 Il dataset della California . . . . . . . . . . . . . . . . . . . 6 2.4 Dataset-C: elaborazioni . . . . . . . . . . . . . . . . . . . . 7 2.5 Festivit` per lo Stato della California . . . . a . . . . . . . . . 9 2.6 Mercato e dataset di New York . . . . . . . . . . . . . . . . 10 2.7 Dataset-N: elaborazioni . . . . . . . . . . . . . . . . . . . . 11 2.8 Festivit` per lo Stato di New York . . . . . a . . . . . . . . . 12 3 Cenni sulla Genetic Programming 13 3.1 GP per la regressione simbolica di serie temporali . . . . . 13 3.2 Insiemi di dati per stimatori di serie temporali . . . . . . . 14 3.3 Genetic Programming in breve . . . . . . . . . . . . . . . . 15 3.4 Individui e popolazione iniziale . . . . . . . . . . . . . . . . 16 3.5 Rappresentazione degli individui . . . . . . . . . . . . . . . 16 3.6 Funzione di fitness . . . . . . . . . . . . . . . . . . . . . . . 18 3.7 Generazione della popolazione iniziale . . . . . . . . . . . . 18 3.8 Valutazione della fitness . . . . . . . . . . . . . . . . . . . . 19 3.9 Selezione degli individui . . . . . . . . . . . . . . . . . . . . 20 3.10 Variazione degli individui . . . . . . . . . . . . . . . . . . . 21 iii
  4. 4. iv INDICE 3.11 Terminazione e scelta dell’individuo migliore . . . . . . . . . 23 4 Evolutionary Design 25 4.1 Evolutionary Design . . . . . . . . . . . . . . . . . . . . . . 25 4.2 Evolutionary Design: regressione simbolica . . . . . . . . . 27 4.3 Evolutionary Design: backshift . . . . . . . . . . . . . . . . 27 4.4 Evolutionary Design: terminologia . . . . . . . . . . . . . . 29 4.5 Evolutionary Design: configurazione . . . . . . . . . . . . . 29 4.6 Evolutionary Design: strategie per la valutazione . . . . . . 30 4.7 DAEScalarEvaluation . . . . . . . . . . . . . . . . . . . . . 31 5 Analisi statistiche sui dataset 35 5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2 La funzione di densit` di probabilit` a a . . . . . . . . . . . . . 36 5.3 La funzione di autocorrelazione . . . . . . . . . . . . . . . . 36 5.4 Dataset-C: carico . . . . . . . . . . . . . . . . . . . . . . . . 38 5.5 Dataset-C: prezzi . . . . . . . . . . . . . . . . . . . . . . . . 41 5.6 Dataset-N: carico . . . . . . . . . . . . . . . . . . . . . . . . 44 6 Metodologia delle prove 49 6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.2 Parte costante della configurazione di ED . . . . . . . . . . 49 6.3 La fitness Intercept MSE . . . . . . . . . . . . . . . . . . . . 50 6.4 Criterio di scelta dell’individuo best . . . . . . . . . . . . . 52 6.5 Elaborazioni sui risultati di ED . . . . . . . . . . . . . . . . 53 6.6 Selezione del migliore individuo del run . . . . . . . . . . . 56 6.7 Simulazione dell’individuo best . . . . . . . . . . . . . . . . 57 6.8 Profili di configurazione . . . . . . . . . . . . . . . . . . . . 58 6.9 Configurazioni hardware/software usate . . . . . . . . . . . 61 7 Stimatori: consumi California 63 7.1 Stimatori per i consumi della California . . . . . . . . . . . 63 7.2 California, HA . . . . . . . . . . . . . . . . . . . . . . . . . 65 7.3 California, DA: profilo “base” . . . . . . . . . . . . . . . . . 69 7.4 California, DA: profilo “base + DAE” . . . . . . . . . . . . 73 7.5 California, DA: profilo “base + sin e cos” . . . . . . . . . . 77 7.6 California, DA: profilo “base + festivit`” . a . . . . . . . . . . 81
  5. 5. INDICE v 7.7 California, DA: profilo “base + 12 ore” . . . . . . . . . . . . 85 7.8 California, DA: profilo “base + 7 giorni” . . . . . . . . . . . 89 8 Stimatori: prezzi California 93 8.1 Stimatori per i prezzi della California . . . . . . . . . . . . . 93 8.2 California, prezzi: profilo base . . . . . . . . . . . . . . . . . 95 8.3 California, prezzi: profilo “base + pop. 1000” . . . . . . . . 99 8.4 California, prezzi: profilo “base + pop. 1000 + gen. 1200” . 103 8.5 California, prezzi: profilo “lungo” . . . . . . . . . . . . . . . 107 8.6 California, prezzi: profilo “lungo + pop. 1000 + gen. 1200” 112 8.7 California, prezzi: profilo “lungo + gen. 1200” . . . . . . . 116 8.8 California, prezzi: profilo “lungo + gen. 1200 + notte” . . . 121 9 Stimatori: consumi New York 127 9.1 Stimatori per i consumi di New York . . . . . . . . . . . . . 127 9.2 New York, consumi, Gennaio 2004: profilo “base” . . . . . . 130 9.3 New York, consumi, Luglio 2004: profilo “base” . . . . . . . 134 10 Conclusioni 139 10.1 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Bibliografia e siti web consultati 141
  6. 6. Elenco delle figure 3.1 Schema di base della Genetic Programming . . . . . . . . . 15 3.2 Esempio di albero di sintassi astratta . . . . . . . . . . . . . 17 3.3 Esempio di crossover fra individui . . . . . . . . . . . . . . . 21 3.4 Esempio di mutazione di nodo . . . . . . . . . . . . . . . . . 22 5.1 California: densit` di probabilit` del carico . . . . . . . a a . . 38 5.2 Dataset-C: autocorrelazione del carico su un giorno . . . . . 39 5.3 Dataset-C: autocorrelazione del carico su una settimana . . 40 5.4 Dataset-C: autocorrelazione del carico su un mese . . . . . 41 5.5 Dataset-C: autocorrelazione del carico su quattro mesi . . . 41 5.6 Dataset-C: densit` di probabilit` dei prezzi . . . . . . . a a . . 42 5.7 Dataset-C: autocorrelazione dei prezzi su un giorno . . . . . 43 5.8 Dataset-C: autocorrelazione dei prezzi sulla settimana . . . 43 5.9 Dataset-C: autocorrelazione dei prezzi su un mese . . . . . 44 5.10 Dataset-C: autocorrelazione dei prezzi su quattro mesi . . . 44 5.11 Dataset-N: densit` di probabilit` del carico . . . . . . . a a . . 45 5.12 Dataset-N: autocorrelazione del carico su un giorno . . . . . 46 5.13 Dataset-N: autocorrelazione del carico su una settimana . . 46 5.14 Dataset-N: autocorrelazione del carico su un mese . . . . . 47 5.15 Dataset-N: autocorrelazione del carico su quattro mesi . . . 47 6.1 Schema esemplificativo della Intercept MSE . . . . . . . . . 51 6.2 Esempio di grafico di correlazione fra WMAE di training e WMAE di validation . . . . . . . . . . . . . . . . . . . . . 55 7.1 California, consumi: posizione degli intervalli sul dataset . . 64 vii
  7. 7. viii ELENCO DELLE FIGURE 7.2 California, consumi HA, profilo unico: andamento indivi- duo best su training set e validation set . . . . . . . . . . . 67 7.3 California, consumi HA, profilo unico: andamento indivi- duo best su long testing set . . . . . . . . . . . . . . . . . . 68 7.4 California, consumi DA, profilo base: andamento individuo best su training set e validation set . . . . . . . . . . . . . . 71 7.5 California, consumi DA, profilo base: andamento individuo best su long testing set . . . . . . . . . . . . . . . . . . . . . 72 7.6 California, consumi DA, profilo base + DAE: andamento individuo best su training set e validation set . . . . . . . . 75 7.7 California, consumi DA, profilo base + DAE: andamento individuo best su long testing set . . . . . . . . . . . . . . . 76 7.8 California, consumi DA, profilo base + sin e cos: andamento individuo best su training set e validation set . . . . . . . . 79 7.9 California, consumi DA, profilo base + sin e cos: andamento individuo best su long testing set . . . . . . . . . . . . . . . 80 7.10 California, consumi DA, profilo base + festivit`: andamen- a to individuo best su training set e validation set . . . . . . . 83 7.11 California, consumi DA, profilo base + festivit`: andamen- a to individuo best su long testing set . . . . . . . . . . . . . 84 7.12 California, consumi DA, profilo base + 12 ore: andamento individuo best su training set e validation set . . . . . . . . 87 7.13 California, consumi DA, profilo base + 12 ore: andamento individuo best su long testing set . . . . . . . . . . . . . . . 88 7.14 California, consumi DA, profilo base + 7 giorni: andamento individuo best su training set e validation set . . . . . . . . 91 7.15 California, consumi DA, profilo base + 7 giorni: andamento individuo best su long testing set . . . . . . . . . . . . . . . 92 8.1 California, prezzi: posizione degli intervalli sul dataset-C . . 94 8.2 California, prezzi, profilo base: andamento individuo best su training set e validation set . . . . . . . . . . . . . . . . . 97 8.3 California, prezzi, profilo base: andamento individuo best su long testing set . . . . . . . . . . . . . . . . . . . . . . . 98 8.4 California, prezzi, profilo “base + pop. 1000”: andamento individuo best su training set e validation set . . . . . . . . 101
  8. 8. ELENCO DELLE FIGURE ix 8.5 California, prezzi, profilo “base + pop. 1000”: andamento individuo best su long testing set . . . . . . . . . . . . . . . 102 8.6 California, prezzi, profilo “base + pop. 1000 + gen. 1200”: andamento individuo best su training set e validation set . . 105 8.7 California, prezzi, profilo “base + pop. 1000 + gen. 1200”: andamento individuo best su long testing set . . . . . . . . 106 8.8 California, prezzi: posizione degli intervalli sul dataset-C con training lungo . . . . . . . . . . . . . . . . . . . . . . . 107 8.9 California, prezzi, profilo “lungo”: andamento individuo best su training set e validation set . . . . . . . . . . . . . . 110 8.10 California, prezzi, profilo “lungo”: andamento individuo best su long testing set . . . . . . . . . . . . . . . . . . . . . 111 8.11 California, prezzi, profilo “lungo + pop. 1000 + gen. 1200”: andamento individuo best su training set e validation set . . 114 8.12 California, prezzi, profilo “lungo + pop. 1000 + gen. 1200”: andamento individuo best su long testing set . . . . . . . . 115 8.13 California, prezzi, profilo “lungo + gen. 1200”: andamento individuo best su training set e validation set . . . . . . . . 119 8.14 California, prezzi, profilo “lungo + gen. 1200”: andamento individuo best su long testing set . . . . . . . . . . . . . . . 120 8.15 California, prezzi, profilo “lungo + gen. 1200 + notte”: andamento individuo best su training set e validation set . . 124 8.16 California, prezzi, profilo “lungo + gen. 1200 + notte”: andamento individuo best su long testing set . . . . . . . . 125 9.1 New York, consumi: intervalli . . . . . . . . . . . . . . . . . 129 9.2 New York, consumi, Gennaio 2004, profilo “base”: anda- mento individuo best su training set e validation set . . . . 132 9.3 New York, consumi, Gennaio 2004, profilo “base”: anda- mento individuo best su long testing set . . . . . . . . . . . 133 9.4 New York, consumi, Luglio 2004, profilo “base”: andamen- to individuo best su training set e validation set . . . . . . . 136 9.5 New York, consumi, Luglio 2004, profilo “base”: andamen- to individuo best su long testing set . . . . . . . . . . . . . 137
  9. 9. Elenco delle tabelle 2.1 Festivit` nello Stato della California . . . . . . . . . . . . . 9 a 2.2 Festivit` nello Stato di New York . . . . . . . . . . . . . . . 12 a 6.1 Parametri costanti nelle esecuzioni di ED . . . . . . . . . . 50 6.2 Macchine disponibili per la computazione . . . . . . . . . . 61 6.3 Gruppi di macchine utilizzati . . . . . . . . . . . . . . . . . 61 7.1 California, consumi HA, profilo unico: parametri del run e statistiche per l’individuo best generato . . . . . . . . . . . 66 7.2 California, consumi DA, profilo base: parametri del run e statistiche per l’individuo best generato . . . . . . . . . . . 70 7.3 California, consumi DA, profilo base + DAE: parametri del run e statistiche per l’individuo best generato . . . . . . . . 74 7.4 California, consumi DA, profilo base + sin e cos: parametri del run e statistiche per l’individuo best generato . . . . . . 78 7.5 California, consumi DA, profilo base + festivit`: parametri a del run e statistiche per l’individuo best generato . . . . . . 82 7.6 California, consumi DA, profilo base + 12 ore: parametri del run e statistiche per l’individuo best generato . . . . . . 86 7.7 California, consumi DA, profilo base + 7 giorni: parametri del run e statistiche per l’individuo best generato . . . . . . 90 8.1 California, prezzi: risultati per il testing set del paper [15] . 94 8.2 California, prezzi, profilo base: parametri del run e statisti- che per l’individuo best generato . . . . . . . . . . . . . . . 96 8.3 California, prezzi, profilo “base + pop. 1000”: parametri del run e statistiche per l’individuo best generato . . . . . . 100 xi
  10. 10. xii ELENCO DELLE TABELLE 8.4 California, prezzi, profilo “base + pop. 1000 + gen. 1200”: parametri del run e statistiche per l’individuo best generato 104 8.5 California, prezzi, profilo “lungo”: parametri del run e sta- tistiche per l’individuo best generato . . . . . . . . . . . . . 109 8.6 California, prezzi, profilo “lungo + pop. 1000 + gen. 1200”: parametri del run e statistiche per l’individuo best generato 113 8.7 California, prezzi, profilo “lungo + gen. 1200”: parametri del run e statistiche per l’individuo best generato . . . . . . 118 8.8 California, prezzi, profilo “lungo + gen. 1200 + notte”: parametri del run e statistiche per l’individuo best generato 123 9.1 New York, consumi: risultati per testing del paper [6] . . . 128 9.2 New York, consumi, Gennaio 2004, profilo “base”: parame- tri del run e statistiche per l’individuo best generato . . . . 131 9.3 New York, consumi, Luglio 2004, profilo “base”: parametri del run e statistiche per l’individuo best generato . . . . . . 135
  11. 11. Capitolo 1 Introduzione 1.1 La Genetic Programming per predirre il mer- cato elettrico In questa tesi si ` affrontato il problema della realizzazione di stimatori e predittivi per i consumi ed i prezzi dell’elettricit` mediante la tecnica a della Genetic Programming. La Genetic Programming ` un paradigma di e calcolo per la generazione automatica di algoritmi fortemente ispirato ai meccanismi della selezione naturale. La letteratura scientifica generalmente si basa su approcci di carattere statistico per la realizzazione di stimatori predittivi per i consumi ed i prezzi dell’elettricit`. In questo lavoro si vuole mostrare che la Genetic a Programming permette di ottenere stimatori con prestazioni paragonabili agli stimatori tradizionali ma che possono essere generati ed utilizzati in modo molto pi` semplice, in particolare, senza effettuare preelaborazioni u sui dati storici, senza ricorrere a variabili esogene e senza necessit` dia creare e gestire una molteplicit` di modelli calibrati in modo diverso. a La motivazione di questo lavoro nasce dalla considerazione che, a se- guito della liberalizzazione del mercato dell’energia elettrica attuato negli ultimi anni in molti paesi, in cui produttori e consumatori si scambiano l’e- lettricit` mediante asta, ` diventato importante predirre l’andamento della a e quantit` e dei prezzi dell’elettricit` per ottimizzare i costi di acquisto o di a a produzione e ridurre gli sprechi. 1
  12. 12. 2 CAPITOLO 1. INTRODUZIONE La comunit` scientifica studia da anni questo problema, e le soluzioni a proposte generalmente fanno uso di metodi ricadenti nelle pure scienze statistiche (modellazione parametrica di serie temporali). Questi meto- di per` fanno spesso uso di pre-processing sui dati iniziali (ad esempio, o sostituzione dei valori da stimare con il loro logaritmo, identificazione ed eliminazione di outlier, eliminazione di giornate “particolarmente pro- blematiche”), o utilizzano variabili esogene (dati ambientali o finanziari esterni), o scelgono di creare molteplici modelli invece di uno singolo (ad esempio, un modello differente per ogni ora del giorno), e risultano quindi meno immediati nella fase di utilizzo perch´ la ricalibrazione del modello e risulta pi` complessa. u Il lavoro che qui si descrive ` stato realizzato dallo scrivente pres- e so il Laboratorio di Reti di Calcolatori del Dipartimento di Elettronica, Elettrotecnica ed Informatica dell’Universit` di Trieste. a Il framework per la Genetic Programming che ` stato utilizzato, Evo- e lutionary Design, ` stato sviluppato negli ultimi anni presso il Laboratorio e ed ` gi` stato utilizzato con successo su problemi dalla natura pi` varia: e a u dalla stima della disponibilit` di contante da assicurare presso uno sportel- a lo Bancomat, passando alla stima della distribuzione del calore all’interno di forni, per giungere alla stima dei tempi di ri-trasmissione dei pacchetti all’interno del protocollo TCP. Tutto il restante lavoro di implementazione di script bash e R di elaborazione dati ` stato svolto dallo scrivente. e 1.2 Struttura della tesi I capitoli seguenti ripercorrono l’iter seguito nello sviluppo dello studio; diamo ora loro una breve descrizione. Il capitolo 3 introduce alla Genetic Programming, in particolar modo per quanto riguarda la regressione simbolica di serie temporali. Il capitolo 4 descrive Evolutionary Design e documenta l’uso del plugin di valutazione DAEScalarEvaluation realizzato con questo lavoro. Il capitolo 2 descrive gli archivi dei dati di consumo elettrico e dei prezzi dell’elettricit` utilizzati. a Il capitolo 5 descrive alcune semplici analisi statistiche realizzate sugli archivi del capitolo precedente.
  13. 13. 1.3. CONVENZIONI 3 Il capitolo 6 descrive la metodologia seguita nelle prove per la ricerca con la Genetic Programming degli stimatori. Il capitolo 7 documenta la ricerca degli stimatori per i consumi elettrici della California. Il capitolo 8 documenta la ricerca degli stimatori per i prezzi dell’elet- tricit` della California. a Il capitolo 9 documenta la ricerca degli stimatori per i consumi elettrici della citt` di New York. a Infine nel capitolo 10 si traggono le conclusioni sul lavoro svolto. 1.3 Convenzioni Sono state utilizzate alcune convenzioni nella stesura di questo documento. Si abbrevier` il termine “Genetic Programming” con GP e il nome di a “Evolutionary Design” con ED. I nomi dei campi dei dataset utilizzati sono indicati in grassetto, mentre per le classi Java e i plugin di ED si user` il corsivo. a I nomi delle funzioni statistiche che verranno usate per analizzare le prestazioni degli stimatori saranno in maiuscoletto.
  14. 14. Capitolo 2 Il mercato dell’elettricit` a degli Stati Uniti 2.1 Il mercato dell’elettricit` degli Stati Uniti a Negli anni 90 dello scorso secolo gli Stati Uniti d’America hanno attuato un processo di liberalizzazione e deregulation del mercato elettrico interno. A tale scopo ` stata creata un’agenzia federale indipendente, la Fede- e ral Energy Regulation Commission (FERC ), che ha lo scopo di supervi- sionare il mercato elettrico liberalizzato per quanto riguarda—tra le altre cose—i prezzi di alcune materie prime e i prezzi dello scambio wholesale dell’elettricit`. a Oltre alla FERC, sono state create da parte dei singoli Stati dell’Unione altre agenzie di controllo del mercato dell’elettricit`, che operano solo a all’interno del mercato del relativo stato, o tutto al pi` in parti di quelli u delle regioni o stati confinanti; tali agenzie statali sono note con il nome di Independent System Operator (ISO). La FERC infine ha ordinato la creazione (e a tutt’oggi supervisiona) di un sistema informativo pubblico e accessibile tramite il web, chiamato Open Access Same-Time Information System (OASIS ), che fornisce servizi utili a venditori ed acquirenti di energia elettrica in maniera aperta, equa e non discriminatoria. In questo lavoro sono stati utilizzati due archivi, pubblicati dai due differenti OASIS di due differenti ISO: quello per l’intero Stato della Cali- fornia e quello relativo alla sola area metropolitana della citt` di New York. a 5
  15. 15. ` 6CAPITOLO 2. IL MERCATO DELL’ELETTRICITA DEGLI STATI UNITI Tali archivi sono stati scelti in quanto utilizzati anche dalle pubblicazio- ni analizzate durante l’attivit` di preparazione del lavoro qui descritto: a offrono quindi la possibilit` di poter confrontare i risultati ottenuti. a 2.2 Il mercato della California ` E opportuno aprire una breve parentesi sul funzionamento del mercato liberalizzato in California. In California esistono due mercati di scambio dell’energia elettrica, entrambi gestiti ad aste: il mercato Hour-Ahead (HA) e il mercato Day- Ahead (DA). I due mercati sono gestiti in maniera differente perch´ di natura diffe- e rente: • il mercato Day-Ahead (DA) ` un mercato, gestito da un ente ester- e no all’ISO della California, il California Power Exchange (PX ), a carattere speculativo/finanziario: i partecipanti dell’asta lanciano le offerte di acquisto e di vendita allo scopo di massimizzare il profitto, e tutte le transazioni si fermano un giorno prima della vera consegna dell’elettricit`; a • il mercato Hour-Ahead (HA) invece ` il mercato direttamente gestito e dall’ISO della California (CAISO), in cui i lanci per le offerte di acquisto e di vendita di ripetono ogni ora e riguardano i prezzi e i consumi dell’ora successiva: le possibilit` di speculazioni su un a intervallo di tempo cos` corto sono ovviamente molto pi` limitate e i ı u prezzi del mercato HA sono molto pi` dipendenti dalle reali necessit` u a di energia elettrica ora per ora che non nel mercato DA[13]. 2.3 Il dataset della California Il dataset della California (d’ora in poi, dataset-C ) ` disponibile e libera- e mente utilizzabile da chiunque per scopi didattici e di ricerca ed ` pubbli- e cato sul sito dell’University of California Energy Institute (UCEI )[14]. Viene fornito in due versioni, un file in formato CSV (Comma Sepa- rated Values), e un file binario nel formato proprietario del software per analisi statistiche STATA. I dati contenuti sono identici. In entrambi i
  16. 16. 2.4. DATASET-C: ELABORAZIONI 7 casi, si pu` considerare come una tabella di record, in cui ogni record o fornisce valori veri e stime per i consumi elettrici ed i prezzi di scambio relativi, oltre ovviamente alle informazioni temporali (ora, giorno, mese, anno cui si riferiscono i valori del record) proprie del record. Dei singoli campi nel file esiste sono una breve descrizione presente sempre sul sito della UCEI[2]. Nel file le stime di quasi tutte le grandezze sono doppie in quanto vengono fornite per entrambi i mercati di scambio attivi. I campi di ogni record del file sono identici per le due versioni CSV e STATA e si possono dividere in alcuni gruppi: • i riferimenti temporali: i campi come YEAR, MONTH, DAY, HOUR, WEEK, . . . e i campi SUNDAY, MONDAY, . . . , SA- TURDAY indicano la data e l’ora del record, ed il giorno della settimana cui appartiene il giorno relativo al record; • il carico elettrico misurato per l’istante descritto dal record, nel campo QASYS (descritto come Actual System-wide Load ); • il prezzo orario misurato dell’elettricit` per il sotto-mercato DA, nel a campo PPXSYS (descritto come Price in PX for Unconstrained System); • e infine, moltissimi altri indici, sia di prezzo che di consumo, che non sono d’interesse per i fini di questo lavoro. 2.4 Dataset-C: elaborazioni ` E stato necessario elaborare il dataset-C per renderlo utilizzabile con il framework per la GP utilizzato. Tale elaborazione viene effettuata utilizzando uno script (make csv - california.r ) per il software per il calcolo statistico R[1], una implementa- zione open-source delle specifiche del linguaggio S. Lo script inizia caricando come input il file originale del dataset-C in formata STATA (gestibile da R tramite un package di libreria aggiunti- vo) scaricato dal sito UCEI. Dalla serie di dati originali vengono quindi eliminati i record di separazione fra i record delle ore dei diversi giorni, presenti all’interno dei file originale, e individuabili dall’avere tutti i campi
  17. 17. ` 8CAPITOLO 2. IL MERCATO DELL’ELETTRICITA DEGLI STATI UNITI vuoti eccetto per il campo HOUR posto al valore 25. Successivamente, vengono estratti solo i dati relativi ad un anno (il file originale contiene la serie di dati per quasi 6 anni interi): l’anno scelto ` quello che va dal 5 e Luglio 1999 al 4 Luglio 2000 (per un totale di 366 giorni, e 366 ∗ 24 = 8784 record orari). Vengono quindi estratti, per ogni record, solo i campi di interesse: quelli relativi all’istante temporale (YEAR, MONTH, DAY, HOUR, WEEK e altri aggregati di questi comodi per eventuali elabora- zioni statistiche sull’intero insieme di record), i flag booleani per il giorno della settimana (SUNDAY, MONDAY,. . . , SATURDAY), il campo dei consumi orari osservati QASYS e il campo dei prezzi orari osservati per il sotto-mercato DA PPXSYS. Durante le prime analisi si ` notato che, all’interno dell’anno scelto, e due valori del campo QASYS e un valore del campo PPXSYS erano mancanti: il problema ` stato risolto sostituendo ai valori mancanti una e interpolazione data dai valori vicini. Ai campi estratti, nel file di output, ne vengono aggiunti altri, calcolati dallo script: • il campo WEEKDAY, che assume valori da 1 a 7 e indica il giorno della settimana cui appartiene il record orario (con 1 equivalente a domenica e 7 equivalente a sabato); questo campo ` ridondante ri- e spetto ai campi SUNDAY, . . . , SATURDAY ma potrebbe essere pi` comodo per alcune elaborazioni rispetto ai sette campi booleani; u • il campo ISHOLIDAY, booleano, che assume valore 1 se il giorno cui appartiene il record orario ` uno dei giorno festivi dello Stato e della California; tale campo viene calcolato dallo script utilizzando alcune funzioni di un package esterno per R che ritornano le date per le feste della California, assegnato un anno; • il campo ISHOLISATSUN, booleano, che assume valore 1 se il giorno cui appartiene il record orario ` un giorno festivo (campo e ISHOLIDAY pari a 1) oppure ` un sabato o una domenica (quindi: e ISHOLISAT SU N := ISHOLIDAY or SAT U RDAY or SU N DAY ); • il campo ISNIGHT, booleano, che assume valore 1 per le ore del giorno (campo HOUR) che si vogliono considerare notte profonda (la scelta fatta per questo lavoro considera come notte fonda le ore
  18. 18. ` 2.5. FESTIVITA PER LO STATO DELLA CALIFORNIA 9 dalle 1 antimeridiane alle 5 antimeridiane, comprese); questo campo ` stato utile solo alla creazione dello stimatore dei prezzi e non viene e utilizzato per lo stimatore dei consumi; • il campo DAE, reale, che assume identicamente il valore 0.0 e la cui utilit` verr` descritta nel capitolo 4. a a Infine il dataset risultante viene salvato dallo script nel formato CSV (Comma Separated Values), che ` il formato richiesto in ingresso da ED. e 2.5 Festivit` per lo Stato della California a Le festivit` per lo Stato della California sono state ricavate da Wikipedia a (vedi [3]) e dal sito del Dipartimento per l’Amministrazione del Personale dello Stato della California (vedi [11]). Le festivit` pubbliche osservate in California sono: a Festivit`a Ricorrenza 1 Gennaio Capodanno Terzo luned` di Gennaio ı Compleanno di Martin Luther King Terzo luned` di Febbraio ı Giorno dei Presidenti Ultimo luned` di Maggio ı Memorial Day 4 Luglio Festa dell’Indipendenza Primo luned` di Settembre ı Festa del Lavoro 11 Novembre Giorno dei Veterani Quarto gioved` di Novembre ı Thanksgiving Quarto venerd` di Novembre ı Giorno dopo il Thanksgiving 25 Dicembre Natale Tabella 2.1: Festivit` nello Stato della California a In California, se una festivit` pubblica cade di domenica, di norma vie- a ne portata al luned` successivo[3]; analogamente, se una festivit` pubblica ı a cade di sabato, la legge permetterebbe di portarla al venerd` immediata- ı mente precedente[12]: mentre per` nel primo caso lo spostamento avviene o sempre, nel secondo caso questo accade raramente (le aziende possono decidere se farlo o no, e in genere scelgono di no)[3].
  19. 19. ` 10CAPITOLO 2. IL MERCATO DELL’ELETTRICITA DEGLI STATI UNITI Lo script R per la California tiene conto di queste convenzioni e marca quindi come festivo un giorno se e solo se il giorno appartiene ad una festivit` e non ` domenica, o se il giorno ` luned` e il giorno precedente a e e ı era un giorno di festa. Per l’intervallo di tempo considerato per il dataset-C l’eccezione di spostamento a luned` della festivit` domenicale accade solo per la Festa ı a dell’Indipendenza del 1999—4 Luglio 1999, una domenica—che viene spo- stata a luned` 5 Luglio 1999 (incidentalmente, il primo giorno del dataset ı estratto). 2.6 Mercato e dataset di New York Si noti innanzitutto che al contrario del caso della California, non esiste un equivalente per la citt` di New York del mercato (e dell’asta) Day-Ahead a (n´ un ente equivalente al California Power Exchange): l’unico mercato ` e e quello Hour-Ahead1 . Per coerenza con gli stimatori realizzati per il caso precedente, per`, si ignorer` questa differenza e ci si limiter` a realizzare, o a a con i dati orari del NYISO, degli stimatori DA. Il dataset orario per lo Stato di New York (d’ora in poi, dataset-N ) ` e disponibile e liberamente utilizzabile da chiunque per scopi didattici e di ricerca ed ` pubblicato sul sito delNew York ISO (NYISO). e Viene fornito sotto forma di serie di file CSV, uno per ogni mese degli anni disponibili. Ogni file contiene unicamente le informazioni di data e ora cui il record si riferisce, e il consumo elettrico misurato nonch´—ine aggiunta rispetto al caso del dataset-C—la stima del consumo elettrico che era stata prevista dallo stesso NYISO per la medesima data e ora. Sia il consumo reale misurato che la stima vengono forniti disaggregati per macro-regioni dello stato; per questa tesi si sono considerate solo le due colonne per la macro-regione comprendente l’area metropolitana di New York. I campi interessanti del dataset-N sono: • date e time, che indicano la data e l’ora del record, ed il giorno della settimana cui appartiene il giorno relativo al record; 1 In effetti, questa ` la situazione pi` comune: ` la California che, con i suoi due e u e mercati, rappresenta un caso particolare.
  20. 20. 2.7. DATASET-N: ELABORAZIONI 11 • J NYC Actual il carico elettrico misurato per l’istante descritto dal record; • J NYC Forecast il carico elettrico precedentemente stimato per l’istante descritto dal record. 2.7 Dataset-N: elaborazioni Le elaborazioni applicate al dataset-N sono analoghe a quelle per il dataset- C: sono per` realizzate in due passi, per comodit` di implementazione: o a • un primo semplice script Bash build newyork single csv.sh aggrega tutti i file CSV mensili scaricati dal sito del NYISO presenti nella directory corrente del processo in un singolo file CSV; • successivamente uno script per R, make csv newyork.r, del tutto analogo a quello per la California, estrae i campi di interesse so- pra riportati per il sottointervallo voluto dei dati e aggiunge i campi WEEKDAY, ISHOLIDAY e ISHOLISATSUN per la gestione delle festivit` nonch´ il campo DAE; questi campi hanno significa- a e to identico a quelli del dataset-C (a parte ovviamente le date delle festivit` che sono state adattate a quelle dello Stato di New York). a L’unica altra elaborazione effettuata sul dataset-N da parte dello script per R ` la rinominazione dei campi date in DATE, time in HOUR, e J NYC Actual in ACTUAL e J NYC Forecast in FORECAST, principalmente per uniformit` con il dataset-C. a Per la costruzione degli stimatori per il consumo di New York si ` e estratto l’intero intervallo 1 Gennaio 2003 - 30 Agosto 2004, coerentemente al lavoro descritto in [6] (nelle prove sono stati poi utilizzati intervalli pi` u corti). Si fa notare che dal sito del NYISO non risulta pi` scaricabile il u file del mese di Ottobre 2003: si ` quindi scelto semplicemente di omettere e i dati relativi a questo mese dal dataset utilizzato per le simulazioni con la GP. A parte il mese di Ottobre 2003, nel dataset-N non esistono altri dati mancanti, quindi non c’` stata la necessit` di interpolazione dei dati e a come fatto per il caso della California. Il dataset risultante dall’elaborazione dello script R viene salvato dallo script nel formato CSV (Comma Separated Values) richiesto da ED.
  21. 21. ` 12CAPITOLO 2. IL MERCATO DELL’ELETTRICITA DEGLI STATI UNITI 2.8 Festivit` per lo Stato di New York a Le festivit` per lo Stato di New York sono state ricavate da Wikipedia a (vedi [3]). Le festivit` pubbliche osservate a New York sono: a Festivit`a Ricorrenza 1 Gennaio Capodanno Terzo luned` di Gennaio ı Compleanno di Martin Luther King 12 Febbraio Compleanno di Lincoln Terzo luned` di Febbraio ı Compleanno di Washington Ultimo luned` di Maggio ı Memorial Day 4 Luglio Festa dell’Indipendenza Primo luned` di Settembre ı Festa del Lavoro Secondo luned` di Ottobre ı Columbus Day Primo marted` di Novembre ı Election Day 11 Novembre Giorno dei Veterani Quarto gioved` di Novembre ı Thanksgiving 25 Dicembre Natale Tabella 2.2: Festivit` nello Stato di New York a Per quanto riguarda le feste che vengono a cadere di domenica o sabato, valgono le stesse regole della California sopra riportate, quindi lo script applica l’algoritmo di scelta descritto per il caso della California.
  22. 22. Capitolo 3 Cenni sulla Genetic Programming 3.1 GP per la regressione simbolica di serie tem- porali La Genetic Programming (GP )[8][4][9] ` un metodo automatico per creare e algoritmi per computer tramite un approccio simile a quello dell’evoluzione delle specie basata sulla selezione naturale, descritta da Darwin in [5]. Il funzionamento della GP ` iterativo e si basa principalmente su un ciclo e di selezione artificiale applicato ad un insieme di algoritmi generati in maniera pseudo-casuale (individui ), che vengono ricombinati fra di loro in modo da convergere verso una soluzione ottima secondo una metrica decisa a priori. Per regressione simbolica di serie temporali si intende invece il proble- ma di trovare una espressione matematica in forma simbolica che fornisca una buona o perfetta corrispondenza ad una serie di valori misurati di una grandezza, eventualmente influenzata da un insieme di variabili indi- pendenti di cui si possiede lo storico. Nel campo dell’analisi numerica si parla di curve fitting, ovvero l’obiettivo ` quello di trovare un modello che e aderisca meglio possibile ad un certo insieme di dati o punti. La regres- sione simbolica si differenzia dagli altri tipi di regressione in quanto non si devono semplicemente trovare dei coefficienti numerici da applicare ad 13
  23. 23. 14 CAPITOLO 3. CENNI SULLA GENETIC PROGRAMMING una funzione con una forma prestabilita, ma si vuole trovare la funzione stessa. Se si utilizza la GP per risolvere un problema di regressione simbolica di serie temporali, si ha che gli individui sono algoritmi che prendono in ingresso i valori delle variabili indipendenti e producono i valori della variabile dipendente; la GP, applicando il suo ciclo evolutivo, perverr` ad a individui che massimizzano l’aderenza della curva prodotta dagli individui a quella dei valori veri misurati. 3.2 Insiemi di dati per stimatori di serie tempo- rali ` E opportuno innanzitutto definire alcuni termini relativamente agli insiemi di dati usati solitamente nella ricerca di stimatori per serie temporali (non solo tramite regressione simbolica usando la GP, ma tramite qualunque metodo). La ricerca di uno stimatore per serie temporali si pu` pensare suddivisa o in due fasi: • la prima si occupa della generazione dello stimatore, ci` di una o soluzione candidata al problema; • la seconda si occupa della prova dello stimatore su di un insieme di dati che in fase di creazione non gli era stato sottoposto, al fine di misurarne le prestazioni (a tal fine deve esistere la serie di valori reali misurati della grandezza stimata dallo stimatore per questo secondo insieme di dati). La seconda fase si chiama testing e l’insieme di dati su cui si testano le performance si chiama testing set. Per la GP la prima fase, in cui si creano gli individui/soluzioni, fa uso di due insiemi distinti: il primo ` detto training set e il secondo validation e set. La GP lavora creando gli individui facendo uso del training set e misurando la bont` degli stessi sul validation set. Si noti che la soluzione a viene generata e scelta senza mai aver visto il testing set, e questo auto- rizza ad usare il testing set come intervallo per una misura obiettiva delle performance.
  24. 24. moderate or variable size (e.g. [ Fig. 1. Deep Groove Ball Bearing B. Representation three forces, one for each axe and two moments. We obtain a 5 by 5 stifness matrix. Since the purpose of this paper is to The programs are usually re 3.3. GENETIC the Genetic Programming BREVE we will consider present PROGRAMMING IN approach 15 trees, where a branch node is only the three first elements on the diagonal of the matrix, set which may contain arithmeti those corresponding to the force component. Furthermore the In altri metodi che non siano la regressione simbolica basata sulla GP, with at least one argum functions instead an element from a termin la prima fase possiede is the same solo all elements datithe stiffness methodology invece un for insieme di of che si dice anch’esso matrix. variables, constants and functio generalmente training set. and leaves of the tree can on In questo lavoro si ` scelto di usare la GP, quindi ci si trover`provided by the user. e a sempre nel caso dei tre III. G ENETIC P ROGRAMMING IN A N UTSHELL insiemi di dati: Identification of the element set and terminal set should be • il training set e il validation set, in fase di creazione degli individui; Genetic Programming (GP) is an automatic method for cre- order to provide terminals and ating set, nella fase esterna di misura delle performanceexpress a solution to the prob • il testing computer programs by means of artificial evolution [9]. to degli A population of computer programs are generated at random. should be the most significant individui selezionati quali migliori. Then, each program is associated with a fitness value which domain considered. When the d and involves a wide number of In pi`,quantifies its ability to si ` utilizzato ancheIts application to set, che u in questo lavoro, solve a given problem. un long testing e a given problem requires the definition of a fitness function for strategies may be employed to ` un’estensione opportuna del testing set (comprende il testing set esat- e that problem, that is, the definition of a quantitative measure process [5]. tamente all’inizio). Si ` introdotto il long testing setdetailsvedere come symbolic regression pro e of the performance of a candidate solution (more per will For si conportasse lo stimatore oltre il testing set, che `recombination to consist of the arithmetic operato follow). Fitter programs are selected for e stato generalmente scelto in modo da coincidere con quelloby using geneticpaper di riferimento[15][6]. produce a new population riportato nei operators, such as The terminal set may consist crossover and mutation. This step is iterated for some number and constants fixed according t of generations until the termination criterion of the run has of the problem, or randomly ge 3.3 Genetic Programming in illustrated in Figure Constants ERC) [9]. An exampl been satisfied. The evolutionary cycle is breve 2. mathematical expression is pres Fig. 3. A tree representation of x × y Fig. 2. Basic scheme for artificial evolution Figura 3.1: Schema di base della Genetic Programming In the stiffness problem we and the constants 0, 1, 0.1 as ele Un cicloThe Genetic di GP inizia process shares some popolazioni di al- four basic mathema evolutivo Programming col generare una working we selected principles with the other variants of Evolutionary Algorithms elements of the function set. goritmi in maniera casuale (si veda la figura 3.1). Poi, ad ognuno degli (EA) [2], and is closely related to Genetic Algorithms (GAs) Other representations such as algoritmi—chiamati main difference lies in the per mantenere ilthe [3] and grammatical evolution [ since their anche individui proprio interpretation of parallelo con la selezione naturale darwiniana—viene associato un valore di fitness che to the abstract synta representation [20]. alternatives misura la sua abilit` a risolvere il problema scelto. La fitness viene cal- a colata tramite una funzione di fitness che viene implementata nel motore
  25. 25. 16 CAPITOLO 3. CENNI SULLA GENETIC PROGRAMMING di GP ; deve essere scelta in modo da essere adatta al problema che si vuole risolvere, e deve fornire come risultato una misura quantitativa di quanto buone siano le performance dell’individuo su cui viene calcolata. Gli algoritmi/individui migliori, ovvero quelli che massimizzano la fitness, vengono quindi infine per essere ricombinati fra di loro per produrre una nuova popolazione; questa fase fa uso di operatori genetici, quali crossover e mutazioni. Alla nuova popolazione viene applicato il criterio di scelta basato sulla fitness, e in ciclo ricomincia. Il ciclo viene ripetuto per un certo numero di generazioni, finch´ non e viene soddisfatto il criterio di terminazione prescelto (tempo massimo di calcolo da non oltrepassare, scoperta di un individuo con fitness ottima, . . . ). Nei prossimi sottocapitoli si analizzano in maggior dettaglio i singoli passi appena descritti. 3.4 Individui e popolazione iniziale L’approccio della Genetic Programming si basa su una popolazione di solu- zioni o algoritmi candidati alla risoluzione del problema. Solitamente ogni algoritmo viene chiamato individuo. La dimensione della popolazione vie- ne specificata dall’utente e dipende dalla difficolt` attesa del problema. a Storicamente, si ` sempre reputato che per migliorare le performance del e processo di GP ` necessario utilizzare popolazioni molto numerose; po- e polazioni molto numerose vengono considerate una scelta opportuna in quanto dovrebbero mantenere la diversit` e dovrebbero prevenire rischi di a convergenza prematura verso massimi locali. Di recente, per`, ci si sta o orientando verso altri approcci che permettono di utilizzare popolazioni di dimensione moderata o variabile nel tempo[7]. 3.5 Rappresentazione degli individui Gli individui vengono solitamente rappresentati come alberi di sintassi astratta (Abstract Syntax Tree, AST ), nei quali i nodi interni sono ele- menti di un insieme di funzioni che pu` contenere funzioni aritmetiche o o elementari o operatori logici che accettano almeno un argomento, mentre
  26. 26. were considered beneficial because they maintain diversity and may avoid premature convergence. However, more recent works advocate for different approaches, using populations of moderate or variable size (e.g. [7][12]). 3.5. RAPPRESENTAZIONE DEGLI INDIVIDUI 17 B. Representation o moments. We obtain a i nodi foglia The programs elementi direpresented as di terminali, che solita- pose of this paper is to sono invece are usually un insieme abstract syntax proach we will mente ` composto da a branch costanti e element senza function e consider trees, where variabili, node is an funzionifrom a argomenti. I nodi diagonal of the matrix,e le foglie dell’albero possono essere operators, elementaryquesti due interni set which may contain arithmetic, logic solo elementi di ponent. Furthermore the che sono stabilitileast one argument. A leaf node of the tree is insiemi, functions with at a priori dall’utente. ements of the stiffness instead an element from a terminal set, which usually contains L’identificazione degli elementi da includere arguments. Nodes funzioni e variables, constants and functions with no nell’insieme di nell’insieme di leaves of the tree essere scelto elements of these sets in modo and terminali deve can only be con cura dall’utente, provided by the user. che le funzioni ed i terminali scelti siano sufficienti per esprimere la solu- G IN A N UTSHELL zione del problema; inoltre, the possibile,to include in the function in modo Identification of se elements dovrebbero essere scelti set and terminal set should be done carefully by the user in siano i pi` significativi per il dominio del problema considerato. u utomatic method for cre- order to provide terminals and functions which are sufficient f artificial evolution [9]. caso express a solution to the problem. simbolica, l’insieme di funzioni Nel to di problemi di regressione Moreover these elements are generated atconsiste solitamentethe most significant as possible efor the problem random. should be nelle funzioni aritmetiche in quelle trigonometri- th a fitness value which domain considered. When the consiste in variabili indipendenti, in che, mentre l’insieme dei terminali domain is not well understood roblem. Its application to scelteinvolves a wide number of functions and terminals, new generate costanti and considerando il problema da risolvere, o costanti n of a fitness function for strategies may be employed to improve efficiency of the GP casualmente (Ephemeral Random Constants, ERC )1 . f a quantitative measure process [5]. lution (more detailsIn figura For symbolic regression problems, the function set may will 3.2 si mostra un albero di sintassi astratta d’esempio; viene d for recombination to consist of per arithmetic operators, or trigonometric functions. raffigurato l’albero the l’espressione matematica ((x×y)×(1+0.3))−(x∗1). enetic operators, such as Theformula rappresentata ` piuttosto grezza; come si pu` intuire Si noti che la terminal set may consist of the independent variables e o terated for some number and constants fixed according to the preliminary knowledge questo risultato rappresenta la normalit` per la GP, a causa della casualit` a a criterion of the run has of the problem, or randomly generated (Ephemeral Random nella creazione ed evoluzioneAn example of abstract syntax tree for a e is illustrated in Figure Constants ERC) [9]. degli individui. mathematical expression is presented in Figure 3. Fig. 3. A tree representation of x × y × 1.3 − x Figura 3.2: Esempio di albero di sintassi astratta In the stiffness problem we selected the variables Fr , Fz and the constants 0, 1, 0.1 as elements of the terminal set and s shares some working we selected four basic mathematical operators +, −, ×, ÷ as Evolutionary Algorithms elements of the function set. 1 Le ERC sono valori scelti casualmenteas linear genetic programming GP ma che enetic Algorithms (GAs) Other representations such all’inizio dell’esecuzione della restano poi costanti per tutta l’evoluzione he interpretation of the [3] and grammatical evolution [15] are also used and provide alternatives to the abstract syntax tree.
  27. 27. 18 CAPITOLO 3. CENNI SULLA GENETIC PROGRAMMING 3.6 Funzione di fitness La funzione di fitness fornisce la misura di quanto un individuo si adat- ta ad un particolare ambiente, ed ` anche il criterio per selezionare gli e individui che verranno usati per generare una nuova popolazione. La fun- zione di fitness da scegliere dipende dal problema considerato ed ` scelta e dall’utente. La fitness generalmente non viene calcolata su tutti i valori possibili per le variabili indipendenti, ma viene solitamente limitata ad un sottoin- sieme dei valori; questo sottoinsieme deve essere sufficientemente grande da rappresentare un insieme rappresentativo di tutti i valori possibili. Ge- neralmente quindi si sceglie un sottoinsieme finito dell’intero dominio del problema che si sta analizzando, che viene chiamato validation set. Le funzioni che si possono scegliere come fitness sono molte; una delle pi` comuni per i problemi di regressione simbolica ` la varianza dell’errore u e (Mean Square Error, MSE ), cio` la media dei quadrati delle differenze fra i e valori attesi θ (ad esempio, la serie storica reale misurata di una grandezza ˆ fisica) e quelli ottenuti dall’algoritmo/individuo sotto esame θ (la stima): n 1 ˆ M SE = (θ − θ)2 . n i=1 Stabilita la funzione di fitness, e scelti gli elementi dell’insieme di fun- zioni e dell’insieme di terminali, sono pronti tutti gli elementi da fornire a GP per la ricerca della soluzione del problema considerato: a questo punto il ciclo evolutivo pu` essere avviato. o Nei prossimi sottocapitoli si descriveranno singolarmente i quattro passi dell’algoritmo di evoluzione della Genetic Programming. 3.7 Generazione della popolazione iniziale La popolazione iniziale ` composta da individui generati combinando ca- e sualmente elementi dell’insieme di funzioni con quelli dell’insieme dei ter- minali. Esistono principalmente tre metodi di generazione della popolazione iniziale, che si differenziano per la dimensione e la forma degli alberi
  28. 28. 3.8. VALUTAZIONE DELLA FITNESS 19 di sintassi astratta generati, ma che partono tutti e tre dal nodo radice dell’albero: • metodo full : scelto a caso il nodo radice (che va scelto fra i nodi in- terni) in modo che appartenga all’insieme delle funzioni, si procede iterativamente attaccando ad ogni nodo solo nodi di tipo funzione, e mai nodi terminali; quando si ` raggiunta la profondit` massima im- e a postata dall’utente, si completa l’albero scegliendo come nodi foglia solo elementi dell’insieme dei terminali. Questo metodo crea alberi tutti della stessa profondit` e che hanno la caratteristica di essere a perfettamente bilanciati; • metodo grow : scelto a caso il nodo radice in modo che appartenga all’insieme delle funzioni, si procede iterativamente attaccando ad ogni nodo sia elementi terminali (foglie) che elementi funzionali (no- di interni); se un ramo raggiunge la profondit` massima, si scelgono a solo nodi terminali. La distribuzione di probabilit` con cui si sce- a glie i nodi pu` essere uniforme o scelta in modo che certi elementi o degli insiemi abbiano probabilit` maggiore di essere scelti. Gli albe- a ri realizzati con questa tecnica risultano sbilanciati e di profondit` a diversa; • metodo ramped half-and-half : si utilizza il metodo full per met` della a popolazione iniziale, e il metodo grow per l’altra met`; l’obiettivo ` a e quello di garantire una eterogeneit` pi` alta nella composizione della a u popolazione iniziale. Sperimentalmente, si mostra che il metodo che fornisce migliori risulta- ti ` l’ultimo, perch´ aumenta la “bio-diversit`” della popolazione iniziale. e e a Talvolta inoltre si controlla, durante la creazione degli individui, che non venga creato un individuo completamente identico ad uno gi` creato, nel a qual caso si procede a sostituirlo con uno nuovo. 3.8 Valutazione della fitness Dopo la generazione della popolazione iniziale, o dopo la generazione di una nuova popolazione, ogni individuo viene valutato secondo la funzione di fitness. Questo passo ` computazionalmente costoso, e dipende inoltre e
  29. 29. 20 CAPITOLO 3. CENNI SULLA GENETIC PROGRAMMING dal numero di dati del validation set, dalle funzioni scelte, e dalle variabili indipendenti scelte. Poich´ per` questa fase ` intrinsicamente parallela e o e (la valutazione di un individuo non dipende dalla valutazione degli altri individui), viene spesso implementata in modo da sfruttare la presenza eventuale di architetture di calcolo parallelo. Per la fitness si possono scegliere molteplici funzioni; generalmente si tratta di statistiche che pervengono ad una stima dell’errore fra valori misurati e stimati, quali ad esempio l’errore quadratico medio o la radice dell’errore quadratico medio, l’errore percentuale medio, lo scarto medio assoluto, e cos` via, o anche medie di loro restrizioni temporali (es. media ı delle serie degli errori quadratico medi sulle singole settimane o sul singolo giorno). 3.9 Selezione degli individui La fase di selezione si basa sull’applicazione del principio della “sopravvi- venza del pi` adatto” sulle soluzioni candidate, in analogia con la selezione u naturale darwiniana. Esistono molti metodi per implementare la selezione, i pi` usati sono: u • Fitness Proportionate o Roulette-wheel : la probabilit` che ogni in- a ` dividuo venga selezionato ` pari alla sua fitness (normalizzata). E il e metodo proposto originariamente, ma ` stato man mano estromesso e a favore di altri tipi di selezione; • Rank : gli individui vengono ordinati in base alla loro fitness e suc- cessivamente scelti in base alla posizione occupata nella lista; ha il vantaggio di ridurre il predominio assoluto degli individui dotati di fitness particolarmente alte rispetto agli altri, in modo da limitare la possibilit` che si diminuisca la bio-diversit` e si evolva anticipata- a a mente verso un soluzione ottima solo localmente; allo stesso tempo, questo metodo esagera la differenza tra due elementi dotati di fitness molto simile ma tuttavia differenti nella posizione che hanno assunto nella lista; • Tournament: un numero prefissato di elementi viene estratto in mo- do casuale tra la popolazione; fra questi, viene scelto quello con fitness pi` alta; questa ` la tecnica di selezione pi` utilizzata; u e u
  30. 30. oi − ei ) (4) • elitism, the main idea of elitism is to copy the best or the few best individuals in the next generation. Elitism can t Mean Square Error, increase performance of genetic programming and avoids to lose the best known solution. The rest of the population is processed with the selection methods presented above. (oi − ei ) 3.10. (5) VARIAZIONE DEGLI INDIVIDUI 21 1 d terminal set according G. Variation • con Elitism: copia semplicemente l’individuo o gli individui migliori cted, and when a fitness Variation or genetic operators act on the structure of the date programs from bad trees and on the content of the nodes or leaves, by combining applica- nella successiva generazione, mentre per i i rimanenti viene solutions can evolve to uno modifying two or more parental questo permette dinew, as or dei tre metodi precedenti; individuals to create aumentare le rt we will describe each possibly better solutions (i.e., offsprings). The non si rischia mai di performance dell’evoluzione complessiva perch´ goal is to e approach. perdere le migliori soluzioni trovate finoobtain an individual combine parental traits with the hope to a quell’istante. with an improved fitness. The simplest variation operator in GP is duplication since it does only an exact copy of an 3.10 Variazione degli individui allows to keep of individuals randomly individual without any change. This operator a copy of some selected individuals in the population during nction and terminal sets. artificial evolution. generate trees La GP is in variazione o applicazione delle operazioni genetiche agisce sulla strut- . This method tura degli alberi e recombination of two due o pi` individuioperated (genitori ) generate In GP, sui singoli nodi di parents individuals is diversi u by subtree-crossover. This genetic operator use two individuals nterval specified bycrearne nuovi (figli ), nella speranza che i nuovi individui siano migliori. per the and-half produces trees fase segna by passaggio fra una generazione e la operation provided the selection procedure. The crossover Questa starts withiltwo parental trees and produces two offsprings. successiva. ethod and for the second w algorithm, a tree of ng terminals or functions stribution. With the full generated by selecting tree size approaches a inals are selected. hm are presented which ilities of appearance of ation, each individual is ction. Fitness evaluation gh it’s highly dependent o speed up the evaluation n proposed to exploit the ary algorithms: master- ed or cellular model [6] Fig. 4. Subtree crossover Figura 3.3: Esempio di crossover fra individui Esistono principalmente tre variazioni possibili; generalmente viene ap- plicato un mix dei tre, magari scegliendoli di volta in volta con probabilit` a stabilite a priori: • duplicazione: effettua semplicemente una copia di un individuo esi- stente della generazione attuale nella popolazione della nuova gene-
  31. 31. mutation change locally a single individual. For the one We indicate functions point-mutation an individual is chosen from the population in Table I. Ephemeral R according to the selection algorithm. The mutation operation randomly chosen in the begins by selecting a point at random within the tree, then the mutation operation replace the function or the terminal node T ERMINA 22 with the same type of element. This operation is useful to CAPITOLO 3. CENNI SULLA GENETIC PROGRAMMING introduce diversity without modify the shape of the tree. Termin Fr , Fz , 0, 0. we used our own Genet the Java language. This where each step of th III is implemented in a tree generation, fitness e provided. Moreover this approach [14] in order t The parameters comm the Table II. PAR Parameter Population size Fig. 5. One point mutation Initialization method Figura 3.4: Esempio di mutazione di nodo Initialization depths There are many variations of mutation and crossover [4][13] Maximum depth for tree Selection available in the litterature. The probability rate to use crossover Elitism razione;variation is currently higher than for mutation since it is for ` un analogo della selezione con elitism; la duplicazione ha node bias for cr e Internal l’effetto di dare crossover operator convergenza; convergence believed the un impulso alla allow a quicker Duplication rate Crossover rate than mutation but importance of crossover versus mutation is Mutation rate • still an open debate. crossover (vedi figura 3.3): ` l’operatore principe della GP, e di gran of runs e Number lunga The steps u usato; il crossover lavora scambiando due sotto- quello pi`fitness evaluation, selection and variation are alberi degli either until to obtain creare solution or until to repeatedindividui genitori peran ideal due individui figli; il nodo ra- is the result Each test reach a number of cycle called generation. execution started with a dice di ognuno dei due sotto-alberi da “staccare” viene scelto con pro- babilit` uniforme indipendentemente per ognuno dei due individui; a generator. IV. E XPERIMENTAL PROCEDURE We ran all simulation l’operazione di crossover tende a preservare la bio-diversit`; a on a processor Intel Ce We calculate the stiffness values for our training set with GB of RAM. • mutazione di singolo nodosoftware. Bearing beacon allows the the SKF bearing beacon (vedi figura 3.4): questo operatore lavora su un solo albero3D graphic environment of generic mechanical cambiare modelling in a alla volta, e consiste semplicemente nel systems like gear boxes with a precise bearing model for un nodo selezionato casualmente all’intero dell’albero con un To assess the results o nuovo an in-depth analysis of the system behaviour in a virtual nodo dello stesso tipodetails on this se il nodo originale era funziona- on the followin environment. More (funzionale product can be found on we focus le, terminale se il nodo originale era terminale); questo operatore the web at http://www.skf.com/portal/skf/home/products. • Standard deviation introduce bio-diversit` raw stiffness matrixes provided by the We transform the senza alterare la forma degli alberi; a function which eval software in three training sets. Each of them is composed of tifies the difference • mutazione di Koza: questo operatore 1201 fitness cases corresponding to all analogamente al precedente combinations of the response predicted b integer values taken in the interval [0, 1000] by in modo casualewhether the model seleziona un singolo individuo genitore, sceglie step of 20 un • Correlation coefficie suo nodo, che poi viene sostituito con un interoFr , Fz and assigned to each combination of input’s variables nuovo sotto-albero, the output associated with one element of the stiffness matrix of a linear relations generato all’istante, analogamente a quanto fatto nella fase della diagonal. The fitness function computes the error standard We report in Table III th deviation on the training set i.e. the root of the mean of tion of each element of the squared distances between the desired values and those To gain further insigh obtained with the program considered (cf. Equation 5). particular regarding the
  32. 32. 3.11. TERMINAZIONE E SCELTA DELL’INDIVIDUO MIGLIORE 23 creazione della popolazione iniziale; anche questo operatore tende a introdurre bio-diversit`. a Si noti che crossover e mutazione di Koza potrebbero generare individui di profondit` superiore a quella massima impostata in fase di creazione a della popolazione iniziale. Generalmente si sceglie di tenere conto della profondit` massima impostata inizialmente anche nelle fasi successive, e a quindi si applicano opportuni accorgimenti per assicurarsi che essa non venga mai superata (troncamento dell’albero, in genere). Ad oggi rimane aperta la questione se l’evoluzione del sistema venga influenzata maggiormente dal crossover o dalle mutazioni, bench´ molti e propendano per una maggiore importanza del crossover. 3.11 Terminazione e scelta dell’individuo miglio- re La terminazione di un ciclo evolutivo di GP pu` avvenire con vari crite- o ri; i tre pi` comuni sono: impostare un numero massimo di generazioni, u impostare un timeout temporale di elaborazione, e impostare una fitness obiettivo, per la quale l’elaborazione si interrompe quando un individuo ` mostra una fitness migliore di quest’ultima. E anche possibile impostare una combinazione di questi tre criteri. Al termine dell’evoluzione viene selezionato l’individuo appartenente all’ultima generazione che possiede la fitness migliore. Questo individuo rappresenta il risultato del processo evolutivo.
  33. 33. Capitolo 4 Evolutionary Design 4.1 Evolutionary Design Evolutionary Design (ED) ` un framework realizzato in linguaggio Java e che mette a disposizione un’implementazione espandibile di un kernel per la soluzione di problemi di regressione simbolica tramite Genetic Program- ming. La GP e quindi ED ben si prestano a realizzare stimatori predittivi di questo tipo perch´ non richiedono di avere una conoscenza a priori di e come si combinano nella realt` i vari fattori in gioco per ottenere uno a stimatore dalle buone performance. Il software, oltre a fornire un’interfaccia semplice per la configurazione (basata su di un file XML) e l’esecuzione di processi GP, ` dotato di e un insieme ben strutturato di file di log che vengono registrati durante l’esecuzione e riportano informazioni dettagliate sull’evoluzione svolta. Il framework presenta un’architettura di tipo modulare basata sull’idea di plugin ed ` dunque facilmente espandibile. e Le sue principali caratteristiche sono: • rappresenta gli individui/formule mediante alberi di sintassi astrat- ta; • implementa le funzionalit` necessarie per trattare problemi di re- a gressione simbolica di serie temporali; 25
  34. 34. 26 CAPITOLO 4. EVOLUTIONARY DESIGN • lavora suddividendo il dataset di input con le variabili indipendenti nei due intervalli di training set e validation set, per permettere la validazione incrociata dei risultati ottenuti; • fornisce come nodi di tipo funzionale operatori matematici, funzioni trigonometriche e trascendentali, comparatori, operatori booleani e operatori di branch-and-bound; • fornisce come nodi di tipo terminale l’accesso a costanti, ERC1 (for- nite nel file di configurazione XML), e variabili indipendenti (fornite sotto forma di colonne di un file CSV di input); il tipo di ognuna di queste pu` essere booleano o floating point (double); o • le parti di valutazione e costruzione degli alberi seguono un approc- cio strongly-typed : gli alberi vengono costruiti solo se i nodi terminali coinvolti dai nodi funzionali presentano lo stesso tipo (le funzione tri- gonometriche accettano solo double, i comparatori accettano o dou- ble o booleani e ritornano sempre booleani, . . . ); questo permette di ridurre sensibilmente lo spazio delle soluzioni possibili e velocizzare la convergenza; • fornisce, per quanto riguarda le strategie di creazione della popola- zione iniziale, gli algoritmi di selezione e gli algoritmi di variazione, tutti quelli descritti nel capitolo precedente; • fornisce moltissime funzioni di fitness gi` implementate. a Come si ` detto ED ` realizzato secondo un’architettura modulare. Il e e codice ` distribuito in vari plugin al fine di ottenere un’indipendenza netta e tra la parte del core e le parti implementate nei moduli. Esistono 8 tipi differenti di plugin, ognuno dei quali si preoccupa di una parte del processo evolutivo: tra gli altri, plugin per la creazione della popolazione iniziane, plugin per la variazione, plugin per la selezione, plugin per le singole fitness (i plugin che definiscono le funzioni di fitness in ED vengono detti objective plugin), e cos` via. ı 1 Si ricordi, come detto nel capitolo 3, che le ERC sono valori scelti casualmente all’inizio dell’esecuzione della GP e che restano poi costanti per tutta l’evoluzione
  35. 35. 4.2. EVOLUTIONARY DESIGN: REGRESSIONE SIMBOLICA 27 4.2 Evolutionary Design: regressione simbolica Giova descrivere pi` in dettaglio il funzionamento di ED, dal punto di u vista della regressione simbolica di serie temporali. Nei problemi di regressione simbolica di serie temporali si ha in input una sequenza di valori osservati per una certa grandezza: θ = θ1 , θ2 , θ3 , . . . , θn che ` la variabile dipendente (con valori osservati della variabile dipenden- e te) sotto esame. Si hanno poi altre sequenze (pi` lunghe) di altre variabili u che si ritiene influenzino l’andamento della θ: α = α1 , α2 , α3 , . . . , αn , αn+1 , . . . , αn+k β = β1 , β2 , β3 , . . . , βn , βn+1 , . . . , βn+k γ = γ1 , γ2 , γ3 , . . . , γn , γn+1 , . . . , γn+k . . . che vengono dette variabili indipendenti. Con la regressione simbolica si vuole trovare una funzione f che per- metta di ottenere θ anche per valori successivi a θn , in funzione delle variabili indipendenti α, β, γ, . . .: ˆ θ = f (α, β, γ, . . .). ˆ Abbiamo indicato la nuova θ con un “cappellino” (θ) per rimarcare che la f sar` una funzione approssimante, e che quindi i valori da θ a θn a ˆ ˆ ˆ , detti valori stimati della variabile dipendente, saranno e quelli da θn+1 ovviamente diversi da quelli originali misurati (ma di poco, se la f ` une buon stimatore). Di f alla fine si otterr` l’albero di sintassi astratta che la descrive. a 4.3 Evolutionary Design: backshift ` E spesso utile considerare, nel calcolo della funzione di regressione, non solo le serie di variabili indipendenti sincrone alla variabile dipendente, ma anche magari serie di valori delle variabili indipendenti posticipate rispetto
  36. 36. 28 CAPITOLO 4. EVOLUTIONARY DESIGN alla variabile dipendente: ad esempio, l’umidit` dell’aria attuale—la si a supponga variabile dipendente—dipende non solo dalla temperatura—la variabile indipendente—attuale, ma anche dall’avvicinarsi o meno di un fronte, che si pu` rilevare guardando alla temperatura dell’ora precedente o o di due ore prima. I sistemi di calcolo per regressioni simboliche di serie temporali, quin- di, offrono solitamente l’opportunit` di usare come variabili indipendenti a anche serie ritardate delle stesse, che vengono dette serie con backshift. Addirittura, spesso si ha che la variabile dipendente ` influenzata, oltre e che dalla variabili indipendenti o loro valori precedenti, anche dai suoi stessi valori passati2 : sempre nell’esempio, si pu` pensare che l’umidit` o a attuale abbia una certa dipendenza anche dall’umidit` dell’ora precedente. a Anche in questo caso si ha backshift e si noti che cos` facendo la serie ı ritardata della variabile dipendente diventa a tutti gli effetti una nuova variabile indipendente. Si ha insomma che lo stimatore si pu` pensare cos` fatto: o ı ˆ θ(t) =f (α(t), β(t), γ(t), . . . , α(t − i), α(t − j), . . . , β(t − m), β(t − n), . . . , γ(t − o), γ(t − p), . . . , θ(t − q), θ(t − r), . . .). ED ovviamente supporta la gestione del backshift3 ed essa ` stata sem- e pre usata in questo lavoro nell’opera di ricerca dei uno stimatore simbo- lico per i consumi e i prezzi dell’elettricit` in California o a New York, a perch´, come si vedr`, le serie di consumi e prezzi mostrano evidente e a autocorrelazione. 2 La variabile dipendente ha cio` una alta autocorrelazione dei suoi valori. e 3 Una curiosit`: quando ED si trova a gestire i backshift, sia quelli di variabile in- a dipendente che a maggior ragione quelli per la variabile dipendente, duplica la serie originale e crea un’intera nuova variabile indipendente che ha come valori la serie ori- ginale ritardata dell’opportuno ritardo/valore di backshift; quindi in ED si pu` dire o letteralmente che un backshift introduce sempre una nuova variabile indipendente.
  37. 37. 4.4. EVOLUTIONARY DESIGN: TERMINOLOGIA 29 4.4 Evolutionary Design: terminologia Si descrivono ora alcuni termini che verranno usati nel prosieguo. Ci si riferisce ad una singola esecuzione di ED con il nome di run. Ogni run comprende un numero fissato N di job, ognuno dei quali ` e una singola sequenza evolutiva, del tutto indipendente dalle altre; ogni job ` configurato alla medesima maniera degli altri, ma la popolazione di indi- e vidui iniziali di ogni job viene ogni volta generata casualmente utilizzando un seed univoco. Il seed di ogni job pu` essere scelto in maniera casua- o le, oppure fissato in partenza; quest’ultima scelta ` opportuna in quanto e in questo modo il run diventa deterministico e pu` essere rieseguito per o ottenere gli stessi identici risultati nel caso ce ne fosse la necessit`4 . a Alla fine dell’esecuzione, per ogni job si ottiene un individuo migliore, che ` quello che all’ultima generazione del job possiede il migliore indice di e fitness cos` come calcolato dalla funzione di fitness impostata. A questo ı punto, fra gli individui migliori di ogni job, ` generalmente necessario se- e lezionarne uno mediante una qualche metrica; per questo lavoro si ` scelto e sempre quello che fra tutti minimizzasse l’indice della fitness calcolata sul solo validation set. Si noti che ED supporta nativamente l’elaborazione parallela all’inter- no di un run; infatti ogni job ` indipendente dagli altri, quindi l’elabora- e zione ` parallelizzabile sui job; questo fatto ` stato sfruttato a fondo in e e questo lavoro perch´ le esecuzioni sono state condotte su macchine multi- e core (8 core o 4 core), cosa che ha permesso di ridurre significativamente il tempo di attesa totale. 4.5 Evolutionary Design: configurazione La configurazione di ED avviene tramite un unico file XML che specifica tutti i parametri necessari ad un run. Vanno indicati in questo file XML: • il numero di job voluti; 4 In ED se si sceglie di usare un seed fissato, si fornisce in realt` un seed iniziale a che poi viene incrementato di un delta per ognuno dei job che vengono istanziati. Nel nostro caso il seed iniziale ` 190000000, il delta ` 1000 e quindi i seed dei job andranno e e da 190000000 a 190000000+N*1000.
  38. 38. 30 CAPITOLO 4. EVOLUTIONARY DESIGN • se generare casualmente i seed dei job o usarne degli assegnati; • il numero di individui della popolazione iniziale; • la funzione di fitness da utilizzare; • un file CSV con le variabili indipendenti e la serie storica della va- riabile dipendente di cui si vuole costruire lo stimatore (il dataset di input); • l’indicazione degli intervalli di record nel file CSV da considerare come training set e quelli da considerare come validation set; • le costanti, le ERC e il sottoinsieme delle variabili indipendenti (con eventuali backshift) prese del file CSV da utilizzare come nodi terminali; • la colonna del file CSV che rappresenta la variabile dipendente da stimare; • gli eventuali backshift della variabile dipendente; • le operazioni matematiche che possono essere utilizzate come nodi non terminali; • il numero di generazioni massimo da permettere in ogni job e la durata massima (in secondi) di ogni job, come criterio per termina- re l’elaborazione nel caso non si raggiunga mai la fitness massima all’interno della sequenza evolutiva; • la strategia evolutiva da seguire; • la strategia per la valutazione degli individui. 4.6 Evolutionary Design: strategie per la valuta- zione Fra i parametri indicati nell’elenco sopra appare una strategia per la va- lutazione degli individui che non appartiene propriamente alla Genetic
  39. 39. 4.7. DAESCALAREVALUATION 31 Programming ma deriva da una scelta architetturale fatta in EDper au- mentarne la flessibilit`.a Infatti, la parte computazionalmente preponderante in una evoluzione di GP ` la fase di valutazione della fitness sugli individui. Poich´ per` le e e o variabili indipendenti con i loro backshift non sono mai modificate dalla procedura, n´ lo ` la serie di valori osservati per la variabile dipendente e e (con i suoi backshift), e le valutazioni della fitness per i diversi individui come detto sono assolutamente slegate, ` generalmente possibile portare e avanti la fase di valutazione in maniera parallela sui vari individui. Per tale motivo in ED il plugin standard di strategia per la valutazione degli indi- vidui, detto VectorizedEvaluation, opera in modo parallelo ed accede alle variabili indipendenti senza particolari accorgimenti di sincronizzazione. In alternativa, ED fornisce una ScalarEvaluation che valuta gli indi- vidui in maniera strettamente serializzata (al costo di un’esplosione dei tempi di calcolo), nel caso ci sia necessit` di usare questo approccio. Si a noti che in entrambi i casi il risultato dell’evoluzione ` uguale, a parte la e differenza nei tempi di calcolo. La strategia generalmente utilizzata per le prove di questa ricerca ` e ovviamente la VectorizedEvaluation. La ScalarEvaluation ` stata utiliz- e zata in un solo caso mediante una sua sottoclasse, DAEScalarEvaluation, che ` stata creata per l’occasione, e che si descrive nel prossimo punto. e 4.7 DAEScalarEvaluation Durante la ricerca di uno stimatore per il mercato Day-Ahead per i con- sumi dello Stato della California, i primi risultati sono stati generalmente peggiori rispetto a quelli ottenuti nel caso del mercato Hour-Ahead. Ci si ` allora chiesto se si poteva utilizzare, nella fase di valutazione e di ogni individuo, al fine di migliorare gli stimatori ottenuti, una stima dell’errore in cui ogni individuo ` in corso per la giornata immediatamente e precedente a quella cui appartiene l’istante corrente di valutazione5 . 5 Si noti infatti che nella stima del mercato Day-Ahead, le cui aste si chiudono un giorno prima dell’istante in cui l’energia elettrica battuta dovr` essere fornita o con- a sumata, non si pu` considerare fra i backshift della variabile dipendente ore posteriori o all’ora corrispondente alla stessa ora del giorno precedente—detto in altro modo, sono illegali backshift inferiori (in valore assoluto) al backshift −24.

×