4.- Métodos de razonamiento En este módulo hemos estudiado algunas estrategias que han sido desarrolladas con el fin de sistematizar el razonamiento lógico, es decir, la demostración formal de teoremas. Los métodos que ya hemos estudiado son los siguientes: 4.1 La prueba formal de la consistencia o de la inconsistencia 4.2 La prueba formal de la invalidez 4.3 La prueba formal de la validez En esta última sección del módulo 4 sólo nos resta estudiar el método de resolución. Se trata de un método muy adecuado para mecanizarse, que intenta de producir una demostración por refutación. 4.4 El método de resolución Este método de razonamiento es atractivo porque es factible de ser mecanizado. De hecho, el motor de inferencia inter-construido en el lenguaje Prolog lo utiliza para manipular el conocimiento representado en los programas escritos en dicho lenguaje de programación. Es un método de razonamiento que trata de producir una demostración por refutación. Se introduce la negación de la conclusión como una hipótesis adicional y, partiendo de este nuevo conjunto de hipótesis se intenta de deducir una contradicción. La regla de resolución establece que dadas dos cláusulas C 1 y C 2 sin variables en común (en caso de ser proposiciones cuantificadas), si hay una literal l 1 en C 1 que sea el complemento de una literal l 2 en C 2, ambas literales son eliminadas y se crea la nueva cláusula C formada por disyunción de las literales restantes de C 1 y C 2. La nueva cláusula C es llamada el resolvente de C 1 y C 2. El método de razonamiento por resolución es el proceso de generar estos resolventes, a partir de un conjunto de cláusulas, con el fin de encontrar la cláusula vacía, que representa una contradicción. Por ejemplo, sean las cláusulas: C 1 = ~p q C 2 = ~q r El resolvente C = ~p r. Nota que q y ~q desaparecen del resolvente. Una característica de este método es que requiere que todas las proposiciones estén representadas en forma clausal. Conversión a forma clausal pasos: Para convertir una proposición cualquiera a su forma clausal, se deben realizar los siguientes 1) Eliminar las implicaciones usando la regla de equivalencia de la implicación (regla 10a): 10a (p q) (~p q) 2) Mover todas las negaciones de manera que precedan de manera inmediata a las proposiciones simples. Para esto usamos las leyes de DeMorgan (reglas 8a y 8b): 8a ~(p q) ~p ~q 8b ~(p q) ~p ~q
3) En el caso de proposiciones cuantificadas, renombrar variables de manera tal que cada cuantificador (universal y existencial) se refiera a una variable diferente. 4) Si es el caso, eliminar los cuantificadores existenciales por medio de funciones de Skolem. 5) Mueva todos los cuantificadores universales a la izquierda de la proposición. 6) Convierta las proposiciones resultantes a una conjunción de disyunciones, normalmente utilizando la ley distributiva (regla 4a): 4a p ( q r) (p q) (p r) 7) Las expresiones resultantes son cláusulas. El conjunto de todas las cláusulas es lo que se conoce como forma clausal. Algoritmo de resolución Los pasos a realizar para aplicar el método de razonamiento basado en resolución son los siguientes: 1) Convierte todas las hipótesis a su forma clausal. 2) Niega la conclusión, convierte esta negación a su forma clausal y agrega las cláusulas al conjunto de cláusulas obtenidas en el paso 1. 3) Repita hasta que se encuentre una contradicción o no haya mas progreso: a) Selecciona dos cláusulas. b) Resuelve esas dos cláusulas generando un nuevo resolvente. c) Si el resolvente es la cláusula vacía, encontramos una contradicción, y queda demostrado que el teorema es válido. Si el resolvente no es la cláusula vacía, se agrega al conjunto de cláusulas disponibles. Como siempre, vamos a ilustrar este método por medio de algunos ejemplos. Ejemplo 1 Usando el método de resolución, determina si el siguiente teorema es válido o es una falacia: H = [p q, r ~q, ~s ~r, p s], C = s Primero, convertimos las hipótesis y la negación de la conclusión a su forma clausal: H 1 = p q ~p q (por la regla 10a) H 2 = r ~q H 3 = ~s ~r s ~r (por la regla 10a) H 4 = p s p s (cada elemento de la conjunción se convierte en una cláusula) ~C = ~s El conjunto inicial de cláusulas es: 2. r ~q 3. s ~r 4. p
5. s 6. ~s Resolviendo 1 y 4 tenemos: ~p q p ------------------- 7. q Resolviendo 7 y 2 tenemos: q r ~q ----------------- 8. r Resolviendo 8 y 3, tenemos: r s ~r ---------------- 9. s Resolviendo 9 y 6, tenemos: s ~s ------------ 10. {} (la cláusula vacía) Dado que se encontró la cláusula vacía, queda demostrado que el teorema es válido. Nota que, en este ejemplo, desde el inicio pudo resolverse 5 con 6 obteniendo en un sólo paso la cláusula vacía, pero no se hizo así para ilustrar mejor el método de resolución. Ejemplo 2 Sea el siguiente teorema: H = [p q, q r], C = p r Demuestra que este teorema es válido por el método de resolución. Primero convertimos las hipótesis y la negación de la conclusión a su forma clausal: H 1 = p q ~p q (por la regla 10a) H 2 = q r ~q r (por la regla 10a) ~C = ~(p r) ~(~p r) (por la regla 10a) p ~r (por la regla 8a) Por tanto, el conjunto inicial de cláusulas es: 2. ~q r 3. p 4. ~r 5. ~q (Resolvente de 2 y 4) 6. ~p (Resolvente de 5 y 1) 7. {} (Resolvente de 6 y 3) Dado que encontramos la cláusula vacía, queda demostrado que el teorema es válido.
Ejemplo 3 Sea el teorema: H =[ ~f b t, b f], C = ~t Se desea saber si se trata de un teorema válido o de una falacia. Utiliza el método de resolución para determinarlo. Primero convertimos a forma clausal las hipótesis y la negación de la conclusión: H 1 = ~f b t f (b t) (f b) (f t) (por la regla 4a) H 2 = b f b f ~C = t Por tanto, el conjunto inicial de cláusulas es el siguiente: 1. (f b) 2. (f t) 3. b 4. f 5. t Podemos ver que en él no hay ninguna proposición negada, por lo que al resolver cualesquiera dos cláusulas de este conjunto, no desaparecerá ninguna proposición del resolvente, razón por la cual será imposible obtener la cláusula vacía. Por tanto, podemos concluir que este teorema es una falacia. Ejemplo 4 Sea el siguiente teorema: H = [p q, ~q r, ~s ~r, ~s], C = ~p Determina si este teorema es válido utilizando el método de resolución. Primero, como lo requiere este método, convertimos las hipótesis y la negación de la conclusión a su forma clausal: H 1 = p q ~p q (regla 10a) H 2 = ~q r H 3 = ~s ~r s ~r (regla 10a) H 4 = ~s ~C = p El conjunto inicial de cláusulas es el siguiente: 2. ~q r 3. s ~r 4. ~s 5. p 6. ~r (Resolvente de 3 y 4) 7. ~q (Resolvente de 6 y 2)
8. ~p (Resolvente de 7 y 1) 9. {} (Resolvente de 5 y 8) Puesto que encontramos la cláusula vacía, hemos demostrado que el teorema es válido. Con este ejemplo, cerramos la explicación del método de resolución. Como te habrás dado cuenta, es un método muy mecánico, lo que lo ha hecho muy utilizado para ser implementado en sistemas computacionales inteligentes que utilizan la lógica para representar conocimiento. Resumen En este último módulo del curso estudiamos varias estrategias o métodos de razonamiento que nos permiten sistematizar un poco más las pruebas formales de teoremas. Los métodos que estudiamos son: a) La prueba formal de la consistencia o de la inconsistencia, b) La prueba formal de la invalidez, c) La prueba formal de la validez, y d) El método de resolución. Después de estudiar cuidadosamente los ejemplos explicados en esta sección, ya estás listo para realizar la tarea correspondiente, así que Manos a la obra! Ya sólo me resta agradecer tu participación en este curso. Espero que haya sido una experiencia de aprendizaje retadora y gratificante para ti.