Programación Lógica

Anuncio
Programación Lógica
rafael ramirez
[email protected]
Ocata 320
Logica proposicional
„
Una literal (proposicional) es una variable proposicional o la
negacion de una variable proposicional:
p, q , ¬r, …
„
„
Una cláusula (proposicional) es una disyuncion de literales
p ∨ q ∨ ¬r
es una cláusula
¬(r ∨ q)
no es una cláusula
Una cláusula 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
2
Logica proposicional
„
Una cláusula 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)
3
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
programación 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 ?
4
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
5
Resolucion
6
Diferentes formas, la misma cosa
(a) ¬p ∨ ¬q ∨ r
p
q
(b) p ∧ q → r
p
q
(c) r ← p ∧ q
p
q
(d) r : - p, q.
p.
q.
(a)=(b)=(c)=(d)
Si preguntamos si r es consecuencia logica de las tres
clausulas (de Horn)
(a)
1. ¬p ∨ ¬q ∨ r
2. p
3. q
4. ¬ r
5. ¬p ∨ ¬q
6. ¬q
7. □
hip
hip
hip
hip extra
Res 1,4
Res 2,5
Res 3,6
(b) y (c)
r
|
p∧q
|
q
|
□
(d)
C1
C2
C3
r
|
p, q
|
q
|
□
C1
C2
C3
7
Formulas, clausulas, Horn
Forma normal conjuntiva:
(¬p ∨¬q ∨ r ) ∧ (¬p ∨ q ∨ ¬r)
T
F
F
T
T
T
T
T
8
Resolucion
s :- p, q, r.
r :- t, w.
q.
p :- v, r.
t.
v.
w :- v.
Es s consecuencia logica del programa?
9
Resolucion
s :- p, q, r.
r :- t, w.
q.
p :- v, r.
t.
v.
w :- v.
10
Resolucion
11
Resolucion
12
Resolucion SLD
13
Resolucion SLD
14
Negacion
Si P es un programa logico y q es una pregunta y no podemos
probar P |res q entonces deducimos P |res ¬q
15
Logica de Predicados
„
Una cláusula de Horn es
(1) ∀x1,…∀xn (Q)
(2) ∀x1,…∀xn (¬R1∨…∨¬Rk ∨ Q)
(3) ∀x1,…∀xn (¬R1∨…∨¬Rk)
O reescribiendo:
(1) Q
(2) (R1 ∧ … ∧ Rn) → Q
(3) ¬(R1 ∧ … ∧ Rn)
Ri y Q son (atomos) de la forma p(…)
16
Resolucion
17
Resolucion
Ejercicio: dado el siguiente programa:
Es m(a) consucuencia logica del programa?
Construye el arbol de resolucion SLD.
18
Resolucion
„
Solucion: si es consecuencia logica
Este arbol se llama arbol de resolucion SLD
19
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)
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)
:-follows(S,C),teaches(peter,C)
:-teaches(peter,computer_science)
:-teaches(peter,computer_science)
:-teaches(peter,ai_techniques)
:-teaches(peter,expert_systems)
[]
[]
21
Resolucion
brother_of(X,Y):-brother_of(Y,X).
brother_of(paul,peter).
?-brother_of(peter,B)
22
Resolucion
brother_of(X,Y):-brother_of(Y,X).
brother_of(paul,peter).
?-brother_of(peter,B)
:-brother_of(B,peter)
:-brother_of(peter,B)
[]
:-brother_of(B,peter)
•
•
•
[]
23
En Resumen
Que es:
„
„
„
La logica proposicional
La logica de predicados
Que técnicas/métodos hay para
„
„
„
La logica proposicional
La logica de predicados
Que herramientas informáticas hay para
„
„
„
La logica proposicional
La logica de predicados
24
En Resumen (que es?)
Que es la logica proposicional?
„
„
„
„
„
p, q, r, …
¬, ∧, ∨, →
Ej. (p ∧ ¬q) → r
Cada fórmula evalua a T (verdadero) o F (falso)
Que es la logica de predicados?
„
„
„
„
Variables: x, y, z; constantes: a, b, c; funciónes: f, g,
predicados: p, q, r; conectivos: prop. + ∀, ∃
Ej. ∀x (H(x) → M(x))
Cada fórmula evalua a T (verdadero) o F (falso)
25
En Resumen (métodos y herramientas)
Tablas de
verdad
LProp
si
Tableaux
Manipul.
semánticos algebraica
si
si
Deduccion Resolucion Prolog
natural
(SLD)
si
si
si
(no en clase)
LPred
no
aplica
si
si
si
si
si
(no en clase) (no en clase)
26
Descargar