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 1 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 2 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 ∃X pari(X) è vera in I ∃X (pari(X) ∨ dispari(X)) è vera in I ∃X (pari(X) ∧ dispari(X)) è falsa in I pari(1) è falsa in I ∀X pari(X) è falsa in I ∀X (pari(X) ∨ dispari(X)) è vera 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 3 • 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 4 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 5 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 6 • 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 7 La regola di risoluzione • Caso della logica proposizionale – 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 Q∨R Console, Botta - Dip. Informatica, Univ. Torino ¬P ∨ R ∨ ¬S Q ∨ R∨ ¬S 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 8 – 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 9 • 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’ C: (C1’ ∨ C2’)s – Esempi p(X) ∨ q(X) ¬ p(a) ∨ r(b) p(X,Y) ∨ q(f(X),Y) q(a) ∨ r(b) ¬ q(f(a),Z) ∨ 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), ¬r(a) ¬p(a) ∨ ¬q(a) ¬s(X) ∨ q(X) ¬p(a) ∨ ¬s(a) ¬s(a) Console, Botta - Dip. Informatica, Univ. Torino p(a) s(a) First Order Logic 20 10 • 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 11 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 12