Programación Lógica

Anuncio
Programación Lógica!
rafael ramirez
[email protected]
55.316 (Tanger)
Lógica 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
Lógica 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
Resolución!
La regla de resolución: si tenemos 2 cláusulas 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 lógico 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
Resolución!
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)
(b) y (c)
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
(d)
r
|
p∧q
|
q
|
□
C1
C2
C3
r
|
p, q
|
q
|
□
C1
C2
C3
7
Resolución!
s :- p, q, r.
r :- t, w.
q.
p :- v, r.
t.
v.
w :- v.
Es s consecuencia logica del programa?
8
Resolución!
s :- p, q, r.
r :- t, w.
q.
p :- v, r.
t.
v.
w :- v.
9
Resolución
10
Resolución
11
Resolución SLD
12
Resolución SLD
13
Negación!
Si P es un programa logico y q es una pregunta y no podemos
probar P |⎯res q entonces deducimos P |⎯res ¬q
14
Lógica 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(…)
15
Resolución
16
Resolución
Ejercicio: dado el siguiente programa:
Es m(a) consucuencia logica del programa?
Construye el arbol de resolucion SLD.
17
Resolución
 Solucion: si es consecuencia logica
Este arbol se llama arbol de resolucion SLD
18
Resolución
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)
19
Resolución
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)
[]
[]
20
Resolución
brother_of(X,Y):-brother_of(Y,X).
brother_of(paul,peter).
?-brother_of(peter,B)
21
Resolución
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)
•
•
•
[]
22
En Resumen!
 Que es:
   Que técnicas/métodos hay para
   La logica proposicional
La logica de predicados
La logica proposicional
La logica de predicados
Que herramientas informáticas hay para
  La logica proposicional
La logica de predicados
23
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)
24
En Resumen (métodos y
herramientas)!
Tablas de
verdad
Tableaux
Manipul.
semánticos algebraica
Deduccion Resolucion Prolog
natural
(SLD)
LProp
si
si
si
si
si
si
LPred
no
aplica
si
si
si
si
si
(no en clase)
25
Descargar