Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue.

Slides:



Advertisements
Presentazioni simili
LIMITI:DEFINIZIONI E TEOREMI
Advertisements

Prof.Maurita Fiocchi Corso A-ERICA RICERCA PUNTI ESTREMANTI LIBERI DELLE FUNZIONI REALI A DUE VARIABILI REALI z = f( x ; y )
Alberi binari Definizione Sottoalberi Padre, figli
Estendere i linguaggi: i tipi di dato astratti
Sommario Nelle lezioni precedenti abbiamo introdotto tutti gli elementi che formano un particolare tipo di linguaggio logico, denominato linguaggio predicativo.

Agenti logici: la logica del prim’ordine
Linguaggi di Programmazione (AA 2002/2003)
Risoluzione e Programmazione Logica (Prolog)
Il ragionamento classico
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Iterazione enumerativa (for)
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Analisi e sintesi di circuiti combinatori
CONCETTO DI FUNZIONE Una funzione f da X in Y consiste in:
EQUAZIONI DI PRIMO GRADO
Liceo Scientifico "A.Volta" Reggio Calabria
LOGICA E MODELLI Logica e modelli nel ragionamento deduttivo A cura di Salvatore MENNITI.
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Algoritmi e Strutture Dati
Semantica di Tarski.
Qualche esempio di tableaux
Semantica per formule di un linguaggio proposizionale p.9 della dispensa.
Intelligenza Artificiale
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Programmazione logica
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Conoscenza e ragionamento Logica dei predicati del primo ordine.
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Logica dei predicati del primo ordine.
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Intelligenza Artificiale - AA 2002/2003 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Università degli studi di Verona Facoltà di Scienze MM. FF. NN. Relazione sullarticolo: Proving Existential Termination of Normal Logic Programs Cordibella.
Logica Matematica Seconda lezione.
Si ringraziano per il loro contributo gli alunni della
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Esecuzione dei programmi Prolog Liste ed operatori aritmetici
Pierdaniele Giaretta Primi elementi di logica
Agenti logici: sistemi a regole
LA LOGICA Giannuzzi Claudia Stefani Simona
Agenti logici: calcolo proposizionale Maria Simi a.a. 2008/2009.
Corso di logica matematica
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
La logica è lo studio del ragionamento.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 19 Prof. M.T. PAZIENZA a.a
Teoria dei Circuiti Lez. 1.
Logica Lezioni Lunedì 18 Nov. Annuncio E' possibile che dovrò rinviare delle lezioni della prossima settimana. Tenete d'occhio gli annunci.
Logica F. orilia. Lezz Lunedì 4 Novembre 2013.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Logica Lezz Nov Reiterazione (RE) P |- P 1 P A 2 P & P 1,1, &I 3 P 2, & E.
Agenti logici: sistemi a regole Regole all’indietro e programmazione logica Regole in avanti e basi di dati deduttive Maria Simi a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
Grammatiche non contestuali (1)
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Risoluzione di Problemi
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi Agostino Poggi Stefano Cagnoni.
Linguaggi di Programmazione (AA 2005/2006) Corso di Laurea in Informatica Introduzione al linguaggio Prolog - alberi SLD.
Agenti logici: calcolo proposizionale Maria Simi a.a. 2006/2007.
La logica degli enunciati interamente realizzata da GIANNUZZI SILVIA
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini III. La logica delle proposizioni.
Elementi di Topologia in R
Logica Lezione 8, DISTRIBUIRE COMPITO 1.
Lezione marzo nota su "a meno che" A meno che (non) = oppure Il dolce lo porto io (I) a meno che (non) lo porti Mario (M) I  M   I  M.
Logica Lezione 19, Distribuire compito 3 DATA esame in classe intermedio: Lunedì 20 aprile.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue logicamente da un insieme di formule (programma); cioè, che la formula e’ un teorema. Si deve determinare una sostituzione per le variabili del goal (detto anche “query”) per cui il goal segue logicamente dal programma. Dato un programma P e una query: :- S (t 1, t 2, …, t m ). se x 1, x 2, …, x n sono le variabili che compaiono in t 1, t 2, …, t m il significato logico della query e’:  x 1  x 2 …  x n S (t 1, t 2, …, t m ) e l’obiettivo e’ quello di trovare una sostituzione  = [ x 1 / a 1, x 2 / a 2, …, x n / a n ] dove a i sono termini tale per cui P [S (t 1, t 2, …, t m )] 

Risoluzione Se è noto che “P è vera o Q è vera” ed anche che “P è falsa o R è vera”, allora deve essere il caso che “Q è vera o è vera R ” “L’idea che sta alla base della risoluzione è piuttosto semplice” Logical Foundations of Artificial Intelligence Michael R. Genesereth Nils J. Nilsson

Risoluzione SLD Risoluzione Lineare per Clausole Definite con funzione di Selezione (completa per le clausole di Horn) Dato un programma logico P e una clausola goal G 0, ad ogni passo di risoluzione si ricava un nuovo risolvente G i+1, se esiste, dalla clausola goal ottenuta al passo precedente G i e da una rinomina di una clausola appartenente a P Una rinomina per una clausola C e’ la clausola C’ ottenuta da C rinominando le sue variabili. Quello che segue è un esempio di rinomina: p(X) :- q (X, g(Z)). p(X1) :- q (X1, g(Z1)).

Risoluzione SLD Operativamente... La Risoluzione SLD seleziona un atomo A m dal goal G i secondo un determinato criterio, e lo unifica se possibile con la testa della clausola C i attraverso la sostituzione più generale: MOST GENERAL UNIFIER (MGU) Il nuovo risolvente e’ ottenuto da G i riscrivendo l’atomo selezionato con la parte destra della clausola C i ed applicando la sostituzione  i. Più in dettaglio: :- A 1, …, A m-1, A m, A m+1, …,A k. Risolvente, A :- B 1, …, B k. clausola del programma P, e [A m ]  i = [A]  i allora la risoluzione SLD deriva il nuovo risolvente :- [A 1, …, A m-1, B 1, …, B q, A m+1, …, A k ]  i.

Risoluzione SLD sum (0, X, X). [CL1] sum (s(X), Y, s(Z)) :- sum (X, Y, Z). [CL2] Goal sum (s(0), 0, W). Al primo passo genero una rinomina della clausola [C2] sum (s(X1), Y1, s(Z1)) :- sum (X1, Y1, Z1). Unificando la testa con il goal, ottengo la sostituzione MGU  1 = [X1/0, Y1/0, s(Z1)/W] Ottengo il nuovo risolvente [G1] :- [sum (X1, Y1, Z1)]  1 ossia, :- sum (0, 0, Z1)..

Derivazione SLD Una derivazione SLD per un goal G 0 dall’insieme di clausole definite P e’ una sequenza di clausole goal G 0, …, G n, una sequenza di rinomine di clausole del programma C 1, …, C n, e una sequenza di sostituzioni MGU  1,…,  n tali che G i+1 è derivato da G i e da C i+1 attraverso la sostituzione  n. La sequenza può essere anche infinita. Esistono tre tipi di derivazioni: SUCCESSO, se per n finito G n è uguale alla clausola vuota G n = :-– FALLIMENTO FINITO, se per n finito non è più possibile derivare un nuovo risolvente da G n e G n non è uguale a :-– FALLIMENTO INFINITO, se è sempre possibile derivare nuovi risolventi tutti diversi dalla clausola vuota.

Derivazione di SUCCESSO sum (0, X, X). [CL1] sum (s(X), Y, s(Z)) :- sum (X, Y, Z). [CL2] Il goal G 0 :- sum (s(0), 0, W) ha una derivazione di successo ! [C1] rinomina di [CL2] sum (s(X1), Y1, s(Z1)) :- sum (X1, Y1, Z1).  1 = [X1/0, Y1/0, s(Z1)/W] [G 1 ] :- sum (0, 0, Z1). [C2] rinomina di [CL1] sum (0, X2, X2).  2 = [Z1/0, X2/0] [G 2 ] :-

Derivazione di FALLIMENTO FINITA sum (0, X, X). [CL1] sum (s(X), Y, s(Z)) :- sum (X, Y, Z). [CL2] Il goal G 0 :- sum (s(0), 0, 0) ha una derivazione di fallimento finito !... semplicemente, perché l’unico atomo del goal non è unificabile con alcuna clausola del programma.

Derivazione di FALLIMENTO INFINITA sum (0, X, X). [CL1] sum (s(X), Y, s(Z)) :- sum (X, Y, Z). [CL2] Il goal G 0 :-sum(A,B,C) ha una derivazione SLD infinita !... ottenuta applicando ripetutamente varianti della seconda clausola di P [C1] rinomina di [CL2] sum (s(X1), Y1, s(Z1)) :- sum (X1, Y1, Z1).  1 = [A/s(X1),B/Y1,C/s(Z1)] [G 1 ] :- sum(X1, Y1, Z1). [C2] rinomina di [CL2] sum (s(X2), Y2, s(Z2)) :- sum (X2, Y2, Z2).  2 = [X1/s(X2),Y1/Y2,Z1/s(Z2)] [G 2 ] :- sum (X2, Y2, Z2)....

