Resolución Completitud y clausulas en Inteligencia Artificial

Requisito previo: 

Para concluir nuestro tema de resolución, intentaremos comprender por qué PL-RESOLUTION está completo. Para lograrlo, proponemos el cierre de resolución  RC (S)     de una colección de cláusulas  S    , que es el conjunto de todas las cláusulas derivables de cláusulas en  S     o sus derivados aplicando la regla de resolución repetidamente. El cierre de la resolución es el valor final de las cláusulas variables calculadas por PL-RESOLUTION . Debido a que solo hay un número limitado de frases separadas que se pueden crear a partir de los símbolos  P_{1}, \ldots, P_{k}     que existen en S,  RC (S)     debe ser finito. (Tenga en cuenta que sin la fase de factorización, que elimina numerosas copias del literal, esto no sería cierto). Como resultado, PL-RESOLUTION siempre termina.

El teorema de resolución fundamental es un teorema de completitud para la resolución en lógica proposicional: si un grupo de cláusulas no es satisfactoria, la cláusula vacía se incluye en el cierre de resolución de esas cláusulas.

Se demuestra la contrapositiva de este teorema: si la clausura  RC (S)     no contiene la cláusula vacía, entonces  S     es satisfecha. En realidad, podemos construir un modelo que  S     incluya valores de verdad apropiados para  P_{1}, \ldots, P_{k}    . El siguiente es el procedimiento de construcción: Para  i     de 1 a k, asigne falso a  \neg P_{i}     si una cláusula en  RC (S)     tiene el literal  P_{i}     y todos sus otros literales son falsos bajo la asignación especificada para  P_{1}, \ldots, P_{i-1}     De lo contrario,  P_{i}     debe establecerse en verdadero.

Esta asignación a  P_{1}, \ldots, P_{k}    . Suponga lo contrario: que asignar un símbolo  P_{i}     en algún punto  i     de la secuencia hace que alguna oración  C     se vuelva falsa. Para que esto suceda, todos los demás literales ya  C     deben haber sido falsificados mediante asignaciones a  P_{1}, \ldots, P_{i-1}    . Como resultado,  C     ahora debe parecerse a  {\text  (false  \vee \text { false } \vee \text { ...... false }\vee  { P_{i} }}     o  \text { (false } \vee \text { false } \vee \cdots \text { false } \vee \neg P_{i} \text { ) }    . Si solo una de estas cláusulas está en  RC (S)    , el algoritmo le dará el valor de verdad necesario a Pi para que sea  C     verdadera, por lo tanto,  C     solo se puede falsificar si ambas están en  R C(S)    . Ahora bien, por  R C(S)     estar cerrada en resolución, incluirá la resolutoria de estas dos cláusulas, que tendrán toda su literalidad falsificada por las cesiones a P_{1}, \ldots, P_{i-1}    . Esto contradice nuestra creencia de que la primera cláusula falsa entra en escena  i    . Como resultado, hemos establecido que la construcción nunca falsifica una cláusula en  RC (S)    ; es decir, siempre crea un modelo de  R C(S)    y, por lo tanto, un modelo de S (porque S está incluido en  R C(S)    .

Cláusulas definidas y de cuerno

Es un método de inferencia muy esencial debido a la integridad de la resolución. Sin embargo, en muchos casos, no se requiere toda la fuerza de resolución. Algunas bases de conocimiento del mundo real se adhieren a restricciones particulares sobre los tipos de oraciones que incluyen, lo que les permite emplear un procedimiento de inferencia más limitado y eficiente.

La oración definida, que es una disyunción de literales de los cuales exactamente uno es afirmativo, es una de esas formas restringidas. La oración,  \left(\neg L_{1,1} \vee \neg \text { Breeze } \vee B_{1,1}\right)    por ejemplo, es una cláusula definida, pero  \left(\neg B_{1,1} \vee P_{1,2} \vee P_{2,1}\right)    no lo es.

La cláusula de Horn, que es una disyunción de literales, de los cuales solo uno es afirmativo, es un poco más genérica. Todas las cláusulas definidas, así como las cláusulas sin literales positivos, son cláusulas Horn; se les conoce como cláusulas de objetivo. Las cláusulas Horn se cierran cuando se resuelven: cuando se resuelven dos cláusulas Horn, se devuelve una cláusula Horn.

\begin{aligned} \text { CNFSentence } & \rightarrow \text { Clause }_{1} \wedge \cdots \wedge \text { Clause }_{n} \\ \text { Clause } & \rightarrow \text { Literal }_{1} \vee \cdots \vee \text { Literal }_{m} \\ \text { Literal } & \rightarrow \text { Symbol } \mid \neg \text { Symbol } \\ \text { Symbol } & \rightarrow P|Q| R \mid \cdots \\ \text { HornClauseForm } & \rightarrow \text { DefiniteClauseForm } \mid \text { GoalClauseForm } \\ \text { DefiniteClauseForm } & \rightarrow\left(\text { Symbol }_{1} \wedge \cdots \wedge \text { Symbol }_{l}\right) \Rightarrow \text { Symbol } \\ \text { GoalClauseForm } & \rightarrow\left(\text { Symbol }_{1} \wedge \cdots \wedge \text { Symbol }_{l}\right) \Rightarrow \text { False } \end{aligned}

Esta ecuación muestra una gramática para cláusulas Horn, cláusulas definidas y forma normal conjuntiva. Aunque una cláusula se escribe como  A \wedge B \Rightarrow C    sigue siendo una cláusula definida cuando se escribe como  \neg A \vee \neg B \vee C   , solo la primera se considera la forma estándar para las cláusulas definidas. Otro tipo es la  k \text {-CNF }    oración, que es una oración CNF con como máximo k literales en cada cláusula.

Solo las bases de conocimiento de cláusulas definidas son interesantes por tres razones:

  1. Cada oración definida se puede inferir con un solo literal positivo como conclusión y una conjunción literal positiva como premisa. La frase definida  \left(\neg L_{1,1} \vee \neg \text { Breeze } \vee B_{1,1}\right)   , por ejemplo, puede representarse como la implicación  \left(L_{1,1} \wedge \text { Breeze }\right) \Rightarrow B_{1,1}    . La frase es más fácil de captar en su forma de implicación: si el agente está en [1,1] y hay viento, entonces [1,1] es brisa. La premisa se conoce como el cuerpo, y la conclusión se conoce como la cabeza en forma de Cuerno. Un hecho es una declaración que consta de un solo literal positivo, como  L_{1,1}   \text { True } \Rightarrow L_{1,1}    también se puede expresar en forma de implicación, pero es más fácil escribir simplemente  L_{1,1}   .
  2. Las técnicas de enstringmiento hacia adelante y hacia atrás pueden usarse para inferir usando cláusulas de Horn. Ambos algoritmos son naturales en el sentido de que los procesos de inferencia son claros y fáciles de seguir para los humanos. La programación lógica se basa en esta forma de inferencia.
  3. Las cláusulas Horn pueden determinar la vinculación en un tiempo proporcional al tamaño de la base de conocimiento, lo cual es una agradable sorpresa.

Publicación traducida automáticamente

Artículo escrito por Mohit Gupta_OMG 🙂 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *