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