Non Determinismo Nella risoluzione SLD, così come è stata enunciata, si hanno due forme di non determinismo. La prima forma di non determinismo è legata alla selezione di un atomo A m del goal da unificare con la testa di una clausola, e viene gestita definendo una particolare regola di calcolo. La seconda forma di non determinismo è legata alla scelta di quale clausola del programma P utilizzare in un passo di risoluzione, e viene gestita definendo una strategia di ricerca.

Regola di Calcolo Una regola di calcolo è una funzione che ha come dominio l'insieme dei letterali (atomi) di un goal e come codominio un insieme formato da un solo atomo dello stesso goal, ad esempio A m nel goal seguente :-A 1,...,A m-1, A m, A m+1,..., A k sum (0, X, X). [CL1] sum (s(X), Y, s(Z)) :- sum (X, Y, Z). [CL2] G 0 :- sum (0, s(0), s(0)), sum (s(0),0,s(0)). Se si seleziona l’atomo più a sinistra (LEFT-MOST) al primo passo, unificando l’atomo sum (0, s(0), s(0)) con la testa di [CL1], si otterrà: [G 1 ] :- sum (s(0), 0, s(0)). Se si seleziona l’atomo più a destra (RIGTH-MOST) al primo passo, unificando l’atomo sum (s(0), 0, s(0)) con la testa di [CL2], si avrà: [G 1 ] :- sum (0, s(0), s(0)), sum (0, 0, 0).

Strategia di Ricerca Questa forma di non determinismo implica che possano esistere più soluzioni alternative per uno stesso goal, corrispondenti alle diverse scelte delle clausole con cui tentare l’unificazione. La risoluzione SLD (completezza), deve essere in grado di generare tutte le possibili soluzioni e quindi deve considerare ad ogni passo di risoluzione tutte le possibili alternative. La strategia di ricerca deve garantire questa completezza Una forma grafica utile per rappresentare la risoluzione SLD e questa forma di non determinismo sono gli alberi SLD.

Alberi SLD Dato un programma logico P, un goal G 0 e una regola di calcolo R, un albero SLD per P  { G 0 } via R è definito come segue: 1.ciascun nodo dell'albero è un goal (eventualmente vuoto); 2.la radice dell'albero è il goal G 0 ; 3.dato il nodo :- A 1,..., A m-1, A m, A m+1,..., A k, se A m è l’atomo selezionato dalla regola di calcolo R, allora questo nodo genitore ha un nodo figlio per ciascuna clausola C i = A :- B 1, …, B q di P tale che A e A m sono unificabili attraverso una sostituzione unificatrice più generale . Il nodo figlio è etichettato con la clausola goal: :- [A 1, …, A m-1, B 1, …, B q, A m+1, …, A k ]  e il ramo, dal nodo padre al figlio, è etichettato dalla sostituzione  e dalla clausola selezionata C i ; 4.Il nodo vuoto (indicato con “:-”) non ha figli.

Strategia di Ricerca La realizzazione effettiva di un dimostratore basato sulla risoluzione SLD richiede la definizione non solo di una regola di calcolo, ma anche di una strategia di ricerca che stabilisca una particolare modalità di esplorazione dell’albero SLD alla ricerca dei rami di successo. Le modalità di esplorazione dell’albero piu’ comuni sono: depth first [PRIMA IN PROFONDITA’] breadth first [PRIMA IN AMPIEZZA] Entrambe le modalità implicano l’esistenza di un meccanismo di backtracking per esplorare tutte le strade alternative che corrispondono ai diversi nodi dell’albero.

Forma normale congiuntiva e implicativa Un letterale è un atomo o la negazione di un atomo. Una clausola è una disgiunzione di letterali: A 1 ...  A n  B 1 ...  B m (con A i, B j atomi) equivalentemente, puo essere rappresentata in forma implicativa: B 1 ...  B m  A 1 ...  A n Una formula in forma normale congiuntiva è una congiunzione di clausole. Qualsiasi formula proposizionale può essere convertita in una formula proposizionale in forma normale congiuntiva logicamente equivalente. Qualsiasi formula predicativa ø può essere convertita in una formula predicativa in forma normale congiuntiva ø’, infatti 1. in generale ø non è logicamente equivalente a ø’, ma 2. ø è insoddisfacibile sse ø’ è insoddisfacibile. Base di conoscenza (KB) è un insieme di clausole

A 1 ...  A m  B 1 ...  B n clausola k = 1 A 1 ...  A m  B 1 clausola di Horn una calusola con al più un letterale positivo k = 1 m = 1 V  FV  F clausola vuota k   m   Forme Canoniche per la Risoluzione