Upload
vokiet
View
219
Download
0
Embed Size (px)
Citation preview
2
Logica proposicionalUna literal (proposicional) es una variable proposicional o la negacion de una variable proposicional:
p, q , ¬r, …
Una cláusula (proposicional) es una disyuncion de literalesp ∨ 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 llamanclausulas de programa. Las (1) se llaman clausulas unitarias
3
Logica proposicionalUna 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 (usandola ley de De Morgan) como
¬(p1 ∧ … ∧ pn) ∨ qQue a su vez se puede reescribir como
(p1 ∧ … ∧ pn) → q
Un programa logico (proposicional) es un conjunto de declausulas de programa
Nota que (3) se puede reescribir como ¬(p1 ∧ … ∧ pn)
4
ResolucionLa 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 ?
5
Resolucion
P |res Q ?
Lo que se hace es introducir ¬Q como una hipotesis adicional y usarresolucion. 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
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 r2. p hip | |3. q hip p∧q C1 p, q C1 4. ¬ r hip extra | |5. ¬p ∨ ¬q Res 1,4 q C2 q C26. ¬q Res 2,5 | |7. □ Res 3,6 □ C3 □ C3
15
Negacion
Si P es un programa logico y q es una pregunta y no podemosprobar P |res q entonces deducimos P |res ¬q
16
Logica de PredicadosUna 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(…)
18
Resolucion
Ejercicio: dado el siguiente programa:
Es m(a) consucuencia logica del programa?Construye el 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)
[][]
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 ResumenQue es:
La logica proposicionalLa logica de predicados
Que técnicas/métodos hay paraLa logica proposicionalLa logica de predicados
Que herramientas informáticas hay paraLa logica proposicionalLa logica de predicados
25
En Resumen (que es?)Que es la logica proposicional?
p, q, r, …¬, ∧, ∨, →Ej. (p ∧ ¬q) → rCada 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)