1. REGLAS DE INFERENCIA LOGICA DE PREDICADOS Modificado y adaptado: LEONARDO BERNAL ZAMORA
2. QUE ES INFERENCIA? Inferir es concluir o decidir a partir de algo conocido o asumido; llegar a una conclusión. A su vez, Razonar es pensar coherente y lógicamente; establecer inferencias o conclusiones a partir de hechos conocidos o asumidos.
3. COMO SE PUEDE INFERIR? Realizar inferencias significa derivar nuevos hechos a partir de un conjunto de hechos conocidos como verdaderos. La lógica de predicados proporciona un grupo de reglas sólidas, con las cuales se pueden realizar inferencias.
4. QUE SON REGLAS DE INFERENCIA? Mecanismos sintácticos que permiten deducir f.b.d apartir de otras f.b.d
29. Ejemplo Completo Jack es dueño de un perro Quien es dueño de un perro es un amante de los animales Ningún amante de los animales mata a un animal O Jack o Curiosidad mató al gato, cuyo nombre era Tuna ¿Mató Curiosidad al gato? Programación Lógica: Jorge Cabrera Gámez. Departamento de Informática y Sistemas. Universidad de Las Palmas de Gran Canaria.
30. Ref: Programación Lógica A. Jack es dueño de un perro B. Quien es dueño de un perro es un amante de los animales C. Ningún amante de los animales mata a un animal D. O Jack o Curiosidad mató al gato, cuyo nombre era Tuna E. ¿Mató Curiosidad al gato? 1. Expresión como predicados de primer orden A. ( X) perro(X) dueño(jack, X) B. ( X) {( Y) perro(Y) dueño(X, Y)} naturalista(X) C. ( X) ( Y) naturalista(X) animal(Y) mata(X,Y) D1. mata(jack, tuna) mata(curiosidad, tuna) D2. gato(tuna) E. mata(curiosidad, tuna) Es necesario añadir que los gatos son animales F. ( X) gato(X) animal(X)
31. Ref: Programación Lógica 2. Transformación a cláusulas Negación del teorema: E. mata(curiosidad, tuna) 2.1 Eliminación de la implicaciones B. ( X) {( Y) perro(Y) dueño(X, Y)} naturalista(X) C. ( X) ( Y) naturalista(X) animal(Y) mata(X,Y) F. ( X) gato(X) animal(X) B. ( X) {( Y) perro(Y) dueño(X, Y)} naturalista(X) C. ( X) ( Y) { naturalista(X) animal(Y)} mata(X,Y) F. ( X) gato(X) animal(X)
32. Ref: Programación Lógica 2. Transformación a cláusulas 2.2 Mover las negaciones hasta las fórmulas atómicas B. ( X) {( Y) perro(Y) dueño(X, Y)} naturalista(X) C. ( X) ( Y) { naturalista(X) animal(Y)} mata(X,Y) B. ( X) {( Y) perro(Y) dueño(X, Y)} naturalista(X) C. ( X) ( Y) naturalista(X) animal(Y) mata(X,Y)
33. Ref: Programación Lógica 2. Transformación a cláusulas 2.3 Renombrar variables A. ( X) perro(X) dueño(jack, X) B. ( Y) {( Z) perro(Z) dueño(Y, Z)} naturalista(Y) C. ( U) ( W) naturalista(U) animal(W) mata(U,W) F. ( C) gato(C) animal(C) 2.4 Eliminar los cuantificadores existenciales A. ( X) perro(X) dueño(jack, X) A. perro(a) dueño(jack, a) donde a es una función de Skolem constante
34. Ref: Programación Lógica 2. Transformación a cláusulas 2.5 Desplazar los cuantificadores universales hasta el comienzo de las fórmulas B. ( Y) {( Z) perro(Z) dueño(Y, Z)} naturalista(Y) B. ( Y) ( Z) perro(Z) dueño(Y, Z) naturalista(Y) 2.6 Convertir los operadores AND en los más externos 2.7 Eliminar los cuantificadores universales 2.8 Eliminar los conectores AND
35. Ref: Programación Lógica 2. Transformación a cláusulas Conjunto de cláusulas resultante A.1 perro(a) A.2 dueño(jack,a) B. perro(Z) dueño(Y, Z) naturalista(Y) C. naturalista(U) animal(W) mata(U,W) D1. mata(jack, tuna) mata(curiosidad, tuna) D2. gato(tuna) E. mata(curiosidad, tuna) F. gato(C) animal(C)
36. Programación Lógica: Jorge Cabrera Gámez. Departamento de Informática y Sistemas. Universidad de Las Palmas de Gran Canaria. 3. Resolución por refutación mata(curiosidad, tuna) mata(jack, tuna) mata(curiosidad, tuna) mata(jack, tuna) naturalista(U) animal(W) mata(U,W) naturalista(jack) animal(tuna) perro(Z) dueño(Y, Z) naturalista(Y) perro(Z) dueño(jack, Z) animal(tuna) dueño(jack, a) perro(a) animal(tuna) gato(C) animal(C) gato(tuna) perro(a) gato(tuna) perro(a) perro(a) [ ] {U jack, W tuna} {Y jack} {Z a} {C a}
37. Obtención de respuestas Procedimiento A: 1. Demostrar el teorema por el procedimiento ya explicado. 2. Añadir al conjunto de cláusulas inicial, no el teorema negado ( p(X)), sino la disyunción de éste con su negado, es decir, ( p(X) p(X)) (una tautología). 3. Seguir los mismos pasos que condujeron a la demostración del teorema. Dado que la cláusula del teorema contiene una tautología no se concluirá en el resolvente nulo, sino que se concluirá en la cláusula del teorema. 4. La respuesta es el resolvente final.
38. Ejemplo: Axiomas: A1. ( X)( juega(pedro, X) juega(luis, X)) A2. juega(pedro, fútbol). Teorema: T. ( X) juega(luis, X) El problema consiste en demostrar el teorema y, además, en saber a qué juega luis.
39. Expresados en forma clausular y negando el teorema: A1. juega(pedro, X) juega(luis, X)) A2. juega(pedro, fútbol). T. juega(luis, Y) El árbol de refutación sería: juega(luis, Y) juega(pedro, X) juega(luis, X) juega(pedro, fútbol). juega(pedro, X) {} {Y X} {X fútbol}
40. Y la obtención de la respuesta sería: juega(luis, Y) juega(luis, Y) juega(pedro, X) juega(luis, X) juega(pedro, fútbol). juega(pedro, X) juega(luis, X) juega(luis, fútbol) {Y X} {X fútbol}
41. Puede generalizarse el procedimiento anterior de manera que en lugar de incluir la tautología ( p(X) p(X)), se incluya la cláusula: ( p(X) respuesta(X)) donde “respuesta” es un predicado comodín, que no puede aparecer en el conjunto de axiomas. Dado que este predicado no aparece en el resto del conjunto es imposible que pueda desaparecer del árbol modificado de refutación y, por tanto, no se concluirá en la cláusula nula.
42. Obtención de respuestas Procedimiento B: 1. Añadir al conjunto de cláusulas de los axiomas la cláusula ( p(X) respuesta(X)). El predicado comodín debe contener tantos términos como respuestas se deseen, p.e. ( p(X,Y) respuesta(X,Y)) 2. Realizar la demostración del teorema, utilizando como objetivo no la cláusula nula, sino una cláusula que contiene solamente el predicado comodín “respuesta”. 3. Las respuestas son los términos del predicado comodín en el estado final.
43. Con este procedimiento, la obtención de la respuesta sería: juega(luis, Y) respuesta(Y) juega(pedro, X) juega(luis, X) juega(pedro, fútbol). juega(pedro, X) respuesta(X) respuesta(fútbol) {Y X} {X fútbol}