FMZ Sistemi basati su conoscenza Prolog (1) Dott. Fabio Zanzotto a.a. 2001-2002.

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

Centro Interdipartimentale di Logica e Applicazioni Dicembre 2003
VALUTAZIONE E CURRICOLO 17 MAGGIO - S.AGATA DI MILITELLO
Intelligenza artificiale
Intelligenza Artificiale 1
Problem solving Metodologia di lavoro.
RIVOLUZIONE INDUSTRIALE
Linguaggi di programmazione
Intelligenza Artificiale
Intelligenza Artificiale - AA 2001/2002 Logiche sfumate - 1 Intelligenza Artificiale Breve introduzione alla logiche sfumate (fuzzy logics) Marco Piastra.
*Anno 2002: proiezione dati 1 sem 2002 Donatori, prelievi e trapianti di cornea - Numero * 2002 *
Facoltà di Architettura PSICOLOGIA DELLA PERCEZIONE
Linguaggi di Programmazione (AA 2002/2003)
Testo regolativo Il testo regolativo ha la funzione di fornire istruzioni, dettare regole oppure indicare delle norme necessarie per compiere determinate.
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
FMZ, Giugno 2001 Parsing del linguaggio naturale Fabio Massimo Zanzotto Università di Tor Vergata.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Esercizi Prolog
Intelligenza Artificiale 1 Gestione della conoscenza Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 ALLOCAZIONE DELLE RISORSE. 2 per risorse di solito si intende: risorse umane con il loro patrimonio di conoscenze professionali, di esperienza e di.
LOGICA INFORMATICA Corso annuale per il 4° anno del CdL in Scienze della Formazione Primaria.
Intelligenza Artificiale II Dimostrazione automatica di Teoremi
Programmazione logica
Logica proposizionale Sintassi vs Semantica
Linguaggi di Programmazione Cenni di logica proposizionale
Intelligenza Artificiale
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Intelligenza Artificiale
PROGETTO SCACCHI Programma, sviluppato in Java che permette di effettuare partite a scacchi tra due giocatori sulla stessa macchina e anche tra computer.
Logica Matematica Seconda lezione.
Esecuzione dei programmi Prolog Liste ed operatori aritmetici
Il primo passo: I basilari del Prolog
Il progetto:il Mondo greco
Basi di conoscenza: cenni di logica Fabio Massimo Zanzotto.
Linguaggi e Modelli per i Dati e la Conoscenza Fabio Massimo Zanzotto.
senza l’autorizzazione scritta della società X-Consulting Srl
FMZ 1 Sistemi basati su conoscenza Costruzione automatica di ontologie di dominio Dott. Fabio Massimo Zanzotto a.a
Basi di dati e conoscenza (secondo emicorso ) Intelligenza Artificiale 1 (seconda parte) a.a M.T. PAZIENZA
Sistemi basati su conoscenza Gestione della conoscenza Prof. M.T. PAZIENZA a.a
Linguaggi e Modelli di Programmazione Fabio Massimo Zanzotto.
Linguaggi di programmazione dalla prima generazione alla quinta ed attuale.
Intelligenza artificiale un assaggio. Il problema di criptoaritmentica è stato risolto Il campo del problema è stato descritto fatti regole questioni.
FMZ Sistemi basati su conoscenza Da logica proposizionale a logica del primo ordine Dott. Fabio Massimo Zanzotto a.a
Cenni di Logica Fabio Massimo Zanzotto. Calcolo proposizionale.
FMZ1 Sistemi basati su conoscenza Cenni di logica proposizionale Dott. Fabio Zanzotto a.a
Controllare Tipi Dati Decomporre fatti Controllare il database Fabio Massimo Zanzotto (slides di Andrea Turbati)
Intelligenza artificiale.. un assaggio. Oggi modelleremo la famiglia diPaperino in base alle regole di Prolog Ripensiamo al nostro lavoro.
ARGOMENTAZIONE. ARGOMENTARE Dedurre, ricavare per mezzo di argomenti o da indizi esteriori, Dimostrare con argomenti, con ragioni, addurre argomenti,
Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue.
Linguaggi di Programmazione (AA 2005/2006) Corso di Laurea in Informatica Introduzione al linguaggio PROLOG.
1 Linguaggi di Programmazione Cenni di logica proposizionale.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 2 Prof. M.T. PAZIENZA a.a
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
Sistemi basati su conoscenza Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
INTELLIGENZA ARTIFICIALE
Come costruire sistemi di elaborazione del linguaggio naturale (NLP) Due paradigmi di riferimento –Basato sulla conoscenza (Knowledge Engineering, KE)
11 aprile 2006Master in economia e politica sanitaria - Simulazione per la sanità 1 _Programmazione _______________________________________ Programmazione.
Logica Lezione 19 Compito in classe. Versione A A. Tradurre nel linguaggio della logica proposizionale gli enunciati delle seguenti argomentazioni.
Intelligenza Artificiale – M. Ornaghi 1 Lezione 18 Rappresentazione della conoscenza II.
Linguaggi di programmazione dalla prima generazione alla quinta ed attuale.
Intelligenza Artificiale – M. Ornaghi 1 Lezione 17 Rappresentazione della conoscenza.
Quinta generazione Quarta generazione Terza generazione Seconda generazione Prima generazione Linguaggio Binario Assembly Cobol Fortran Pascal C C++ Basic.
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
Intelligenza artificiale 3 reti neurali e robotica.
Transcript della presentazione:

