Anda di halaman 1dari 26

Programacin Lgica

rafael ramirez
rafael@iua.upf.es
Ocata 320
2
Logica proposicional
Una literal (proposicional) es una variable proposicional o la
negacion de una variable proposicional:
p, q , r,
Una clusula (proposicional) es una disyuncion de literales
p q r es una clusula
(r q) no es una clusula
Una clusula de Horn (proposicional) es una clausula (prop.)
con a lo mas una literal positiva
(1) q
(2) p1 pn q
(3) p1 pn
Clausulas de Horn de (1) y (2) con una literal positiva se llaman
clausulas de programa. Las (1) se llaman clausulas unitarias
3
Logica proposicional
Una clusula de Horn (proposicional) es una clausula (prop.)
con a lo mas una literal positiva
(1) q
(2) p1 pn q
(3) p1 pn
Las clausulas de Horn de tipo (2) pueden reescribirse (usando
la ley de De Morgan) como
(p1 pn) q
Que a su vez se puede reescribir como
(p1 pn) q
Un programa logico (proposicional) es un conjunto de de
clausulas de programa
Nota que (3) se puede reescribir como (p1 pn)
4
Resolucion
La regla de resolucion: si tenemos 2 clausulas C1, C2 y una variable
proposicional p
C1 p, C2 p |
res
C1 C2
En general C1 y C2 pueden ser clausulas generales pero en
programacin logica estamos interesados en clausulas de Horn.
Supon que tenemos un programa logico P. Estamos interesados en
Q es consecuencia logica del programa?
Si las clausulas del programa son tomadas como hipotesis,
podemos concluir Q usando la regla de resolucion?
P |
res
Q ?
5
Resolucion
P |
res
Q ?
Lo que se hace es introducir Q como una hipotesis adicional y usar
resolucion. Si llegamos a la clausula vacia entonces la respuesta a
P |
res
Q ? es si.
Esto se basa en el teorema:
si P, Q |
res
entonces P Q es insatisfacible
6
Resolucion
7
Diferentes formas, la misma cosa
(a) p q r (b) p q r (c) r p q (d) r : - p, q.
p p p p.
q q q q.
(a)=(b)=(c)=(d)
Si preguntamos si r es consecuencia logica de las tres
clausulas (de Horn)
(a) (b) y (c) (d)
1. p q r hip r r
2. p hip | |
3. q hip pq C1 p, q C1
4. r hip extra | |
5. p q Res 1,4 q C2 q C2
6. q Res 2,5 | |
7. Res 3,6 C3 C3
8
Formulas, clausulas, Horn
Forma normal conjuntiva:
(p q r ) (p q r)
T
F
F
T
T
T
T
T
9
Resolucion
Es s consecuencia logica del programa?
s :- p, q, r.
r :- t, w.
q.
p :- v, r.
t.
v.
w :- v.
10
Resolucion
s :- p, q, r.
r :- t, w.
q.
p :- v, r.
t.
v.
w :- v.
11
Resolucion
12
Resolucion
13
Resolucion SLD
14
Resolucion SLD
15
Negacion
Si P es un programa logico y q es una pregunta y no podemos
probar P |
res
q entonces deducimos P |
res
q
16
Logica de Predicados
Una clusula de Horn es
(1) x1,xn (Q)
(2) x1,xn (R1Rk Q)
(3) x1,xn (R1Rk)
O reescribiendo:
(1) Q
(2) (R1 Rn) Q
(3) (R1 Rn)
Ri y Q son (atomos) de la forma p()
17
Resolucion
18
Resolucion
Ejercicio: dado el siguiente programa:
Es m(a) consucuencia logica del programa?
Construye el arbol de resolucion SLD.
19
Resolucion
Solucion: si es consecuencia logica
Este arbol se llama arbol de resolucion SLD
20
Resolucion
student_of(X,T):-follows(X,C),teaches(T,C).
follows(paul,computer_science).
follows(paul,expert_systems).
follows(maria,ai_techniques).
teaches(adrian,expert_systems).
teaches(peter,ai_techniques).
teaches(peter,computer_science).
?-student_of(S,peter)
21
Resolucion
student_of(X,T):-follows(X,C),teaches(T,C).
follows(paul,computer_science).
follows(paul,expert_systems).
follows(maria,ai_techniques).
teaches(adrian,expert_systems).
teaches(peter,ai_techniques).
teaches(peter,computer_science).
:-teaches(peter,ai_techniques)
:-teaches(peter,expert_systems)
:-teaches(peter,computer_science)
?-student_of(S,peter)
:-follows(S,C),teaches(peter,C) :-follows(S,C),teaches(peter,C)
:-teaches(peter,expert_systems)
:-teaches(peter,computer_science)
:-teaches(peter,ai_techniques)
?-student_of(S,peter)
[]
[]
22
Resolucion
brother_of(X,Y):-brother_of(Y,X).
brother_of(paul,peter).
?-brother_of(peter,B)
23
Resolucion
brother_of(X,Y):-brother_of(Y,X).
brother_of(paul,peter).

:-brother_of(B,peter)
[]
?-brother_of(peter,B)
:-brother_of(peter,B)
:-brother_of(B,peter)
[]
24
En Resumen
Que es:
La logica proposicional
La logica de predicados
Que tcnicas/mtodos hay para
La logica proposicional
La logica de predicados
Que herramientas informticas hay para
La logica proposicional
La logica de predicados
25
En Resumen (que es?)
Que es la logica proposicional?
p, q, r,
, , ,
Ej. (p q) r
Cada frmula evalua a T (verdadero) o F (falso)
Que es la logica de predicados?
Variables: x, y, z; constantes: a, b, c; funcines: f, g,
predicados: p, q, r; conectivos: prop. + ,
Ej. x (H(x) M(x))
Cada frmula evalua a T (verdadero) o F (falso)
26
En Resumen (mtodos y herramientas)
Tablas de Tableaux Manipul. Deduccion Resolucion Prolog
verdad semnticos algebraica natural (SLD)
LProp si si si si si si
(no en clase)
LPred no si si si si si
aplica (no en clase) (no en clase)

Anda mungkin juga menyukai