Corso di Laurea Specialistica in Ingegneria Informatica Previsione dei Consumi Elettrici = Progetto per lesame di Linguaggi e Modelli Computazionali LS.

Slides:



Advertisements
Presentazioni simili
Misure ed Errori Prof Valerio CURCIO.
Advertisements

Linguaggi algoritmici
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Ripasso R1 Dati strutturati.
Analizzatori Lessicali con JLex
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Lezione 2 Chiara Mocenni Corso di laurea L1.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Scelte di consumo Chiara Mocenni Corso di laurea.
Lezione 4 IL MERCATO DEI BENI
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al 4 Marzo 2013.
Processi Aleatori : Introduzione – Parte I
Laboratorio di Linguaggi lezione IV: tipi definiti dallutente Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Access: Query semplici
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
Esercizi C sui tipi definiti dall’utente
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
HyperText Markup Language 17-23/6/08 Informatica applicata B Cristina Bosco.
Progetto per lesame di Linguaggi e Modelli Computazionali LS Chiara Chiara Gualtieri.
Progetto desame di Gianluca Gallo Linguaggi e modelli computazionali LM Prof. Enrico Denti.
Linguaggi e Modelli Computazionali LS - Prof E.Denti
Elementi di Informatica di base
CineMan Linguaggio per la descrizione della programmazione di cinema
Corso di Laurea Specialistica in Ingegneria Informatica Itinerari aerei Progetto per lesame di Linguaggi e Modelli Computazionali LS realizzato da Stefano.
S ::= Formazione Formazione ::= NomeSquadra Team NomeSquadra ::= Team ::= Schema Tabellino | Tabellino Schema ::= Difesa Tabellino ::= ElencoTitolari.
Gianfranco Zampolini Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.
PORRE E RISOLVEREPROBLEMI PORRE E RISOLVERE PROBLEMI il testo e i dati Vai avanti.
Corso di Laurea Specialistica in Ingegneria Informatica Model Drive Applicazione per il pilotaggio di veicoli Esame di Linguaggi e Modelli computazionali.
Linguaggi e modelli computazionali LS
Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Differenziare in ambito matematico
Progetto don’t you forget
Progetto Fireworks Simulatore di spettacoli pirotecnici
Tablabla Progetto di Valent Cristina
Università degli Studi di Bologna Facoltà di Ingegneria Anno Accademico 2007/2008 Laurea Specialistica in Ingegneria Informatica Linguaggi e Modelli Computazionali.
Chess Game Visualizer Un interprete per Short Algebraic Notation Progetto per lesame di Linguaggi e modelli computazionali LS prof. Denti – A.A. 2007/08.
Linguaggi e modelli computazionali LS Manni Tiziano
Colloquio di vendita La gioia di vendere Parte 2.
Lezione 3 Struttura lessicale del linguaggio
Programmazione ad oggetti
PROGETTO E REALIZZAZIONE DI UN COMPONENTE SOFTWARE PROGRAMMABILE PER LA PIANIFICAZIONE DI COMMISSIONI DI LAUREA FACOLTA’ DI INGEGNERIA Corso di Laurea.
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
IV D Mercurio DB Lezione 2
Misure ed Errori.
DRAUGHTS Linguaggi e Modelli Computazionali LS Linguaggio e interprete per effettuare una partita di dama inglese contro un’intelligenza artificiale Progetto.
Giannicola Spezzigu Accordo: sovrapposizione di 3 o più suoni Ogni sigla denota un accordo, ossia i suoni da cui esso è formato Accordi e.
Trading EToro Un linguaggio per descrivere e gestire operazioni di borsa Progetto di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti Mancini Laura.
DerIntCalculator La calcolatrice per integrali e derivate Progetto di Linguaggi e Modelli Computazionali M Prof. Enrico Denti Realizzato da: Gabriella.
Linguaggi e Modelli Computazionali LS Anno Accademico 2007/2008 Alessio Della Motta Un linguaggio per descrivere partite di Maraffone: il gioco più popolare.
ALLOCAZIONE STATICA: LIMITI Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente –la loro esistenza deve essere prevista e.
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
CURRICULA INDIVIDUALI TUTTO QUELLO CHE VOLEVATE SAPERE SUI PIANI DI STUDIO E NON AVETE MAI OSATO CHIEDERE.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
Eye Computer Sistema per l'interazione con un computer dotato di controllo oculare Linguaggi e modelli computazionali LS Realizzato da: Ciavarella Primiano.
La redditività effettiva di un contratto di leasing operativo
IL PREVENTIVO DA PERDITA DI TEMPO A OPPORTUNITA’.
Le basi di dati.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
TARIFFA DIFFERENZIATA PER FASCE ORARIE LUCE PREZZO FISSO VANTAGGIO SCONTO 10% 1° ANNO VANTAGGIO SCONTO 20% 2° ANNO F 0 Fascia Unica TUTTI I GIORNI 0:00.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Cos’e’ la moneta ? Nella nostra esperienza quotidiana la moneta è essenzialmente uno strumento di pagamento, un mezzo di scambio con cui paghiamo e siamo.
Transcript della presentazione:

