Linguaggi e Modelli Computazionali LS - Prof E.Denti

Slides:



Advertisements
Presentazioni simili
Linguaggi algoritmici
Advertisements

I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
Sintassi (prima parte)
Traduttore diretto dalla sintassi (seconda parte)
Linguaggi Regolari e Linguaggi Liberi
Algoritmi e Programmazione
Intelligenza Artificiale
La Rappresentazione della Conoscenza
Agenti logici: la logica del prim’ordine
1 Linguaggi di Programmazione - elementi Corso di Laurea in Informatica (AA 2005/2006) Gabriella Pasi e Carla Simone
Deduzione naturale + Logica & Calcolabilità
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Intelligenza Artificiale Linguaggio naturale
Maria Teresa PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Modelli simulativi per le Scienze Cognitive
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Intelligenza Artificiale II Dimostrazione automatica di Teoremi
-calcolo Vogliamo studiare le problematiche relative al meccanismo di chiamata di funzione (eg differenze fra binding statico e dinamico) in isolamento.
Unità Didattica 1 Algoritmi
Intelligenza Artificiale
Intelligenza Artificiale
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
LINGUAGGI DI PROGRAMMAZIONE
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Intelligenza Artificiale
Fondamenti di Comunicazione Digitale
Progetto per lesame di Linguaggi e Modelli Computazionali LS Chiara Chiara Gualtieri.
ANTLR V.3 Renzi Alberto.
Progetto desame di Gianluca Gallo Linguaggi e modelli computazionali LM Prof. Enrico Denti.
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.
Gianfranco Zampolini Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.
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
Agenti logici: calcolo proposizionale Maria Simi a.a. 2008/2009.
Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti.
Corso di Laurea Specialistica in Ingegneria Informatica Previsione dei Consumi Elettrici = Progetto per lesame di Linguaggi e Modelli Computazionali LS.
Un linguaggio ed un interprete per il gioco Citadels
Progetto don’t you forget
Attività progettuale in Linguaggi e Modelli Computazionali M
Tablabla Progetto di Valent Cristina
SQL File Manager un nuovo modo di gestire il filesystem….
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
ATTIVITÀ PROGETTUALE LINGUAGGI E MODELLI COMPUTAZIONALI L-M Un linguaggio per la descrizione di coreografie giocabili STUDENTE: BACCHILEGA SIMONE A.A 2013/2014.
Fondamenti di Programmazione
Linguaggi algoritmici
Intelligenza Artificiale 1 Gestione della conoscenza lezione 19 Prof. M.T. PAZIENZA a.a
Algebra di Boole.
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
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.
Linguaggi di programmazione: panoramica Linguaggi di programmazione ad alto livello: – –Programmazione procedurale – –Programmazione object oriented –
CAKE Ambiente per la scrittura e la riproduzione audio di ricette per torte Linguaggi e Modelli Computazionali LSElisabetta Visciotti.
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 14 Prof. M.T. PAZIENZA a.a
Eye Computer Sistema per l'interazione con un computer dotato di controllo oculare Linguaggi e modelli computazionali LS Realizzato da: Ciavarella Primiano.
Informatica e Informatica di Base
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini III. La logica delle proposizioni.
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.
Transcript della presentazione:

Linguaggi e Modelli Computazionali LS - Prof E.Denti FOLExpr Analyzer Un riconoscitore di teorie della logica del primo ordine per la loro conversione in forma a clausole

Scopo del Lavoro Ricevere in input teorie in logica del primo ordine (First Order Logic) Riconoscerne la correttezza sintattica Basandosi sulle regole specificate nel corso di Intelligenza Artificiale della Prof.Mello Progettando una grammatica che generi il linguaggio che comprende le espressioni della logica del primo ordine (organizzate in teorie) Implementando un riconoscitore per il linguaggio Eseguire analisi e trasformazioni sintattiche come la trasformazione in forma a clausole Secondo l’algoritmo a 8 step studiato nel corso

Possibili categorie di token Analisi del Problema I lucidi del corso di Intelligenza Artificiale introducono la logica del primo ordine, descrivendola come linguaggio partendo infatti dalla sintassi, in particolare dal suo alfabeto. Possibili categorie di token Possibili keywords

(fuori dallo scope del progetto) Analisi del Problema Dai lucidi del corso di Intelligenza Artificiale Lexer Lexer Funzioni n-arie e predicati sono sintatticamente identici, cambia solo la loro semantica nel senso di vero/falso (fuori dallo scope del progetto)

Analisi del Problema Dai lucidi del corso di Intelligenza Artificiale Parser: simbolo non terminale Termine Parser: simbolo non terminale Atomo

Analisi del Problema Dai lucidi del corso di Intelligenza Artificiale NON TERMINALE FBF: Potrebbe essere lo scopo della grammatica, ma per analizzare TEORIE, prima avremo bisogno di: TEORIA :: LINEA {LINEA} LINEA ::= FBF ;