FMZ Sistemi basati su conoscenza Prolog (1) Dott. Fabio Zanzotto a.a

FMZ Prolog Linguaggio: – basato su una restrizione della logica del primo ordine –“dichiarativo” Utile per: –Prototipizzazione radipa (di alcuni problemi) –Applicazioni di Intelligenza Artificiale basate sulla logica

FMZ Una dimostrazione per F è conseguenza di S è una sequenza DIM=P 1,P 2,…,P n dove P n =F P i  S oppure P i è ottenibile da P i1,…,P im (con i1<i,.., im<i) applicando una regola di inferenza Processo di dimostrazione (limiti) SF

FMZ DIM=P 1,P 2,…,P n Come scegliamo: Il percorso da fare? Quale formule P i1,…,P im attivano una regola di inferenza? E’ possibile standardizzare il processo? Processo di dimostrazione (limiti) SF

FMZ Tentativo (In logica proposizionale): Ammettiamo formule del tipo: –A 1  …  A m  B(tipo 1) –B(tipo 2) con A 1,…,A m,B letterali Processo di dimostrazione (standardizzazione)

FMZ Processo di dimostrazione (standardizzazione) Per dimostrare: In S solo regole di tipo 1 o tipo 2 Partiamo da F=P n P i è deducibile se: –P i  S –Utilizzando MP e AE, esiste A 1  …  A m  P i e A 1,…, A m sono deducibili SF

FMZ Legami con la logica del primo ordine Clausole di Horn  x 1,…,x n A 1  …  A m  B

FMZ Prolog e la logica del primo ordine Prolog è un linguaggio di programmazione basato sulle ‘Horn Clauses’ Le ‘Horn Clauses’ sono un sottoinsieme dei predicati esprimibili in logica dei predicati –Esiste un algoritmo per cui la dimostrazione di un teorema scritto in clausole di Horn è computabile in tempo polinomiale

FMZ Prolog e la logica del primo ordine  x 1,…,x n A 1  …  A m  B B:- A 1,…,A m :- si pronuncia se Sintassi in Prolog Clausola di Horn

FMZ Sintassi del prolog Sintassi legata alla logica del primo ordine Costanti  costanti individuali Variabili  variabili individuali Funtori  lettere funzionali, predicative

FMZ Sintassi del linguaggio Atomi: Costanti, funtori Il simbolo :- è considerato atomo. Sequenza di caratteri (lettere o numeri o underscore) che comincia con una lettera minuscola Oppure qualsiasi cosa contenuto tra ‘ ’.

FMZ Sintassi del linguaggio Variabili: qualsasi stringa che cominici con una lettera maiuscola o con un underscore Il singolo underscore ‘_’ è cosiderata una variabile anonima, cioè non importante. Le variabili vengono istanziate (legate ad un valore) al procedere del programma (nella risoluzione del teorema)

