Resolución binaria

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

El método de resolución encuentra de manera eficiente una demostración de una fórmula a partir de las premisas mediante la regla de resolución.

La regla de resolución sólo se puede aplicar en expresiones en forma clausular. Las premisas y la conclusión deben convertirse a esta forma.

Definición

Una fórmula está en forma normal conjuntiva (FNC) syss es una conjunción de disyunción de literales.

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Forma Normal Conjuntiva

  • (¬pqr)(¬qr)(¬r)(\neg p \lor q\lor r) \land (\neg q \lor r) \land (\neg r)

  • La fórmula anterior, está en FNC.

  • (¬pqr)((p¬q)r)(¬r)(\neg p \lor q\lor r) \land ((p \land \neg q )\lor r) \land (\neg r)

  • La fórmula anterior, no está en FNC.

  • (¬pqr)¬(¬qr)(¬r)(\neg p \lor q\lor r) \land \neg(\neg q \lor r) \land (\neg r)

  • La fórmula anterior, no está en FNC.
Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Definición

  • Una literal es una proposición atómica o la negación de una proposición atómica.
  • Sea \ell una literal, \ell y c\ell^c son literales complementarias, donde

c={psi =¬p¬psi =p \ell^c = \begin{cases} p & \text{si $\ell=\neg p$} \\ \neg p & \text{si $\ell=p$} \end{cases}

  • Una oración clausular es una literal o una disyunción de literales.
Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández
  • Una cláusula es el conjunto de literales en una oración clausular. Observe que el conjunto vacío de literales (\square) es una cláusula y equivale a una disyunción vacía; por lo tanto, es insatisfacible.
  • La cláusula unitaria es una cláusula que consiste en una sola literal.
  • Una fórmula en forma clausular es un conjunto de cláusulas. Esto indica que la forma clausular es una conjunción de cláusulas.

La fórmula en FNC

(¬pqr)(¬qr)(¬r)(\neg p \lor q\lor r) \land (\neg q \lor r) \land (\neg r)

corresponde en forma clausular a {{¬p,q,r},{¬q,r},{¬r}}\{ \{\neg p, q, r\}, \{\neg q, r\}, \{\neg r\} \}.

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Teorema

Toda fórmula de la lógica proposicional puede ser transformada en una fórmula equivalente en forma clausular.

Demostración

Para convertir una fórmula a su forma clausular se llevan a cabo los siguientes pasos, cada uno de los cuales preserva la equivalencia lógica.

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández
  • Eliminar implicaciones y bicondicionales al sustituirlas por la fórmulas equivalentes.

φψ¬φψφψ(¬φψ)(φ¬ψ)\begin{array}{lcl} \varphi \rightarrow \psi &\equiv& \neg\varphi \vee\psi\\ \varphi\leftrightarrow\psi &\equiv& (\neg\varphi\vee\psi) \wedge (\varphi\vee\neg\psi) \end{array}

  • Trabajar con la negación de modo que se aplique únicamente sobre proposiciones atómicas.

¬¬φφ¬(φψ)¬φ¬ψ¬(φψ)¬φ¬ψ\begin{array}{lcl} \neg\neg\varphi &\equiv & \varphi\\ \neg(\varphi\wedge\psi) &\equiv& \neg\varphi\vee\neg\psi\\ \neg(\varphi\vee\psi) &\equiv& \neg\varphi\wedge\neg\psi \end{array}

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández
  • Aplicar las leyes de la distributividad para eliminar conjunciones dentro de disyunciones.

φ(ψχ)(φψ)(φχ)(φψ)χ(φχ)(ψχ)\begin{array}{lcl} \varphi\vee(\psi\wedge\chi) &\equiv & (\varphi\vee\psi)\wedge(\varphi\vee\chi)\\ (\varphi\wedge\psi)\vee\chi &\equiv & (\varphi\vee\chi)\wedge(\psi\vee\chi) \end{array}

  • Ocupar la notación para la forma clausular.

φ1φn{φ1,,φn}ψ1ψm{ψ1,,ψm}\begin{array}{lcl} \varphi_1\vee\ldots\vee\varphi_n &\rightsquigarrow & \{\varphi_1,\ldots,\varphi_n\}\\ \psi_1\wedge\ldots\wedge\psi_m &\rightsquigarrow & \{\psi_1,\ldots,\psi_m\}\\ \end{array}

Este paso genera conjuntos, así que se eliminan duplicados. La equivalencia se preserva por idempotencia: φφφ\varphi\wedge\varphi\equiv\varphi y φφφ\varphi\vee\varphi\equiv\varphi

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Cláusula trivial

Definición

Una cláusula es trivial si contiene un par de literales complementarias, se llama así porque trivialmente se satisface.

Lema

Sea SS un conjunto de cláusulas y sea CSC\in S una cláusula trivial. Entonces S{C}S-\{C\} es lógicamente equivalente a SS.


Por lo tanto asumiremos que todas las cláusulas triviales han sido eliminadas de la forma clausular.
Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Resolución

  • Proporciona un método de demostración que utiliza el Principio de Refutación.
  • Consiste en una secuencia de aplicaciones de la regla de resolución sobre un conjunto de cláusulas.
  • La regla preserva satisfacibilidad: si un conjunto de cláusulas es satisfacible, también lo es el conjunto que resulta de la aplicación de la regla.
  • Si se obtiene la cláusula vacía (insatisfacible), el conjunto original de cláusulas es insatisfacible.
Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Regla de resolución

C1C2(C1{})(C2{c})    (Res)\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}\;\; (\mathsf{Res})