Parser: simbolo non terminale Analisi del Problema Dai lucidi del corso di Intelligenza Artificiale Attenersi in modo troppo stretto alle regole specificate nel linguaggio umano si potrebbe giungere a una grammatica ambigua come questa: TEORIA :: LINEA {LINEA} LINEA ::= FBF ; FBF ::= FBF (→|↔|Λ|V) FBF FBF ::= ~ FBF | ("|$) var FBF FBF ::= ATOMO Parser: simbolo non terminale Letterale

Interprete: due possibili manipo1lazioni Analisi del Problema Dai lucidi del corso di Intelligenza Artificiale La parte di grammatica derivata direttamente dal testo non va bene ma del resto siamo ancora in fase di analisi... Interprete: due possibili manipo1lazioni

Analisi del Problema Dai lucidi del corso di Intelligenza Artificiale Interprete: Ci sarà un visitor per questo Interprete: Oltre che trasformazioni, si potrebbero fare anche analisi come questa

Analisi del Problema Altre analisi sintattiche da poter fare con l’interprete

Grammatica iniziale: Il Parser THEORY ::= ONE_LINE | { ONE_LINE } ONE_LINE ::= FBF semicolon FBF ::= DISG | FBF (→|↔) DISG DISG ::= CONG | DISG or CONG CONG ::= UNARIO | CONG and UNARIO UNARIO ::= QUANT | LETTERALE QUANT ::= (forall | exists) var UNARIO LETTERALE ::= ATOMO | not UNARIO ATOMO ::= TERM | open FBF close TERM ::= var | ident { open TERM { comma TERM } close } Associatività a sx: ok! date le proprietà delle operazioni logiche Regole di precedenza descritte nei lucidi rispettate! Non è LL(k)! Ricorsione SX in FBF, DISG e CONG TIPO 2: Self embedding in ATOMO e TERM Se volessimo FBF vuote: FBF → DISG | FBF(→|↔)DISG | ε il linguaggio resterebbe di tipo2 perchè si potrebbe eliminare del tutto l’ε-rule: LINE → FBF ; | ; FBF→ DISG | FBF(→|↔)DISG funzione e costante: inglobate in TERM

Verso una grammatica LL(1) Per poter applicare l’analisi ricorsiva discendente si può eliminare la ricorsione sinistra da: FBF ::= DISG | FBF (→|↔) DISG DISG ::= CONG | DISG or CONG CONG ::= UNARIO | CONG and UNARIO Ad Esempio: FBF ::= DISG | DISG Z ::= DISG (ε|Z) Z ::= (→|↔) DISG { (→|↔) DISG } FBF ::= DISG | FBF (→|↔) DISG Sostituendo Z in FBF: FBF ::= DISG (ε| (→|↔) DISG { (→|↔) DISG }) La notazione EBNF permette di esprimere ε-rules FBF ::= DISG [ (→|↔) DISG { (→|↔) DISG }] Ma [A{A}]={A} quindi se A=(→|↔) DISG FBF ::= DISG { (→|↔) DISG } Ora abbiamo un riconoscitore deterministico Ora la complessità del riconoscitore cresce linearmente con la lunghezza della teoria in ingresso

Ora associatività a destra! Sintassi Concreta Ora associatività a destra! Va ancora bene per la semantica delle operazioni logiche (anche se non serve perchè non calcolo il valore di verità) THEORY ::= ONE_LINE | { ONE_LINE } ONE_LINE ::= FBF semicolon FBF ::= DISG { (→|↔) DISG } DISG ::= CONG { or CONG } CONG ::= UNARIO { and UNARIO } UNARIO ::= QUANT | LETTERALE QUANT ::= (forall | exists) var UNARIO LETTERALE ::= ATOMO | not UNARIO ATOMO ::= TERM | open FBF close TERM ::= var | ident { open TERM { comma TERM } close }

Grammatica JavaCC Introduzione dei non terminali negazione e var: utile nel visitor VarRenamingVisitor

L’interprete

ImplicReductionVisitor Analisi del problema Dimostrazioni in logica dei predicati basate su procedure come Principio di risoluzione Forward chaining e Backward Chaining (usato dal prolog) che operano (prop. di correttezza e completezza) su teorie in forma a clausole Necessario uno step preliminare di trasformazione in clausole Algoritmo 8 passi Ogni passo un Visitor ClosedFormVisitor ImplicReductionVisitor

Analisi del problema NegReductionVisitor VarRenamingVisitor

Analisi del problema QuantificationsAHeadVisitor CongPrenexFormVisitor SkolemVisitor

ForallRemoverVisitor Analisi del problema ForallRemoverVisitor Visitors in serie: assumono di essere applicati solo ad espressioni con determinate caratteristiche cioè già visitate e trasformate da visitor precedenti Visitor indipendenti: applicabili sempre, non fanno assunzioni

Oggetto VisitResult contenente stringa e syntaxtree Architettura Catena di visitor (dall’analisi) Compilatore di espressioni della logica del primo ordine in clausole del primo ordine Manca la costruzione dell’AST Dump della stringa, modifiche dove servono maggior sfruttamento possibile del tool javacc Maggiore rapidità di sviluppo - poca efficienza visita A visita B visita n syntax tree input .... syntax treeA syntax treeB syntax tree n String A String B String n Oggetto VisitResult contenente stringa e syntaxtree Input String PARSER

Architettura CompilerVisitor, VisitRsult e Factory

Architettura Schema globale

Un esempio di Visitor

Limiti – Caratteristiche non supportate - Future Work Concettualmente Sintassi astratta Implementazione dell’unificazione e del principio di risoluzione Piano collaudo Implementazione Visitor che genera l’AST e trasformazioni degli altri visitor sull’AST, non sul output del parser Multithreading – soprattutto per GUI e pattern Observer

Fine