Corso di Laurea Specialistica in Ingegneria Informatica Previsione dei Consumi Elettrici = Progetto per lesame di Linguaggi e Modelli Computazionali LS realizzato da Marco Ferrari Prof. Enrico Denti Anno Accademico

Scopo del progetto Definire un linguaggio che possa aiutare lutente a scegliere la tariffa dellenergia elettrica più consona alle sue esigenze. Lutente potrà effettuare delle previsioni di spesa relativamente agli oggetti che deciderà di considerare.

Il problema Oggigiorno vengono offerte tipicamente due tipologie di contratto: Tariffa costante 24h/24h Tariffa bioraria Il cliente difficilmente riesce a farsi unidea sulla reale convenienza che può avere scegliere una piuttosto che unaltra.

Il problema Per effettuare una previsione serve considerare: La tariffa Quali oggetti elettrici si utilizzano Per quanto tempo si utilizzano Soprattutto quanta corrente elettrica consumano Questultimo punto è il più complicato per lutente da sapere. Le soluzioni sono: Leggere sul manuale delle istruzioni il valore esatto Utilizzare uno strumento simile a questo per leggere il consumo Lasciare un margine di incertezza sul dato

Grammatica Utilizzo la notazione dello strumento jjdoc G = P è linsieme di tutte le produzioni della grammatica Il fine del linguaggio è quello di effettuare una previsione sui costi, quindi lo scopo della grammatica è: Scopo::= Previsione Previsione

Grammatica Previsione ::= "Tariffa/e:" "{" ( Tariffa )+ "}" "Consumi:" "{" ( Consumi )* "}" Come si può notare, ho deciso per coerenza di mettere ( Tariffa )+. Quindi prerogativa del linguaggio è esprimere almeno una tariffa su cui fare la previsione. Daltro canto, se non ci fosse almeno una tariffa, tutto ciò non avrebbe nessun significato. Mentre per quanto riguarda la parte (Consumi )*, si intende esprimere un insieme di oggetti elettrici, sui quali vorremo stimare i costi in un dato lasso di tempo. Come si può notare, il linguaggio accetta che non venga passato nessun oggetto su cui fare una previsione. Loperazione non è particolarmente significativa, ma non si può dire che sia concettualmente errata. Sia per le tariffe che per i consumi sono state inserite delle parentesi graffe allinizio ed alla fine del blocco. NON cè Self-Embedding perché le parentesi si ripetono una sola volta.

Grammatica Tariffa ::= "Fascia oraria" ":" "dalle" "alle" "costo al kWh:" "giorni:" "da" "a" La prima parte dei due blocchi principali è rappresentata dalla dichiarazione della/e tariffe. I parametri che la caratterizzano sono: a) fascia oraria in cui vale, b) il prezzo della corrente elettrica espresso in kWh, c) la fascia di giorni in cui vale. Normalmente le tariffe offerte ad oggi non sono più di due (biorarie), però in questo caso si offre la possibilità di gestirne di più. Questa scelta complicherà leggermente le cose, vedremo perché…

Grammatica Consumi ::= "Oggetto: "potenza:" Potenza "kW" "orario" "dalle" "alle" La seconda parte dei due blocchi principali è rappresentata dallinserimento dei vari oggetti di cui si vogliono effettuare delle previsioni di consumo. I parametri in questo caso sono: a) un nome delloggetto, b) la potenza espressa in kW, che andremo a vedere meglio come esprimere, c) la fascia oraria in cui viene utilizzato tale oggetto.

Grammatica Potenza ::= | "da" "a" La potenza merita una riflessione, in merito anche a quanto anticipato nellintroduzione; fondamentalmente ci si può trovare davanti a due situazioni : a) Si conosce esattamente il consumo al kW delloggetto b) Si può avere unidea che può andare da un minimo di tot kW ad un massimo di tot kW. Ecco spiegata lalternativa. Nel secondo caso, per comodità, è stato preso un valore medio tra il consumo minimo ed il consumo massimo.

Grammatica – Token ::= ( | )* ::= "0." ::= ( )* > ::= ( "0" | "1" | "20" | "21" | "22" | "23" ) ":"["0"-"5"] ::= ("-LUN-" | "-MAR-" | "-MER-" | "-GIO-" | "-VEN-" | "-SAB-" | "-DOM-" )

