PROLOG: PROgramming in LOGic Linguaggio usato per risolvere problemi che coinvolgono oggetti e relazioni tra oggetti.
|
|
- Marisa Tarantino
- 5 anni fa
- Visualizzazioni
Transcript
1 Paradigmi di programmazione Imperativo: orientato alla soluzione algoritmica del problema (Assembler, C, Pascal, Ada,...) Dichiarativo: si concentra sulla descrizione del problema. Il programmatore specifica che cosa si deve calcolare, piuttosto che come calcolare; descrive il problema, le relazioni e concetti in esso coinvolti, non il modo dettagliato in cui il problema va risolto. Funzionale: il programma definisce funzioni Logico: il programma definisce relazioni PROLOG: PROgramming in LOGic Linguaggio usato per risolvere problemi che coinvolgono oggetti e relazioni tra oggetti. Programmare in Prolog consiste nel dichiarare fatti su oggetti e relazioni definire regole su oggetti e relazioni fare domande su oggetti e relazioni Fatti e regole costituiscono il programma logico. 1
2 Programma logico Un programma logico è costituito da un insieme di clausole definite: disgiunzioni di letterali con uno ed un unico letterale positivo (con n 0, e P, Q 1,..., Q n atomiche). Se n = 0, allora la clausola è un fatto. P Q 1 Q 2... Q n Altrimenti, la clausola si può riscrivere nella forma equivalente: (Q 1 Q 2... Q n P) (P Q 1 Q 2... Q n ) P :- Q1, Q2,..., Qn. regola P: testa della regola Q1, Q2,..., Qn: corpo della regola Il segno :- è un se ( ). La virgola è un. Un insieme di clausole definite (un programma logico) è sempre soddisfacibile. 2
3 Goal Un goal è una clausola negativa: tutti i letterali sono negativi: che equivale a Questa clausola corrisponde alla formula che equivale a Q 1 Q 2... Q n (Q 1 Q 2... Q n )?- Q1, Q2,..., Qn. goal x 1... x k (Q 1 Q 2... Q n ) x 1... x k (Q 1 Q 2... Q n ) Questa formula corrisponde alla negazione della query. Quindi il goal?- Q1, Q2,..., Qn. corrisponde alla query x 1... x k (Q 1 Q 2... Q n ) Le variabili nel goal hanno lettura esistenziale, la virgola è un AND. Esecuzione del programma logico P con goal G: la query corrispondente a G è derivabile dall insieme di formule corrispondenti a P? 3
4 Programmazione logica Supponiamo di avere la seguente base di conoscenza (KB): {padre(aldo, piero), padre(piero, ugo), x y( z(padre(x, z) padre(z, y)) nonno(x, y))} Verificare se da KB è derivabile x nonno(x, ugo) equivale a verificare se KB { x nonno(x, ugo)} è insoddisfacibile. Il programma logico P corrispondente a KB è la forma a clausole di KB: padre(aldo, piero) padre(piero, ugo) nonno(x, y) padre(x, z) padre(z, y) padre(aldo,piero). padre(piero,ugo). nonno(x,y) :- padre(x,z), padre(z,y). Verificare se da P è derivabile x nonno(x, ugo) si riduce a derivare (clausola vuota) da P {?- nonno(x, ugo)}. Risoluzione SLD con la regola di calcolo scelta del primo atomo :?- n(x, ugo) n(x 1, Y ) :- p(x 1, Z), p(z, Y ) Quindi KB = x nonno(x, ugo)?- p(x, Z), p(z, ugo) p(aldo, piero)?- p(piero, ugo) p(piero, ugo) 4
5 Programmazione logica per rispondere a domande ASK Domande ASK hanno spesso la forma quale x è tale che...? Un programma serve per calcolare dei valori e non solo per rispondere SI o NO. Informazioni utili si possono estrarre dalle sostituzioni applicate nella refutazione SLD. Le sostituzioni applicate nella derivazione data sopra sono: θ 0 = {X/X 1, ugo/y } θ 1 = {aldo/x, piero/z} θ 2 = La loro composizione è: Non solo P = x nonno(x, ugo), ma anche θ = θ 0 θ 1 θ 2 = {aldo/x, ugo/y, piero/z} P = nonno(x, ugo)θ cioè P = nonno(aldo, ugo) Quindi la composizione delle sostituzioni utilizzate nella SLD-refutazione fornisce una risposta alla domanda: chi è un nonno di ugo? Sostituzione di risposta (answer substitution): restrizione di θ 0 θ 1... θ n alle variabili del goal. Una esecuzione in programmazione logica consiste nel tentativo di dimostrare che esiste un istanza della query che segue logicamente dal programma, e, se esiste, calcolare la sostituzione di risposta data dalla dimostrazione. 5
6 PROGRAMMAZIONE = LOGICA + CONTROLLO Un programma PROLOG è una rappresentazione logica del problema Il problema viene risolto dal motore di inferenza del PROLOG, basato sulla risoluzione SLD, con strategia di ricerca in profondità. Importanti meccanismi di base: unificazione (che differenza c è tra unificazione e pattern matching?) procedimento di ricerca mediante backtracking PROLOG utilizzato soprattutto in Intelligenza Artificiale sistemi esperti e, in generale, sistemi basati sulla conoscenza elaborazione del linguaggio naturale pianificazione automatica Facilità di rapid prototyping 6
7 Semantica dichiarativa e semantica procedurale La chiave della programmazione logica è il fatto che una regola si può leggere in due modi: nonno(x,y) :- padre(x,z), padre(z,y). lettura dichiarativa ( che cosa ): per ogni X e Y, se esiste Z tale che X è padre di Z e Z è padre di Y, allora X è nonno di Y X Y Z(padre(X, Z) padre(z, Y ) nonno(x, Y )) Programma = specifica del problema lettura procedurale ( come ): per risolvere il problema nonno(x,y), si trovi Z che risolve il problema padre(x,z) e risolvere poi il problema padre(z,y) L insieme delle clausole che definiscono un predicato P costituiscono la definizione della procedura P Il Prolog puro consente sia la lettura dichiarativa che quella procedurale di un programma 7
8 Osservazione sulla lettura delle regole nonno(x,y) :- padre(x,z), padre(z,y). è la sintassi Prolog per la clausola Questa clausola corrisponde alla formula nonno(x, y) padre(x, z) padre(z, y) x y z(padre(x, z) padre(z, y) nonno(x, y)) Dato che z non occorre nel conseguente, la formula equivale a In una regola della forma testa :- corpo. x y( z(padre(x, z) padre(z, y)) nonno(x, y)) le variabili nella testa hanno un significato universale (su tutta la clausola); le variabili in corpo che non occorrono in testa hanno un significato esistenziale all interno del corpo. 8
9 PROLOG: rappresenta oggetti e relazioni vicino(c,c1). vicino(c,c2). colore(c1,blu). colore(c2,rosso). colore(x,y) :- vicino(x,z), colore(z,y). colore è una relazione: un oggetto può avere più colori.?- colore(c,x). ha più di una soluzione REVERSIBILITÀ dei predicati: una stessa procedura può essere invocata con diversi parametri di input/output?- colore(c,x).?- colore(x,rosso).?- colore(x,y). 9
10 Fatti, regole, procedure Fatti genitore(pam,bob). genitore(tom,bob). genitore(tom,liz). genitore(bob,ann). genitore(bob,pat). genitore(pat,jim). Regole figlio(x,y) :- genitore(y,x). madre(x,y) :- genitore(x,y), femmina(x). nonno(x,y) :- genitore(x,z), genitore(z,y). Procedure: insiemi di fatti e regole antenato(x,y) :- genitore(x,y). antenato(x,y) :- genitore(x,z), antenato(z,y). Le clausole (fatti e regole) di una procedura rappresentano modi alternativi di risolvere problemi della stessa forma (antenato). 10
11 Ricerca in profondità genitore(pam,bob). genitore(tom,bob). genitore(tom,liz). genitore(bob,ann). genitore(bob,pat). genitore(pat,jim). antenato(x,y) :- genitore(x,y). antenato(x,y) :- genitore(x,z), antenato(z,y).?- antenato(bob,jim). a(bob,jim) g(bob,jim) NO g(bob,z), a(z,jim) Z=ann a(z,jim) Z=pat a(z,jim) g(z,jim) NO g(z,z 1 ), a(z 1,jim) NO g(z,jim) YES g(z,z 1 ), a(z 1,jim) 11
12 Trace 1?- [bratko1]. % bratko1 compiled 0.00 sec, 3,336 bytes 2?- trace. [trace] 2?- antenato(bob,jim). Call: (6) antenato(bob, jim)? Call: (7) genitore(bob, jim)? Fail: (7) genitore(bob, jim)? Redo: (6) antenato(bob, jim)? Call: (7) genitore(bob, _G466)? Exit: (7) genitore(bob, ann)? Call: (7) antenato(ann, jim)? Call: (8) genitore(ann, jim)? Fail: (8) genitore(ann, jim)? Redo: (7) antenato(ann, jim)? Call: (8) genitore(ann, _G466)? Fail: (8) genitore(ann, _G466)? Fail: (7) antenato(ann, jim)? 12 Redo: (7) genitore(bob, _G466)? Exit: (7) genitore(bob, pat)? Call: (7) antenato(pat, jim)? Call: (8) genitore(pat, jim)? Exit: (8) genitore(pat, jim)? Exit: (7) antenato(pat, jim)? Exit: (6) antenato(bob, jim)?
13 Il backtracking Ogni sottogoal ha il proprio puntatore al programma likes(mary,food). /* 1 */ likes(mary,wine). /* 2 */ likes(john,beer). /* 3 */ likes(john,wine). /* 4 */ likes(john,mary). /* 5 */?- likes(mary,x), likes(john,x). Goal 1: likes(mary,x): X=food. Puntatore alla prossima clausola: 2 Goal 2: likes(john,x) con X=food. Fallimento dopo aver scandito tutta la procedura Tentativo di risoddisfare Goal 1, a partire dalla clausola 2: X=wine Goal 2 con X=wine (scansione della procedura dall inizio): successo 13
14 Ricerca in profondità La scelta di una strategia di ricerca può compromettere la completezza del sistema: Ricerca in profondità: si può espandere un cammino infinito e non trovare mai una soluzione Riordino delle clausole nel programma o degli atomi nel corpo delle regole: il significato dichiarativo non cambia, ma può cambiare il significato procedurale. Riordino delle clausole nel programma vicino(c,c1). vicino(x,y) :- vicino(y,x).?- vicino(c1,c). vicino(x,y) :- vicino(y,x). vicino(c,c1).?- vicino(c1,c). ERROR: Out of local stack 14
15 Riordino dei goal nel corpo delle regole pat jim pam bob ann tom liz /* Prima variante */ antenato(x,y) :- genitore(x,y). antenato(x,y) :- genitore(x,z), antenato(z,y).?- antenato(bob,jim).?- antenato(liz,bob). No /* riordino dei goal nel corpo della regola */ antenato(x,y) :- genitore(x,y). antenato(x,y) :- antenato(z,y), genitore(x,z).?- antenato(bob,jim).?- antenato(liz,bob). ERROR: Out of local stack 15
16 Il goal non è derivabile dal programma, ma il meccanismo di ricerca non termina antenato(x,y) :- genitore(x,y). antenato(x,y) :- antenato(z,y), genitore(x,z).?- antenato(liz,bob). a(liz,bob) (liz non è genitore di nessuno) g(liz,bob) NO a(z,bob), g(liz,z) g(z,bob), g(liz,z). NO a(z 1,bob), g(z,z 1 ), g(liz,z) g(z 1,bob), g(z,z 1 ), g(liz,z). NO a(z 2,bob), g(z 1,Z 2 ), g(z,z 1 ), g(liz,z). 16
17 Riordino delle clausole e dei goal pat jim pam bob ann tom liz antenato(x,y) :- antenato(z,y), genitore(x,z). antenato(x,y) :- genitore(x,y).?- antenato(bob,jim). ERROR: Out of local stack Goal derivabile ma la ricerca non termina?- antenato(liz,bob). ERROR: Out of local stack Goal non derivabile e la ricerca non termina Regole di programmazione 1. In una procedura, prima i fatti poi le regole (prima le cose più semplici, poi quelle più complicate) 2. Nel corpo di una regola, prima i goal più semplici da dimostrare o refutare, poi quelli più difficili 17
18 Il Prolog è corretto? Il predicato predefinito = controlla se due termini sono unificabili: Term 1 = Term 2 unifica Term 1 con Term 2. Ha successo se l unificazione ha successo?- f(x,pippo) = f(pluto,y). X = pluto Y = pippo Ma attenzione:?- X = f(x). X = f(f(f(f(f(f(f(f(f(f(...))))))))))?- unify_with_occurs_check(x,f(x)). No 18
19 L unificazione utilizzata dal motore di inferenza non esegue l occur check figlio(x,padre(x)).?- figlio(pippo,y). Y = padre(pippo)?- figlio(y,y). X = padre(padre(padre(padre(padre(padre(padre(padre(padre(padre(...)))))))))) 19
Raffinamenti della risoluzione
Raffinamenti della risoluzione Il metodo di risoluzione fornisce vantaggi drastici rispetto ad altri sistemi di inferenza. Ma l applicazione non ristretta della risoluzione genera molte clausole inutili
DettagliProlog: materiale didattico
Prolog: materiale didattico Qualunque testo di introduzione al Prolog, ad esempio: I. Bratko. Programmare in Prolog per l Intelligenza Artificiale. Masson - Addison Wesley, 1988. W. F. Clocksin and C.
DettagliL 1 L 2... L k. dove L i = p i oppure L i = p
Il metodo di risoluzione per la logica proposizionale Sistema di inferenza con una sola regola: la regola di risoluzione La regola di risoluzione si applica a clausole (disgiunzioni di letterali) dove
DettagliIntroduzione alla Programmazione Logica ed al linguaggio PROLOG
Introduzione alla Programmazione Logica ed al linguaggio PROLOG Esercitazioni per il corso di Logica ed Intelligenza Artificiale a.a. 2014/15 Paolo Tomeo http://sisinflab.poliba.it/tomeo Programmazione
DettagliC1: L C1 C2: L C2 C: C1 C2
Abbiamo visto Gli agenti logici applicano inferenze a una base di conoscenza per derivare nuove informazioni. Concetti base della logica: sintassi: struttura formale delle sentenze semantica: verita` di
DettagliProgrammazione Dichiarativa. Programmazione Logica. SICStus PROLOG PROLOG. http://www.sics.se/sicstus/ Bob Kowalski: "Algoritmo = Logica + Controllo"
Programmazione Logica Bob Kowalski: "Algoritmo = Logica + Controllo" nella programmazione tradizionale: il programmatore deve occuparsi di entrambi gli aspetti nella programmazione dichiarativa: il programmatore
DettagliEsempio compito 11 Sett 2008
Esempio compito 11 Sett 2008 no_dupl([], []). no_dupl([x Xs], Ys):- member(x, Xs), no_dupl(xs, Ys). no_dupl([x Xs], [X Ys]):- nonmember(x, Xs), no_dupl(xs, Ys). nonmember(_, []). nonmember(x, [Y Ys]):-X
DettagliLinguaggi di Programmazione Prolog (1) Prolog. Processo di dimostrazione (limiti) Linguaggio: Utile per:
Linguaggi di Programmazione Prolog (1) Prolog Linguaggio: basato su una restrizione della logica del primo ordine dichiarativo Utile per: Prototipizzazione radipa (di alcuni problemi) Applicazioni di Intelligenza
DettagliSistemi di dimostrazione
Sistemi di dimostrazione Un sistema di deduzione (o dimostrazione) consiste di un insieme di assiomi (a volte vuoto) un insieme di regole di inferenza Una deduzione (o derivazione) di una formula A da
DettagliIL PROBLEMA DELLA NEGAZIONE IPOTESI DI MONDO CHIUSO IPOTESI DI MONDO CHIUSO IPOTESI DI MONDO CHIUSO
IL PROBLEMA DELLA NEGAZIONE Finora non abbiamo preso in esame il trattamento di informazioni negative Solo programmi logici costituiti da clausole definite e che quindi non possono contenere atomi negati.
DettagliIL PROBLEMA DELLA NEGAZIONE
IL PROBLEMA DELLA NEGAZIONE Finora non abbiamo preso in esame il trattamento di informazioni negative Solo programmi logici costituiti da clausole definite e che quindi non possono contenere atomi negati.
DettagliProgrammazione logica e PROLOG. Esercitazione 1. Sommario. Programmazione logica. Applicazioni della Programmazione Logica
Sommario Programmazione logica e PROLOG Esercitazione 1 Programmazione logica Base delle conoscenze Interrogazione del sistema Regole Ricorsive Esecuzione dei programmi Modello operazionale Rappresentazione
DettagliProlog Prodromi. Sistemi distribuiti LS 2003/2004 Prof. Andrea Omicini
Prolog Prodromi Sistemi distribuiti LS 2003/2004 Prof. Andrea Omicini 1 Prima della Programmazione Logica I primi edifici formali: aritmetica e geometria Aristotele e l'inferenza logica Il concetto di
DettagliIntroduzione alla Programmazione Logica ed al linguaggio PROLOG
Introduzione alla Programmazione Logica ed al linguaggio PROLOG Esercitazioni per il corso di Logica ed Intelligenza Artificiale a.a. 2013-14 Vito Claudio Ostuni Linguaggi procedurali e dichiarativi linguaggi
DettagliIn Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile
IL PREDICATO CALL In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile Un primo predicato predefinito che può essere utilizzato
DettagliIn Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile
IL PREDICATO CALL In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile Un primo predicato predefinito che può essere utilizzato
DettagliIn Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile
IL PREDICATO CALL In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile Un primo predicato predefinito che può essere utilizzato
DettagliIntelligenza Artificiale. Logica proposizionale: calcolo automatico
Intelligenza Artificiale Logica proposizionale: calcolo automatico Marco Piastra Logica formale (Parte 3) - Parte 3 Calcolo automatico Forme normali ed a clausole Risoluzione e refutazione Forward chaining
DettagliProlog. Processo di dimostrazione (limiti) Dott. Fabio Massimo Zanzotto. Linguaggio: Utile per:
! "!#$&%&' Dott. Fabio Massimo Zanzotto Prolog Linguaggio: basato su una restrizione della logica del primo ordine ()+*-,.+*-/0 /213* 4657 Utile per: Prototipizzazione radipa (di alcuni problemi) Applicazioni
DettagliProgrammazione logica e PROLOG. Esercitazione 1. AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0
Programmazione logica e PROLOG Esercitazione 1 AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0 Sommario Programmazione logica Base delle conoscenze Interrogazioni Regole Ricorsive Esecuzione dei programmi
DettagliIntroduzione alla logica
Corso di Intelligenza Artificiale 2011/12 Introduzione alla logica iola Schiaffonati Dipartimento di Elettronica e Informazione Sommario 2 Logica proposizionale (logica di Boole) Logica del primo ordine
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)
FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 12 Giugno 2014 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi:
DettagliDerivazioni SLD. Passo di derivazione SLD. Derivazione SLD. Notazione
Passo di derivazione SLD Derivazioni SLD Sia R una regola di selezione e P un insieme di clausole definite. Diciamo che G' deriva da G in P con un passo di derivazione SLD (G => G') se G = A,B,C dove B
DettagliMaiuscole e minuscole
Maiuscole e minuscole Abilità interessate Distinguere tra processi induttivi e processi deduttivi. Comprendere il ruolo e le caratteristiche di un sistema assiomatico. Riconoscere aspetti sintattici e
DettagliUniversità di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi B1_1 V1.3. Sistemi a regole
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi B1_1 V1.3 Sistemi a regole Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale
DettagliIntelligenza Artificiale. Logica proposizionale: calcolo simbolico
Intelligenza Artificiale Logica proposizionale: calcolo simbolico Marco Piastra Logica formale (Parte 2) - 1 Parte 2 Calcolo logico Assiomi Derivazioni Derivazioni e conseguenza logica Completezza Logica
DettagliLogica: materiale didattico
Logica: materiale didattico M. Cialdea Mayer. Logica (dispense): http://cialdea.dia.uniroma3.it/teaching/logica/materiale/dispense-logica.pdf Logica dei Predicati (Logica per l Informatica) 01: Logica
DettagliBasi di Dati. prof. Letizia Tanca AA Linguaggi di query basati sulla. programmazione logica. programmazione logica
Basi di Dati prof. Letizia Tanca AA 2005-06 Linguaggi di query basati sulla programmazione logica Linguaggi di query basati sulla programmazione logica La programmazione logica è un paradigma di programmazione
DettagliLinguaggi di programmazione. Paradigmi di programmazione
Linguaggi di programmazione Paradigmi di programmazione Linguaggi: un po di storia Albori: Macchine a programma memorizzato, Programmi come dati Linguaggio Macchina Assemblatore FORTRAN (calcolo scientifico)
DettagliBasi di Dati. prof. Letizia Tanca AA Altri linguaggi formali di interrogazione per il Modello Relazionale dei Dati
Basi di Dati prof. Letizia Tanca AA 2005-06 Altri linguaggi formali di interrogazione per il Modello Relazionale dei Dati Classificazione dei Linguaggi LINGUAGGI FORMALI Algebra relazionale Calcolo relazionale
DettagliRappresentazione della conoscenza. Lezione 4. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 4 0
Rappresentazione della conoscenza Lezione 4 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 4 0 Efficienza nei programmi PROLOG Controllo dell inferenza Meta-predicati Termini e loro rappresentazione
DettagliRISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine
RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale
DettagliRappresentazione della conoscenza. Lezione 5. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 5 0
Rappresentazione della conoscenza Lezione 5 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 5 0 Sommario Logiche non monotone Ipotesi di mondo chiuso Negazione come fallimento Semantica dei
Dettaglianche i programmi sono strutture dati manipolabili utilizzo della ricorsione e non assegnamento
LINGUAGGIO PROLOG PROLOG: PROgramming in LOGic, nato nel 1973 E il più noto linguaggio di Programmazione Logica ALGORITMO = LOGICA + CONTROLLO Si fonda sulle idee di Programmazione Logica avanzate da R.
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 7 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 19 Marzo 2013 Programmazione dichiarativa Programmi = Algoritmi + Strutture Dati
Dettaglio Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori
Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione!paradigmi linguistici, costrutti!semantica!implementazione, strutture a tempo di esecuzione 1 Linguaggi di programmazione e astrazione! i linguaggi di programmazione ad alto
DettagliRichiami di Prolog. Marco Pennacchiotti. Tel Ing.dell Informazione, stanza 1035 (primo piano)
Intelligenza Artificiale A.A. 2004-2005 20 Maggio 2005 Richiami di Prolog Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza 1035 (primo piano) 1 Riferimenti
DettagliLogica proposizionale
Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite
DettagliSistemi Deduttivi. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Sistemi Deduttivi[1]
Intelligenza Artificiale I Sistemi Deduttivi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Sistemi Deduttivi[1] Calcolo simbolico? Una fbf è conseguenza logica di un insieme di fbf sse qualsiasi
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)
FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 29 Gennaio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi:
DettagliCAPITOLO 5. SLD-risoluzione
CAPITOLO 5 SLD-risoluzione Nel Capitolo 3 abbiamo visto alcuni esempi elementari di programmazione con clausole definite. Riprendiamo uno di quegli esempi. In particolare, il programma definito costituito
Dettagli(X (, Y, Y Z ) Z " Z Z
ARITMETICA E RICORSIONE Non esiste, in logica, alcun meccanismo per la valutazione di funzioni, operazione fondamentale in un linguaggio di programmazione I numeri interi possono essere rappresentati come
DettagliIntelligenza Artificiale I
Intelligenza Artificiale I Risoluzione e clausole di Horn Marco Piastra Risoluzione e clausole di Horn [1] Sistemi deduttivi e automazione Il problema è decidibile? La definizione di derivabilità a la
DettagliTABELLA OPERATORI ARITMETICI
ARITMETICA E RICORSIONE Non esiste, in logica, alcun meccanismo per la valutazione di funzioni, operazione fondamentale in un linguaggio di programmazione I numeri interi possono essere rappresentati come
DettagliIntelligenza Artificiale I
Intelligenza Artificiale I Logica formale Automazione del calcolo Marco Piastra Logica formale Automazione del calcolo - Calcolo automatico Una logica (p.es. L P ) è decidibile Se esiste una procedura
DettagliForme normali, clausole e Calcolo con regola di Risoluzione
Forme normali, clausole e Calcolo con regola di Risoluzione Esempi di equivalenze valide α β (α β ) (α β ) α ( β γ ) ( xα ) ( xα ) α α α α β α β α β (α β ) (α γ ) x α x α V α α F α 1 Forma normale congiuntiva
DettagliBasi di Dati. prof. Letizia Tanca. Linguaggi di query basati sulla. programmazione logica. programmazione logica
Basi di Dati prof. Letizia Tanca Linguaggi di query basati sulla programmazione logica Linguaggi di query basati sulla programmazione logica La programmazione logica è un paradigma di programmazione basato
DettagliIntelligenza Artificiale. Breve introduzione alla logica classica (Parte 2)
Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra Logica formale (Parte 2) - Introduzione alla logica formale Parte. Preambolo: algebra di Boole, proposizioni, conseguenza
DettagliIntelligenza Artificiale I
Intelligenza Artificiale I Risoluzione con unificazione Marco Piastra Risoluzione con unificazione [1] Risoluzione proposizionale Procedura per stabilire se a) Refutazione { } e traduzione in forma normale
DettagliAgenti Basati su Logica
Agenti Basati su Logica Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 09/04/2018 Agenti basati sulla logica Generico agente logico Il mondo del Wumpus Logica proposizionale Inferenza
DettagliUNIFICAZIONE E PATTERN MATCHING
UNIFICAZIONE E PATTERN MATCHING In Intelligenza Artificiale (IA), la maggior parte dei sistemi basati su conoscenza poggia sul confronto di descrizioni (simboliche), nella forma di Unificazione o di Matching.
DettagliIntelligenza Artificiale. Logica proposizionale classica (Parte 2)
Intelligenza Artificiale Logica proposizionale classica (Parte 2) Marco Piastra Logica formale (Parte 2) - Introduzione alla logica formale Parte. Preambolo: algebra di Boole, proposizioni, conseguenza
Dettaglianche i programmi sono strutture dati manipolabili utilizzo della ricorsione e non assegnamento
IL LINGUAGGIO PROLOG PROLOG: PROgramming in LOGic, nato nel 1973 E il più noto linguaggio di Programmazione Logica ALGORITMO = LOGICA + CONTROLLO Si fonda sulle idee di Programmazione Logica avanzate da
DettagliRappresentazione della Conoscenza. Lezione 2. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 2 0
Rappresentazione della Conoscenza Lezione 2 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 2 0 Logica come linguaggio di rappresentazione della conoscenza Sommario richiami sintassi e semantica
Dettagli3.2 Calcolo della risoluzione
3.2 Calcolo della risoluzione Il calcolo della risoluzione serve a stabilire l insoddisfacibilità di proposizioni in forma normale congiuntiva. Ai fini della soddisfacibilità è equivalente considerare
DettagliIl sistema di dimostrazione dei tableaux semantici. Il metodo dei tableaux è un modo per dimostrare una formula logica in maniera sistematica:
Il sistema di dimostrazione dei tableaux semantici Il metodo dei tableaux è un modo per dimostrare una formula logica in maniera sistematica: un certo numero di regole di inferenza delle istruzioni su
DettagliLinguaggi di programmazione e astrazione
Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo
DettagliFondamenti di Intelligenza Artificiale M
Fondamenti di Intelligenza Artificiale M 1 Esempi di possibili esercizi Description Logic e SW Introdurre brevemente la differenza tra Open World Assumption e Close World Assumption, illustrando tale differenza
DettagliRagionamento Automatico Richiami di calcolo dei predicati
Richiami di logica del primo ordine Ragionamento Automatico Richiami di calcolo dei predicati (SLL: Capitolo 7) Sintassi Semantica Lezione 2 Ragionamento Automatico Carlucci Aiello, 2004/05Lezione 2 0
DettagliI predicati cut e not
Operatore Informatico Giuridico Informatica Giuridica Avanzata A.A. 2006/2007 I Semestre I predicati cut e not Ing. Rossella Rubino CIRSFID rrubino@cirsfid.unibo.it 31 Ottobre 2006 Il cut Il predicato
DettagliEsercitazioni per il corso di Logica Matematica
Esercitazioni per il corso di Logica Matematica Luca Motto Ros 02 marzo 2005 Nota importante. Queste pagine contengono appunti personali dell esercitatore e sono messe a disposizione nel caso possano risultare
DettagliLogica per la Programmazione
Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 8 Modelli, Formule Valide, Conseguenza Logica Proof Systems Regole di inferenza per Calcolo Proposizionale
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 13 Gennaio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 13 Gennaio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi:
DettagliAgenti logici: calcolo proposizionale. Maria Simi a.a. 2015/2016
Agenti logici: calcolo proposizionale Maria Simi a.a. 2015/2016 Sintassi La sintassi definisce quali sono le frasi legittime del linguaggio: formula formulaatomica simbolo formulacompless a formulaatomica
DettagliRisoluzione efficiente. Agenti logici: sistemi a regole. Strategie di risoluzione. Strategie di cancellazione. Cancellazione di tautologie
Risoluzione efficiente Agenti logici: sistemi a regole Regole all indietro e programmazione logica Regole in avanti e basi di dati deduttive Maria Simi a.a. 2011-2012 Il metodo di risoluzione per il FOL
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)
FONDMENTI DI INTELLIGENZ RTIFIILE (8 FU) 10 Luglio 2014 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi: 1. Lucy
DettagliAPI. Ripasso di logica. Davide Martinenghi. Politecnico di Milano. API Davide Martinenghi (1/30)
API Ripasso di logica Davide Martinenghi Politecnico di Milano API Davide Martinenghi (1/30) Logica proposizionale - sintassi L è un linguaggio della logica proposizionale L alfabeto di L è composto da
Dettagli6 Calcolo della risoluzione
6 Calcolo della risoluzione Il calcolo della risoluzione serve a stabilire l insoddisfacibilità di insiemi di proposizioni scritte in forma normale congiuntiva. Il calcolo della risoluzione si esprime
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si rappresentino in logica dei predicati del I ordine, le seguenti affermazioni:
DettagliEsercizi di Logica Matematica
Esercizi di Logica Matematica Francesco Bottacin 1 Logica Proposizionale Esercizio 1.1. Eliminare le parentesi non necessarie nelle seguenti formule: 1. ((A B) ( C)) 2. (A (B ( C))) 3. ((A B) (C D)) 4.
DettagliIntelligenza Artificiale. Sistemi a regole Sistemi esperti
Intelligenza Artificiale Sistemi a regole Sistemi esperti Marco Piastra Sistemi a regole - 1 Sistemi a regole Sistemi esperti 1. Introduzione al calcolo dei predicati 2. Sistemi a regole 3. Jess 4. Fox,
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliLogica per la Programmazione
Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 1 Calcolo Proposizionale: sintassi e semantica Tautologie Esempi di Formalizzazione di Enunciati pag.
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si modellino le seguenti frasi (si noti che il dominio contiene solo entità
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)
FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 11 Settembre 2014 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si esprimano in logica dei predicati del I ordine le seguenti frasi:
DettagliLogica per la Programmazione
Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 7 Formule Valide, Conseguenza Logica Proof System per la Logica del Primo Ordine Leggi per i Quantificatori
DettagliLogica e risoluzione: esercizi
Logica e risoluzione: esercizi 1 CLAUSOLE Una clausola è una disgiunzione di letterali (cioè formule atomiche negate e non negate), in cui tutte le variabili sono quantificate universalmente in modo implicito.
DettagliINTELLIGENZA ARTIFICIALE (elementi) 6 cfu
INTELLIGENZA ARTIFICIALE (elementi) 6 cfu Docente: prof.ssa Stefania Bandini Esercitatore: dr. Matteo Palmonari Dipartimento di Informatica, Sistemistica e Comunicazione Università di Milano-Bicocca www.lintar.disco.unimib.it
Dettaglie Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità
Intelligenza Artificiale I Soddisfacibilità e Algoritmi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema
Dettagli14. Nozione di modello e verità di un predicato
14. Nozione di modello e verità di un predicato Per definire la validità di un predicato facciamo uso della nozione di modello. Intuitivamente un modello definisce in modo primitivo l interpretazione delle
DettagliProcedura di Davis Putnam
Procedura di Davis Putnam Nel 1960 è stata introdotta la procedura di Davis Putnam. Doveva essere una tecnica di theorem proving adatta all automazione, per la logica proposizionale e del I ordine. La
DettagliCOMPITO DI INTELLIGENZA ARTIFICIALE (v.o.) PARTE I FONDAMENTI DI INTELLIGENZA ARTIFICIALE. 13 Dicembre 2006 (Tempo a disposizione 2h; su 32 punti)
COMPTO D NTELLGENZA ARTFCALE (v.o.) PARTE FONDAMENT D NTELLGENZA ARTFCALE 13 Dicembre 200 (Tempo a disposizione 2h; su 32 punti) Esercizio 1: (punti ) Sia data una formulazione CSP del problema delle regine
DettagliFondamenti di Intelligenza Artificiale M a.a. 2010/2011. Note sul compito d esame
Fondamenti di Intelligenza Artificiale M a.a. 2010/2011 Note sul compito d esame 1 Composizione di un possibile testo d esame Il testo d esame di Fondamenti di Intelligenza Artificiale M, dal 2009/2010
DettagliInferenza nella logica del primo ordine
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A7_6 V1.5 Inferenza nella logica del primo ordine Il contenuto del documento è liberamente utilizzabile dagli studenti,
DettagliProblemi decisionali. Esempi
Problemi decisionali La teoria della complessità computazionale è definita principalmente in termini di problemi di decisione Essendo la risposta binaria, non ci si deve preoccupare del tempo richiesto
DettagliFondamenti Logici dell Informatica
Fondamenti Logici dell Informatica Corso di Laurea Magistrale in Informatica Introduzione al Corso Ugo Dal Lago Anno Accademico 2017-2018 Sezione 1 Introduzione al Corso Questo Corso Questo è un corso
DettagliIntelligenza Artificiale I
Intelligenza Artificiale I Logica formale Calcolo simbolico Marco Piastra Logica formale - Calcolo simbolico - 1 Conseguenza, decidibilità Una fbf è conseguenza logica di un insieme di fbf sse qualsiasi
DettagliSoddisfacibilità e Semantic Tableau [1]
Intelligenza Artificiale I Soddisfacibilità e Semantic Tableau Marco Piastra Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema è una relazione tra istanze
Dettagli15. Nozione di modello e verità di un predicato
15. Nozione di modello e verità di un predicato Def. 0.1 (modello di un linguaggio predicativo) Dato linguaggio predicativo L con costanti c j e predicati atomici P k (x 1,..., x n ) un modello per L è
DettagliAgenti logici: sistemi a regole
Agenti logici: sistemi a regole Regole all indietro e programmazione logica Maria Simi a.a. 2015-2016 KB in forma a regole Forma normale implicativa (del tutto generale) P 1 P k Q 1 Q n Caso particolare
DettagliView-based query answering
View-based query answering Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2004/2005 Prerequisites Calcolo relazionale (FOL
DettagliInterpreti, compilatori e semantica operazionale
Interpreti, compilatori e semantica operazionale 1 Linguaggi di programmazione Come si comprendono le caratteristiche di un linguaggio di programmazione? Molte risposte diverse manuali, documentazione
DettagliSoddisfacibilità e Semantic Tableau [1]
Intelligenza Artificiale I Soddisfacibilità e Semantic Tableau Marco Piastra Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema In forma rigorosa, un problema è una relazione
Dettagli15. Nozione di modello e verità di un predicato
15. Nozione di modello e verità di un predicato Def. (modello di un linguaggio predicativo) Dato linguaggio predicativo L con costanti c j e predicati atomici P k (x 1,..., x n ) un modello per L è dato
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE Giugno 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE Giugno 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Date le seguenti frasi in linguaggio naturale: 1.Mario sa risolvere gli stessi
Dettagli