Logica del primo ordine - Dipartimento di Informatica

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