Documente Academic
Documente Profesional
Documente Cultură
Programare logica
Obsevatii preliminare
3
4
echivalenta.
Care sunt formele clauzale permise n P ROLOG.
Ce este principiul rezolutiei.
Programare logica
Observatii preliminare
Traducerea cunostintelor din limbaj natural n limbaj artificial
B Aseman
cu limbajul natural traducere usoara a
cunostintelor din limbaj natural n formule din limbajul logicii
de ordinul I.
Programare logica
Limbaj
natural
formalizare
Limbajul
logicii de
ordinul I
transformari logice
Forme
clauzale
Clauze
Horn
programare n P ROLOG
Programare logica
Programare logica
Programare logica
Exemplu
(x)(y )((x < y ) (sin(x) < sin(y )) este un variant al formulei
(z)(t)((z < t) (sin(z) < sin(t))
Doua formule F s i G sunt logic echivalente s i scriem
F G daca au acelasi nteles n orice interpretare.
Daca G este un variant al lui F atunci F G.
B Intuitiv, acest lucru nseamna ca interpretarea unei formule
nu depinde de numele alese pentru variabile.
Programare logica
Forme clauzele
Un literal este fie un atom sau negatia unui atom.
O forma prenex este o formula de forma
(Q1 x1 )(Q2 x2 ) (Qn xn )F
a
unde fiecare Qi este sau , iar F este o formula far
cuantificatori.
O forma clauzala este o formula din limbajul logicii
predicatelor de ordinul I, de forma
(x1 ) . . . (xn ).(L1 L2 . . . Lm )
unde fiecare subformula Li este un literal.
Exemple de forme clauzale
(x)(sportiv (x) puternic(x))
(x)(y )(sportiv (x) puternic(y ) frate(x, y ))
parinte(dan, ion) parinte(ion, dan).
Programare logica
C1
n general, urmatoarele
formule sunt logic echivalente:
(x)(P Q) ((x)P) ((x)Q)
(x)(P Q) ((x)P) ((x)Q)
n general, urmatoarele
formule nu sunt logic echivalente:
(x)(P Q) 6 ((x)P) ((x)Q)
(x)(P Q) 6 ((x)P) ((x)Q)
Exemple
(x)(x = 0 x 6= 0) 6 ((x)(x = 0)) ((x)(x 6= 0))
|
{z
}
{z
}
|
{z
}
|
true
false
false
true
Programare logica
true
. Se propaga negatiile:
F F
F F
(F G) F G
(F G) F G
Programare logica
. Se produce transformarea
F x1 . xk 1 .G[xk 7 f (x1 , . . . , xk 1 )]
unde f este un simbol nou introdus n limbaj:
Cm
forma clauzala
Programare logica
Forme clauzale
Reprezentare simplificata
Clauze Horn
Clauza Horn = forma clauzala ce contine un singur atom
B toti ceilalti literali sunt negatii de atomi.
Doar clauzele Horn se pot rescrie ca reguli si
fapte n
P ROLOG.
n general, o clauza Horn
A1 , . . . , Ai1 , Ai , Ai+1 , . . . , Am .
se poate rescrie ca
Ai :- A1 , . . . , Ai1 , Ai+1 , . . . , Am .
Exemplu
Forma clauzala cu reprezentarea simplificata
bunic(X , Y ), tata(X , Z ), mama(Z , Y ).
este clauza Horn care se poate scrie astfel:
bunic(X , Y ):-tata(X , Z ), mama(Z , Y ).
Programare logica
exista un numar
1 nu este prim.
Formalizarea textului produce 4 formule n logica predicatelor de ordinul I:
(x)(rational(x) real(x)).
(x)prim(x).
(x)(y )mai_mic(x, y ).
prim(1).
Eliminarea implicatiei transforma prima formula n
(x)(rational(x) real(x)).
Formele Skolem standard ale celor 4 formule sunt
(x)(rational(x) real(x)).
prim(a).
(x)(mai_mic(x, mai_mare(x)).
prim(1).
Primele 3 formule sunt clauze Horn pot fi scrise n P ROLOG:
real(X):-rational(X).
prim(a).
mai_mic(mai_mare(X)).
Ultima formula nu este clauza Horn nu poate fi scrisa n P ROLOG.
Programare logica
P ROLOG
Programe s i ntrebari
fapta,
A este antetul sau capul regulii (sau faptei)
respective.
B1 , . . . , Bn este corpul regulii respective. Daca
a corp. Corpul unei fapte
n = 0 avem fapta far
este implicit atomul true.
ntrebare: conjunctie de atomi scrisa sub forma
?- A1 , . . . , Ap .
unde A1 , . . . , Ap sunt atomi.
Programare logica
Referinte bibliografice
Programare logica