Conoscenza e ragionamento
Logica dei predicati del primo ordine
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
La logica dei predicati del primo ordine permette di rappresentare:
•Oggetti: persone, cose, numeri etc.
•Relazioni: fratello, maggiore, parte di etc.
•Proprietà: rosso, primo, grande etc.
•Funzioni: successore, somma, padre di etc.
Esempi:
“Uno più due uguale tre” - uno,due,tre sono oggetti, più è una funzione, uguale è
una relazione
“Il diabolico Re Giovanni imperversò in Inghilterra nel 1200”
Giovanni, Inghilterra e 1200 sono oggetti, imperversò è una relazione, re e
diabolico sono proprietà
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Sintassi
•Simboli di costante: A,B,C,Giovanni
•Simboli di predicato: Tondo, Fratello
•Simboli di funzione: Padre_di, Quadrato
Termini:
I simboli di costante sono termini es. Giovanni
Applicando una funzione n-adica a una n-pla di termini si ottiene un termine es.
Padre_di(Giovanni)
Formule atomiche: Formata da un simbnolo di predicato seguito da una lista di
termini es:
Fratello(Riccardo,Giovanni)
Sposati(Madre_di(Riccardo),Padre_di(Riccardo))
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Sintassi
Formule complesse:
si ottengono dalle formule atomiche usando i connetivi logici
,,, , 
Fratello ( Riccardo , Giovanni)  Fratello (Giovanni, Riccardo )
PiùGrande(Giovanni,30)  PiùGiovane( Luigi ,30)
PiùGrande(Giovanni,30)  PiùGiovane(Giovanni,30)
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Semantica
Per dare un significato a una formula bisogna interpretarla come
una affermazione sul dominio del discorso.
Un dominio D è un insieme non vuoto (anche infinito) ad es.
Insieme di persone, l’insieme dei naturali etc.
Una interpretazione si ottiene associando
•ad ogni simbolo costante un elemento di D
•ad ogni simbolo di funzione una funzione su D
•ad ogni predicato n-ario una relazione n-aria su D
Ad ogni formula atomica si assegnare un valore vero o falso
Ad ogni formula complessa si assegna un valore vero o falso
utilizzando le tavole di verita
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Semantica
Esempio di interpretazione
Sia data la formula
P(a,f(b,c))
Una possibile interpretazione è:
D è il dominio degli interi
•a è l’intero 2
•b è l’intero 4
•c è l’intero 6
•f è la funzione addizione
•P è la relazione maggiore di
In questa interpretazione si afferma che: “2 è maggiore di 4 + 6” .In questa
interpretazione la formula ha valore falso
In una seconda interpretazione possiamo dire a è l’intero 11e la formula assume
valore vero
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Variabili e quantificatori
Quantificatore universale:
supponiamo che P sia la relazione MaggioreUguale
P(0,0)  P(1,0)  P(2,0)  ...  P(100,0)
(x) P( x,0)
Quantificatore esistenziale:
supponiamo che Q sia una qualche proprietà
Q(a)  Q(b)  Q(c)...
(x)Q( x)
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Variabili e quantificatori
Quantifica tori annidati
(x)(y ) P( x, y )
(x)(y ) P( x, y )
(l' elemento y che esiste dipende a x)
Valgono le segeunti equivalenz e
(x)W ( x)  (x)W ( x)
(x)W ( x)  (x)W ( x)
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
PARENTELE
(m, c)Madre(m, c)  Femmina(m)  Genitore(m , c)
(p, c)Genitore (p, c)  Figlio(c, p)
(g, c)(Nonno(g , c)  (p)Genitore (g, p)  Genitore(p , c))
(x, y)(Fratell o(x, y)  x  y  (p)Genitore (p, x)  Genitore(p , y))
da :
Genitore(Giovanni, Mario )  Genitore(Giovanni, Luca )
si inferisce :
Fratello ( Mario , Luca )
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Agenti Logici
Logica dei predicati del primo ordine
TELL(KB, (xy)(Fratel lo(x, y) 
x  y  (p)(Genitor e(p, x)  Genitore(p , y))))
TELL(KB, Genitore(G iovanni, Mario))
TELL(KB, Genitore(G iovanni, Luca))
si può chiedere :
ASK ( KB, Fratello ( Mario , Luca ))
la risposta sarà si.
ASK ( KB, (x)Genitore(Giovanni, x))
la risposta sarà : {x/Mario} oppure {x/Luca}
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Nel calcolo delle
situazioni, il mondo è
una sequenza di
azioni collegate da
azioni
A( Agente, [1,1], So )  A( Agente, [2,1], S1 )
Risulta ( Avanza, S0 )  S1 Risulta (Gira ( Destra ), S1 )  S 2 Risulta ( Avanza, S 2 )  S3
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Agente stimolo -risposta
Rappresentiamo una percezione come una lista
Percezione([Fetore,Brezza,Luccichio],5)
Percezione([Nulla,Nulla,Nulla],5)
Azioni: Avanza, Gira(Destra), Gira(Sinistra), Afferra, Spara etc.
Regole stimolo - risposta
( s, b, t ) Percezione ([ s, b, Luccichio ], t )  AllOro (t )
t AllOro(t)  Azione ( Afferra, t )
Interrogaz ione KB
a Azione (a,5)
Risposta : {a / Afferra}
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
Calcolo delle situazioni
Assiomi degli effetti :
Effetto delle azioni (s è una situazione , a una azione) :
s Detiene( Risulta(Af ferra,s))
s Detiene(Ri sulta(Rila scia,s))
Assiomi di frame :
Ciò che non cambia nel mondo dopo l' azione a
a, s Detiene ( s )  a  Rilascia  Detiene ( Risulta (a, s ))
a, s Detiene ( s )  a  Afferra  Detiene ( Risulta (a, s ))
Detiene(s) significa che l' agente ha l' oro nella situazione s
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999
Logica dei predicati del primo ordine
l,s A(Agen te,ls)  Brezza(s)  Ventoso(l)
l,s A(Agen te,ls)  Fetore(s)  Fetido(l)
Regole causali :
l1,l 2 ,s A(Wumpus, l1, s )  Adiacente(l1, l 2)  Fetido(l 2)
l1,l 2 ,s A( Buca , l1, s )  Adiacente(l1, l 2)  Ventoso(l 2)
l,s A(Agen te,ls)  Fetore(s)  Fetido(l)
Regole diagnostic he :
l,s A( Agente, l , s )  Brezza ( s )  Ventoso(l )
l,s A( Agente, l , s )  Fetore( s )  Fetido(l )
Per dedurre la presenza di un Wumpus :
l1, s Fetida(l1)  (l 2 A(Wumpus, l 2, s ) 
(l 2  l1  Adiacente( L1, l 2))
Dedurre che una locazione è sicura :
l1,l 2, g, s Percezione ([ Nulla , Nulla , g ], t ) 
A( Agente, l1, s )  Adiacente(l1, l 2)  Sicuro ( y )
Ingegneria della conoscenza e sistemi esperti
Dario Bianchi , 1999