::=["a"-"z"] | ["A"-"Z"] | "_" ::=["1" - "9"] ::=["0" - "9"] Le espansioni che iniziano con # sono private, in quanto sono utilizzabili solamente internamente ai soli token. Grammatica – Token

E stato definito un apposito token perché, dalle ricerche effettuate, i costi delle tariffe al kWh sono tutti espressi con questa notazione. Quindi mi sono adeguato a quello che è lo standard. Il token è stato vincolato a monte, in modo da alleggerire i controlli sulla correttezza dei parametri che dovrà effettuare il programma in un secondo momento. Il token, mostra delle sigle che identificano i vari giorni della settimana. Questa scelta, è stata fatta perché ho deciso di prendere come periodo di riferimento per la validità della tariffa, unintera settimana. Grammatica – Token

La grammatica ammette la stringa vuota nella produzione: Previsione ::= "Tariffa/e:" "{" ( Tariffa )+ "}" "Consumi:" "{" (Consumi )* "}" Infatti l*, indica che può produrre da 0 a N Consumi. L rule può essere eliminata nel seguente modo: Previsione ::= "Tariffa/e:" "{" ( Tariffa )+ "}" "Consumi:" "{" Raccoglimento Raccoglimento::=(Consumi )+"}" | "}" Grammatica - osservazioni

Secondo la classificazione di Chomsky, il linguaggio è di tipo 2 in quanto le produzioni non sono regolari, ma: Non presenta Self-Embedding quindi il linguaggio è regolare La grammatica non è stata riscritta per leggibilità e comodità Fatte queste considerazioni, si può dire che la grammatica è LL(1)

Strumenti utilizzati Java 1.6.0_03 JavaCC 4.0 Java Tree Builder NetBeans 6.0

Architettura packages creati e imposti dagli strumenti automatici utilizzati packages creati seguendo il modello architetturale dato dagli strumenti automatici

Architettura syntaxtree contiene quanto necessario allalbero sintattico una serie di classi relative ai nodi una classe per ogni metasimbolo della grammatica parser contiene quanto serve per la gestione del parser classi per il parser e per i token per la gestione delle eccezioni e degli errori lessicali visitor contiene vari visitor di default generati dallo strumento automatico il visitor PrevisioneConsumiVisitor è stato ricavato dalla classe java DepthFirstVisitor, fornita dagli strumenti di generazione automatica. Si occupa di inserire i dati inseriti dallutente nelle apposite strutture dati create.

Architettura Il package main contiene solo la classe Main, utilizzata per lanciare lapplicazione. Utility contiene le strutture necessarie a memorizzare una lista di tariffe e di previsioni. Con tariffe e previsioni, opportunamente definite attraverso due classi che contengono tutti i parametri che le compongono. Grafica contiene la classe Form, ovvero il motore del programma. Form si occupa ovviamente della gestione della parte grafica e dell I/O, di valutare i dati passati in input e di avviare, nel caso tutti i dati siano corretti, la previsione.

Il problema di più tariffe... Come detto in precedenza, ho deciso di prendere come periodo di validità di una tariffa, la settimana. Questo vuol dire che, per ogni minuto della settimana, deve essere definita una corrispettiva tariffa. Ad occuparsi di ciò, è il metodo checkCoerenzaTariffa(), il quale mi dovrà dire: a) se ci siano sovrapposizioni di tariffe nella settimana b) se tutti i minuti della settimana sono stati etichettati con il loro rispettivo valore della tariffa.

Limiti dellapplicazione e sviluppi futuri Sicuramente il limite più grosso che si può notare attualmente è che se lutente non conosce precisamente il consumo di un oggetto, dando un range di valori ottiene solo un dato medio. Sarebbe meglio magari fare unanalisi differenziata caso migliore/caso peggiore. Sarebbe interessante poter visualizzare tramite grafici i risultati ottenuti. Si potrebbe espandere ulteriormente la flessibilità delle tariffe, introducendo la validità per un certo periodo dellanno. Al momento il programma considera che gli oggetti vengano utilizzati tutti i giorni. Per avere dei risultati più accurati, si potrebbe introdurre una fascia relativa al periodo in cui tale oggetto viene utilizzato (es. settimana/mese/anno).

Un ultima considerazione... Questo programma è stato pensato per venire incontro ad un cliente che è interessato a valutare quale piano tariffario gli conviene sottoscrivere. In realtà, potrebbe essere utilizzato anche da parte dei fornitori di energia elettrica per valutare nuove possibili offerte da proporre sul mercato.