Las cláusulas padre son C1C_1 y C2C_2, el resolvente es CC

C=(C1{})(C2{c})C=(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Algunos ejemplos


C1C2(C1{})(C2{c})\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}



{p,q,¬r}{r,s,¬t}{p,q,s,¬t}\dfrac{\{p,q,\neg r\}\qquad \{r, s, \neg t\}}{\{p,q, s, \neg t\}}

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Algunos ejemplos


C1C2(C1{})(C2{c})\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}



{¬p,q}{¬q}{¬p}\dfrac{\{\neg p,q\}\qquad \{\neg q\}}{\{\neg p\}}

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Algunos ejemplos


C1C2(C1{})(C2{c})\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}



{p,q,¬r}{¬p,r,s}{p,q,¬p,s}\dfrac{\{p,q,\neg r\}\qquad \{\neg p, r, s\}}{\{p,q, \neg p, s\}}

La regla opera sobre un par de literales complementarias a la vez y nunca con más.

Si C1C_1 y C2C_2 colisionan en más de una literal, su resolvente es una cláusula trivial.

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Algunos ejemplos


C1C2(C1{})(C2{c})\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}



{s}{¬s}\dfrac{\{s\}\qquad \{\neg s\}}{\square}

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Algunos ejemplos


{s}{¬s}\dfrac{\{s\}\qquad \{\neg s\}}{\square}



  • La cláusula vacía es una disyunción entre elementos nulos, ¡uno de ellos debe satisfacerse para que \square también se satisfaga!
  • La cláusula vacía se satisface siempre que ss y ¬s\neg s se satisfagan.
  • La cláusula vacía es insatisfasible.
Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

El resolvente CC es satisfacible syss las cláusulas padre C1C_1 y C2C_2 son ambas satisfacibles.

  • \boxed{\rightarrow} Sea II una interpretación que satisface a CC, I()=1I(\ell^{\diamond})=1 para al menos alguna literal C\ell^{\diamond}\in C.
  • Si C1\ell^{\diamond}\in C_1, I(C1)=1I(C_1)=1.
  • Como ∉C\ell\not\in C ni c∉C\ell^c\not\in C, II no está definida en \ell o c\ell^c. Extendemos II a II' definiendo I(c)=1I'(\ell^c)=1. Puesto que cC2\ell^c\in C_2, tenemos I(C2)=1I'(C_2)=1; además I(C1)=I(C1)=1I'(C_1)=I(C_1)=1.
  • Por lo tanto, II' es un modelo para C1C_1 y C2C_2. Análogamente cuando C2\ell^{\diamond}\in C_2.
Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

El resolvente CC es satisfacible syss las cláusulas padre C1C_1 y C2C_2 son ambas satisfacibles.

  • \boxed{\leftarrow} Sean C1C_1 y C2C_2 satisfacibles por la interpretación II.
  • Como \ell y c\ell^c son complementarias, se tiene que I()=1I(\ell)=1, o bien, I(c)=1I(\ell^c)=1.
  • Supongamos que I()=1I(\ell)=1, entonces I(c)=0I(\ell^c)=0 y C2C_2, la cláusula que contiene a c\ell^c, se satisface porque hay otra literal C2\ell'\in C_2 (c\ell'\neq \ell^c) tal que I()=1I(\ell')=1.
  • Por construcción de la regla de resolución, C\ell'\in C, de modo que II también es un modelo de CC. Análogamente cuando I(c)=1I(\ell^c)=1.
Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Algoritmo (resolución binaria)

Input: Un conjunto de cláusulas SS.
Output: SS es satisfacible o insatisfacible.

Definimos S0=SS_0=S.

Repetir los siguientes pasos para obtener Si+1S_{i+1} a partir de SiS_i:

  • Escoja cláusulas de colisión {C1,C2}Si\{C_1, C_2\}\subseteq S_i que no se hayan escogido anteriormente.
Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Algoritmo (resolución binaria. Continuación.)

  • Encuentre C=Res(C1,C2)C=\mathsf{Res}(C_1, C_2) de acuerdo a la regla de resolución.
  • Si CC no es una cláusula trivial, Si+1=Si{C}S_{i+1}=S_i\cup\{C\}; de otro modo, Si+1=SiS_{i+1}=S_i.

Hasta que C=C=\square, en cuyo caso SS es insatisfacible; o hasta que la regla de resolución se haya aplicado a todos los pares de cláusulas de colisión, lo que indica que SS es satisfacible.

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández

Proposición

Si un conjunto de cláusulas S={φ1,φ2,,φn}S=\{\varphi_1,\varphi_2,\ldots,\varphi_n\} (n0)n\geq 0) es satisfacible, entonces cualquier conjunto SiS_i (i0i\geq 0), generado por el algoritmo de resolución binaria, es satisfacible.

Lógica Computacional, Fac. Ciencias, UNAM. Noé Hernández