FMZ Esempi di atomi e variabili: Atomi: a_boy, peanut, ‘Jack-Smith’, i12345 Non Atomi: 231as, Jack-Smith, _crack Variabili: Answer, X, I_like, _Marbles Non variabili: mother, 3blind_mice

FMZ Costruzione dei predicati Se t 1,…,t n e P sono atomi o variabili allora P(t 1,…,t n ) è un predicato Esempi: parent(X,Y) parent(paolo,X)

FMZ Clausole: come fatti e regole I fatti sono predicati seguiti da ‘.’ (punto) Le regole sono della forma vista in precedenza per le clausole di Horn

FMZ “Programmare” in prolog Dato un problema costruire S che permetta di dimostrare F (o un insieme di formule) Costruire S: –Definire fatti –Definire regole Costruito S abbiamo programmato in Prolog

FMZ Esempio Conoscendo il sesso delle persone e se uno è genitore dell’altro, vogliamo sapere –chi è padre di chi –chi è madre di chi

FMZ Fatti - esempi male(alan). male(gary). female(margaret). parent(alan, gary). parent(alan, margaret).

FMZ Regole – esempi mother(X,Y) :- parent(X,Y), female(Y). father(X,Y) :- parent(X,Y), male(Y).

FMZ Interrogare il programma Richiedere la dimostrazione di un teorema ?- mother(alan,Mom).

FMZ Regola di inferenza Introduzione del quantificatore esistenziale F(…a…)  x F(…x…)  xB(…x…) Teorema che si vuole dimostrare

FMZ Unificazione: regola di inferenza  x.F(…x…) F(…a…)  x 1,…,x n A 1  …  A m  B Eliminazione del quantificatore universale P  B, P B MP Modus ponens

FMZ Interrogare il programma ?- mother(alan,Mom). Ci stiamo chiedendo  Mom. mother (alan,Mom)

FMZ L’algoritmo di risoluzione in profondità male(alan). male(gary). female(margaret). parent(alan, gary). parent(alan, margaret). mother(X,Y) :- parent(X,Y), female(Y). father(X,Y) :- parent(X,Y), male(Y). Goal: ?- mother(alan,Mom).

FMZ L’algoritmo di risoluzione Criteri: Dato un goal, ricercare dall’alto verso il basso: Un fatto che sia una generalizzazione Una regola che abbia come ipotesi l’obiettivo Istanziare le variabili Cercare un percorso che porti ad una soluzione

FMZ Una puntatina all’interprete prolog come si lancia? come si esce? quale interprete usiamo (dove si trova e dove si trovano i manuali) come scrivo un programma? come uso un programma all’interno dell’interprete?

FMZ Una puntatina all’interprete prolog come si lancia? swipl e’ sempre in modalità ?-  prompt ovvero voglio soddisfare un goal come si esce? ?- halt.

FMZ Una puntatina all’interprete prolog quale interprete usiamo SWI Prolog –interprete –manuale come scrivo un programma? –Con l’editor di testo preferito come uso un programma all’interno dell’interprete? ?- consult(‘NomeProgramma’). oppure ?- [‘NomeProgramma’].

FMZ Le trappole dell’algoritmo di risoluzione Scriviamo ancestor(X,Y) ancestor(X,Y):- ancestor(X,Z), parent(Z,Y). ancestor(X,Y):- parent(X,Y).

FMZ L’algoritmo di risoluzione in profondità male(alan). male(gary). female(margaret). parent(alan, gary). parent(alan, margaret). ancestor(X,Y):- ancestor(X,Z),parent(Z,Y). ancestor(X,Y):-parent(X,Y). Goal: ?- ancestor(alan,Mom).

FMZ Costruzione delle funzioni (Apparente dimenticanza) Se t 1,…,t n e f sono atomi o variabili allora f(t 1,…,t n ) è un funzione Esempi: parent(X,Y) parent(paolo,X)

FMZ Esercizi Dati fatti del tipo: male(pippo). female(pippo). father(pippo,pluto). pippo è padre di pluto mother(pippo,pluto). pippo è madre di pluto Definire le regole per : (a)part_of_parent(X,Y). X è uno dei genitori di Y (b)cousin(X,Y). X è cugino di Y