Logica del primo ordine Sistema formale sviluppato in ambito matematico formalizzazione delle leggi del pensiero strette relazioni con studi filosofici In ambito Intelligenza Artificiale logica come linguaggio formale per la rappresentazione di conoscenza semantica non ambigua sistemi formali di inferenza interesse per sistemi per la dimostrazione automatica di teoremi e studio di meccanismi efficienti per la dimostrazione Logica come strumento base in molti iniziali studi di AI logica del primo ordine come linguaggio di descrizione logica come sistema di ragionamento Estensioni della logica del primo ordine estensioni del potere espressivo (e strutturazione) estensione delle forme di inferenza (logiche non-monotone) Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 1 Grande dibattito sul ruolo della logica in AI Diverse scuole di pensiero Logicisti: logica come strumento di base per qualunque problema di AI formalizzazione logica del problem solving automatizzazione dei sistemi formali di ragionamento logico Anti-logicisti approcci non logici alla rappresentazione della conoscenza e al ragionamento Posizione intermedia logica come strumento di analisi e per fornire una semantica realizzazione concreta mediante strumenti non logici Vedremo richiami di logica del primo ordine sintassi, semantica, inferenza sistemi di dimostrazione automatica risoluzione e strategie di risoluzione logica come linguaggio base di rappresentazione e inferenza limiti della logica del prim ordine come strumenti di base per analizzare altri formalismi di AI Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 2
Sintassi Linguaggio caratterizzato dai seguenti insiemi: Insieme finito C di simboli di costante {c1, c2,, cn} Insieme finito V di simboli di variabile {X1, X2,, Xm} Insieme finito F di simboli di funzione {f1, f2,, fk} Insieme finito P di simboli di predicato {p1, p2,.. pl} Connettivi:,,,, Quantificatori:, Parentesi: (, ) Si definiscono quindi Termini ogni costante è un termine; ogni variabile è un termine l applicazione di un qualunque simbolo di funzione f a n termini t1,, tn produce un temine f(t1,t2,,tn) Esempi se C = {mario, maria, giovanni} V= {X,Y} F={padre, madre} sono termini: mario, maria, X, padre(x), madre(padre(maria)), Formule atomiche un predicato p P applicato a n termini è una formula atomica Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 3 Esempi: se C, V, F come prima e P= {fratello, genitore, sposato} sono formule atomiche: sposato(mario), fratello(x,y), fratello(x,maria) genitore(padre(x),x), genitore(x, padre(madre(maria))), Formule ben formate (FbF) una formula atomica è una FbF se F1 e F2 sono FbF, allora lo sono anche F1, F1 F2, F1 F2, F1 F2, F1 F2, x F1, x F1, (F1) Esempi, dati C, V, F e P come negli esempi precedenti, sono FbF sposato(mario), fratello(x,y), fratello(x,maria) sposata(maria), x genitore(padre(x),x), x( genitore(x, padre(madre(maria)))) x (sposato(x,y) Z padre(z,y))) Scope di un quantificatore data x F ( x F), si dice che F è lo scope del quantificatore variabile legata se occorre nello scope di un quantificatore, altrimenti variabile libera Formule chiuse se non contengono variabili libere Formule ground, se non contengono variabili Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 4
Semantica Consideriamo formule chiuse Interpretazione: dominio D in cui sono definite funzioni e relazioni interpretazione associa un elemento d D ad ogni simbolo di costante una funzione f: Dn a D ad ogni simbolo di funzione a n argomenti una relazione R Dn ad ogni simbolo di predicato con n argomenti Interpretazione I soddisfa una formula F (F è vera in I): se F è una formula atomica p(t1,,tn), allora I soddisfa F (F è vera in I) sse <I(t1),, I(tn)> I(p) se F è una formula composta allora (usuali tavole di verità) F1 è vera in I sse F1 non è vera in I F1 F2 è vera in I sse sia F1 che F2 sono vere in I F1 F2 è vera in I sse almeno una tra F1 e f2 è vera in I F1 F2 è falsa in I sse F1 è vera in I e F2 è falsa in I F1 F2 è vera in I sse F1 e F2 sono entrambe o vere o false in I x F1 è vera in I sse per ogni elemento d D si ha che F1[d/x] è vera in I x F1 è vera in I sse esiste un elemento d D per cui F1[d/x] è vera in I Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 5 Esempio D dominio dei numeri naturali, interpretazione I definita in modo ovvio pari(2) è vera in I pari(1) è falsa in I X pari(x) è vera in I Xpari(X) è falsain I X (pari(x) dispari(x)) è vera in I X (pari(x) dispari(x)) è vera in I X (pari(x) dispari(x)) è falsa in I Data una formula F F è soddisfacibile sse esiste una interpretazione I che la rende vera; I si dice un modello di F (I = F) F insoddisfacibile sse non esiste una interpretazione che la soddisfa F valida sse ogni interpretazione soddisfa F Due formula F1 e F2 sono equivalenti (F1 F2) sse sono soddisfatte dalle stesse interpretazioni Diverse equivalenze tra formule possono essere dimostrate usando le tabelle di verità, ad esempio F1 (F2 F3) (F1 F2) (F1 F3) (prop. distributiva, idem altre ) F1 F2 ( F1 F2) (leggi di demorgan, idem scambiando or e and) X p(x) X p(x). Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 6
Conseguenza logica una formula G è conseguenza logica di una formula F (indicato con F = G) sse ogni modello di F è anche un modello di G Esempi p(a) p(b) = p(a) p(a) p(b) = p(a) p(b) p(a) = X p(x) ma X p(x) =/= p(a) X p(x) = X p(x) X p(x) = p(a1) p(an) Teorema di dimostrazione: Se F è soddisfacibile, allora G è conseguenza logica di F sse F G è insoddidfacibile Dimostrazione se G è conseguenza logica di F allora ogni modello di F soddisfa G, quindi non soddisfa G e quindi F G è insoddisfacibile se F G è insoddisfacibile allora poiché F è soddisfacibile si deve avere che ogni modello di F non soddisfa G, ossia ogni modello di F soddisfa G e quindi G è conseguenza logica di F Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 7 Esempio p(a) p(b) = p(a) I = { a=2, b=4, p=pari } p(a) p(b) è soddisfacibile (I la rende vera) p(a) è conseguenza logica perché p(a) p(b) p(a) è insoddisfacibile Infatti p(a) non può essere contemporaneamente vera e falsa a Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 8
Forma a clausole Trasformazione delle formule in una forma sintattica particolare Una formula F è in forma prenessa se ha la forma Q1X1 QmXm(F) dove ogni Qi è un quantificatore Proprietà: ogni formula può essere trasformata in una equivalente in forma prenessa Esempi: X p(x) Y p(y) non è in forma prenessa X Y(p(X) p(y)) è equivalente in forma prenessa X Y(p(X) p(y)) è in forma prenessa F è in forma standard di Skolem se F è in forma prenessa e tutti i quantificatori sono universali Eliminazione dei quantificatori esistenziali sostituiti con costanti e funzioni di Skolem Yp(Y) sostitituito con p(s1) con s1 nuova costante X Yp(Y,X) sostituito con p(f(x),x) con f nuova funzione Proprietà: data F in forma prenessa e sua trasformata F in forma normale di Skolem si ha che F è soddisfacibile sse F è soddisfacibile (ma non sono equivalenti!) Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 9 Una formula F in forma normale di Skolem è in forma a clausole se F è una congiunzione di disgiunzioni (è in forma normale congiuntiva), ossia F ha la forma F: (A1 A2 An) (B1 B2 Bn) in cui ogni Ai (Bj) è una formula atomica o la sua negazione (un atomo) Ogni disgiunzione di atomi prende il nome di clasuola Una formula è un insieme (congiunzione) di clausole Un atomo o la sua negazione prende il nome di letterale Proprietà: ogni formula in forma di Skolem può essere trasformata in una formula equivalente in forma a clausole Quindi data una formula F e la sua trasformazione in un insieme S di clausole si ha che F soddisfacibile sse S è soddisfacibile per la dimostrazione automatica di teoremi è quindi sufficiente operare su forma a clausole Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 10
Dimostrazione automatica di teoremi Procedure automatiche per dimostrare se una formula è valida o insoddisfacibile e quindi in grado di dimostrare se una formula G è conseguenza logica di una formula F In generale per dimostrare che F è insoddisfacibile si dovrebbero verificare tutte le possibili interpretazioni Risultato importante di Herbrand [1930] consente di limitare l analisi a una classe di interpretazioni (interpretazioni di Herbrand) definire un modo automatico per la verifica di soddisfacibilità usando una forma di rappresentazione particolare delle formule: il principio di risoluzione [Robinson 65] realizzazione efficiente a calcolatore del principio di risoluzione e costruzione di dimostratori automatici di teoremi realizzazione di linguaggi di programmazione (e di rappresentazione della conoscenza) basati su tale principio (programmazione logica) Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 11 Universo di Herbrand dato un insieme S di clausole, l universo di Herbrand H(S) per s è definito come H(S) contiene i simboli di costante che occorrono in S se f è un simbolo di funzione n-aria che occorre in S e h1,, hn sono elementi di H(S), allora anche f(h1,..,hn) sta in H(S) Esempio se S={p(a), p(x), q(y), q(f(y)} H(S)={a, f(a), f(f(a),.. } Base di Herbrand dato un insieme S di clausole e l universo di Herbrand H(S) per S, la base di Herbrand B(S) è l insieme delle istanze ground delle formule atomiche (atomi) che occorrono in S Esempio dati S e H(S) come nell esempio precedente B(S) ={p(a), p(f(a)), p(f(f(a)),.., q(a), q(f(a)), q(f(f(a)),. } Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 12
Interpretazione di Herbrand interpretazione di un insieme S di clausole in cui il cui dominio è l universo di Herbrand H(S) ogni simbolo di costante è interpretato sulla corrispondente costante in H(S) ogni simbolo di funzione è interpretato come una funzione che trasforma h1,.., hn in f(h1,.., hn) (tutti in H(S)) ogni simbolo di predicato in una relazione su B(S) Osservazione definire una interpretazione di Herbrand corrisponde a dire quale sottoinsieme della base di Herbrand è vera nell interpretazione Interpretazioni di Herbrand giocano un ruolo importante in quanto ci si può limitare ad esse nella dimostrazione di teoremi, infatti: Un insieme S di clausole è insoddisfacibile sse non esiste una interpretazione di Herbrand che lo soddisfa quindi nel processo di dimostrazione ci si può limitare a considerare tali interpretazioni Vedremo principio di Risoluzione basato su tale idea Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 13 Regole di inferenza Regole di inferenza: regole sintattiche che permettono di derivare formule da altre formule Esempio: modus ponens A A B B data regola di inferenza R, la possibilità di derivare una formula F da un insieme di formule K indicato con K -R- F Correttezza di R: se K -R- F allora K = F Completezza di R: se K = F allora K -R- F Esempio modus ponens è regola corretta ma non completa Una singola regola di inferenza per dedurre nuove formule da altre formule e che opera sulla forma a clausole regola opera su clausole regola di inferenza corretta e completa per la forma a clausole regola facilmente meccanizzabile Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 14
Caso della logica proposizionale La regola di risoluzione Due letterali si dicono opposti se uno è la negazione dell altro date due clausole con letterali opposti C1: L C1 C2: L C2 un risolvente di C1 e C2 è la clausola C: C1 C2 C1: L C1 C2: L C2 C: C1 C2 Proprietà: C è conseguenza logica di C1 e C2 Esempi P Q P R P Q P R S Q R Q R S Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 15 caso della logica del primo ordine sostituzioni e unificazione regola di risoluzione Sostituzione una sostituzione è un insieme finito di coppie del tipo {t1/x1,, tn/xn} in cui ogni ti è un termine e ogni Xi è una variabile (e le variabili sono distinte) sia E una espressione (termine o formula) e s= {t1/x1,, tn/xn} una sostituzione, allora Es è l espressione che si ottiene sostituendo in modo simultaneo le occorrenze di ogni Xi con ti in E Esempi P(X,Y) {a/x, f(b)/y} = P(a,f(b)) P(X,Y) {Y/X, f(b)/y} = P(Y,f(b)) Composizione di sostituzioni date due sostituzioni s1 = {t1/x1,, tn/xn} e s2 = {t 1/Y1,, t m/ym} la sostituzione composta s1 s2 (o s1s2) è definita come s1s2 = {t1s2/x1,, tns2/xn, t 1/Y1,, t m/ym} Esempio: {a/x, f(y)/z} {b/y} = {a/x, f(b)/z, b/y} Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 16
Sostituzione più generale: una sostituzione s è più generale di una sostituzione t sse esiste una sostituzione r tale per cui t=sr esempio: s= {Y/X} più generale di t= {a/x} infatti r= {a/y} Unificatore date due espressioni (termini o formule) E1 e E2, una sostituzione s è un unificatore per E1 e E2 sse E1s = E2s Esempio s= {a/x, f(b)/y} è un unificatore per E1=p(X,f(b)) E2=p(a,Y) Unificatore più generale: sostituzione più generale che unifica due espressioni Esempio s= {Z/X, f(b)/y} è l unificatore più generale per E1=p(X,f(b)) E2=p(Z,Y) s= {a/x, f(b)/y, a/z} non è l unificatore più generale per E1=p(X,f(b)) E2=p(Z,Y) Unificazione due espressioni E1 ed E2 sono unificabili se esiste un unificatore Esempio E1=p(X,f(b)) E2=p(a,Y) sono unificabili E1=p(X,X) E2=p(Y,f(Y)) non sono unificabili Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 17 Algoritmo di unificazione: algoritmo che determina l unificatore più generale di due espressioni E1 ed E2 SOST unifica(termine E1, E2, SOST s) { termine a,b; SOST s1; if (s==fail) return(fail); a=e1s; b=e2s if (a e b sono costanti e a==b) return(s); if (a è una variabile e b un termine e a non occorre in b) return(s {b/a}); if (b è una variabile e a un termine e b non occorre in a) return(s {a/b}); if (a e b sono termini composti con lo stesso simbolo di funzione e stesso numero di argomenti) { for(int i=1; i n, i++) { s1= unifica(i-esimo termine di a, i-esimo termine di b, s); s = s s1 }; return(s) } else return(fail) } Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 18
Risoluzione Date due clausole C1 e C2 con letterali opposti C1: L C1 C2: L C2 con L e L unificabili e s unificatore più generale Un risolvente è la calusola C: (C1 C2 )s C1: L C1 C2: L C2 Esempi C: (C1 C2 )s p(x) q(x) p(a) r(b) p(x,y) q(f(x),y) q(f(a),z) r(b) q(a) r(b) p(a,z) r(b) Anche nel caso della logica del prim ordine il risolvente è conseguenza logica delle due clausole Risoluzione è regola di inferenza corretta e completa Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 19 Dimostrazione per refutazione Dimostrazione di teoremi: data teoria T, dimostrare che A segue logicamente da T Equivalente a dimostrare che T A inconsistente si considera l insieme di clausole formato da T e A si verifica se da questo insieme si riesce a derivare una contraddizione contraddizione: due clausole formate da un singolo letterale L e L che quando risolte producono la clausola vuota Esempio dati T= {p(x) q(x) r(x), p(a), s(a), s(x) q(x) } e A=r(a) in forma a clausole { p(x) q(x) r(x), p(a), s(a), s(x) q(x) } verificare che { p(x) q(x) r(x), p(a), s(a), s(x) q(x) } { r(a) } è inconsistente p(x) q(x) r(x), p(a) q(a) r(a) s(x) q(x) p(a) s(a) s(a) p(a) s(a) Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 20
Dimostrazione = ricerca insieme di clausole applicare risoluzione tra calusole produce nuove clausole: grafo (albero) di risoluzione obiettivo: arrivare alla clausola vuota stretegia: costruzione dell albero effettuando la ricerca della clausola vuota spazio di ricerca ampio: strategie di risoluzione strategia dell insieme di supporto poiché T è consistente è inutile risolvere tra di loro clausole di T T insieme di supporto ad ogni passo si risolvono clausole in cui al più una è nell insieme di supporto input-resolution si definicse come insieme di input quello formato dalle clausole di T e A ad ogni passo una delle due clausole deve essere una di input risoluzione lineare ad ogni passo risolvo la clausola ottenuta dalla risoluzione precedente con una delle altre (di input o ottenuta ad un passo precedente) risoluzione linear-input ad ogni passo risolvo la clausola ottenuta dalla risoluzione precedente con una di quelle di input Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 21 Osservazione: non tutte le strategie sono complete Es. linear-input in generale non è completa; è completa solo su linguaggi ristretti (clausole di Horn) Strategie di ricerca simili a quelle usate in problem solving in AI profondità ampiezza ricerca euristica varie euristiche lunghezza delle clausole predicati presenti nelle clausole... Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 22
Applicazioni AI della logica classica Dimostrazione automatica di teoremi Logica come linguaggio di rappresentazione della conoscenza e dimostrazione di teoremi come forma di ragionamento Logic Programming Limiti della logica come forma di rappresentazione struttura piatta delle clausole Altri linguaggi di rappresentazione hanno semantica in termini logici ad esempio frame o reti semantiche possono essere formalizzati in termini logici Quindi logica permette di caratterizzare le forme di ragionamento Limiti della logica nel modellare il ragionamento umano logiche non-standard Console, Botta - Dip. Informatica, Univ. Torino First Order Logic 23