Lógica Computacional
Nota 05. Resolución binaria11El material aquí presentado se basa el libro de Ben-Ari M., Mathematical Logic for Computer Science.

Noé Salomón Hernández S

1 Introducción

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, con la cual es posible construir un demostrador de teoremas que sea correcto y completo para la lógica proposicional. Las ventajas de este método serán aparentes hasta que se extienda a la lógica de primer orden.

La regla de resolución sólo se puede aplicar en expresiones en forma clausular. Antes de la aplicación, las premisas y la conclusión deben convertirse a esta forma. Afortunadamente, hay un proceso sencillo para realizar esta transformación.

Definición 1.1

  

  • Una literal es una proposición atómica o la negación de una proposición atómica.

  • Sea una literal, y c son literales complementarias, donde

    c={psi =¬p¬psi =p
  • Una oración clausular es una literal o una disyunción de literales.

  • Una cláusula es el conjunto de literales en una oración clausular. Observe que el conjunto vacío de literales es una cláusula y equivale a una disyunción vacía; por lo tanto, es insatisfacible, se denota como , y es un caso especial particularmente importante.

  • 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. Implícitamente, esto indica que la forma clausular es una conjunción de cláusulas.

Teorema 1.2

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.

  1. 1.

    Eliminar implicaciones y bicondicionales al sustituirlas por la fórmulas equivalentes.

    φψ¬φψφψ(¬φψ)(φ¬ψ)
  2. 2.

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

    ¬¬φφ¬(φψ)¬φ¬ψ¬(φψ)¬φ¬ψ
  3. 3.

    Aplicar las leyes de la distributividad para eliminar conjunciones dentro de disyunciones.

    φ(ψχ)(φψ)(φχ)(φψ)χ(φχ)(ψχ)
  4. 4.

    Ocupar la notación para la forma clausular.

    φ1φn{φ1,,φn}ψ1ψm{ψ1,,ψm}

El último paso de la demostración genera conjuntos, lo que causa que múltiples presencias de una cláusula se colapsen en una sola. La equivalencia lógica se preserva por idempotencia: φφφ y φφφ.

1.1 Cláusula trivial

Definición 1.3

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

Lema 1.4

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

Por lo tanto, asumiremos que todas las cláusulas triviales han sido eliminadas de las fórmulas en forma clausular.

Ejercicios 1.5
  • Encuentra la Forma Normal Clausular para las siguientes fórmulas:

    • (¬p¬q)(pq)

    • ¬(¬qr)

    • pqrs

    • pqr

  • Decidir si la fórmula (pq)(¬pq) es válida utilizando la transformación a la Forma Normal Clausular.

2 Resolución

La resolución binaria proporciona un método de decisión para la lógica que utiliza el principio de refutación. El procedimiento de resolució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, lo es también el conjunto de cláusulas que se genera por la aplicación de la regla. Por lo tanto, si la cláusula vacía (insatisfacible) se llega a obtener, el conjunto original de cláusulas debe ser insatisfacible.

Definición 2.1 (Regla de resolución)

Sean C1 y C2 dos cláusulas con C1 y cC2. Decimos que C1 y C2 son cláusulas de colisión y que colisionan en el par de literales complementarias y c. Obtenemos la cláusula C, el resolvente de C1 y C2, como sigue:

C=𝖱𝖾𝗌(C1,C2)=(C1{})(C2{c}).

Podemos expresar esta relación al estilo de una regla de inferencia del siguiente modo,

C1C2(C1{})(C2{c})(𝖱𝖾𝗌)

C1 y C2 son las cláusulas padre de C.

Es importante mencionar que las cláusula vacía o cláusula insatisfacible, , se obtiene como resultado de 𝖱𝖾𝗌({},{c}).

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

Lema 2.2

Una disyunción de literales 1m es válida syss existen 1i,jm tal que i es ¬j.

Lema 2.3

Si dos cláusulas colisionan en más de una literal, su resolvente es una cláusula trivial.

Teorema 2.4

El resolvente C es satisfacible syss las cláusulas padre C1 y C2 son ambas satisfacibles.

Demostración. Sea I una interpretación que satisface a C, entonces I()=1 para al menos alguna literal en C. Por la regla de resolución, C1 o C2, o en ambos. Si C1, I(C1)=1. Ahora, C ni cC, por lo que I no está definida en o c, así que extendemos I como I definiendo I(c)=1. Como cC2, tenemos I(C2)=1; además I(C1)=I(C1)=1. Por lo tanto, I es un modelo para C1 y C2. Análogamente cuando C2.

Sean C1 y C2 satisfacibles por la interpretación I. Como y c son complementarias, se tiene que I()=1, o bien, I(c)=1. Supongamos que I()=1, entonces I(c)=0 y C2, la cláusula que contiene a 2, se satisface porque hay otra literal C (c) tal que I()=1. Por construcción de la regla de resolución, C, de modo que I también es un modelo de C. Análogamente cuando I(c)=1.

Lema 2.5

La cláusula vacía, , es insatisfacible. El conjunto vacío de cláusulas, , es válido.

Demostración. Una cláusula es satisfacible syss hay alguna interpretación bajo la cual al menos una literal en la cláusula es verdadera. Sea I una interpretación arbitraria. Como no hay literales en , no hay literales cuyo valor sea verdadero bajo I. Pero I es una interpretación arbitraria; por consiguiente, es insatisfacible.

También se puede ver a como el resolvente de las cláusulas padre {} y {c}. Como el teorema anterior establece, es satisfacible syss {} y {c} son satisfacibles, pero no se puede satisfacer a un par de literales complementarias. Por lo tanto, es insatisfacible.

Un conjunto de cláusulas es satisfacible syss toda cláusula en él es verdadera para cualquier interpretación. Como no hay cláusulas en que requieran ser verdaderas, entonces es válido.

2.1 Algoritmo de resolución binaria

Algoritmo (Resolución binaria)

Input: Un conjunto de cláusulas S.

Output: S es satisfacible o insatisfacible.

Sea S un conjunto de cláusulas. Definimos S0=S.

Repetir los siguientes pasos para obtener Si+1 a partir de Si:

  • Escoja un par de cláusulas de colisión {C1,C2}Si que no se hayan escogido anteriormente.

  • Encuentre el resolvente C=𝖱𝖾𝗌(C1,C2) de acuerdo a la regla de resolución.

  • Si C no es una cláusula trivial, definimos Si+1=Si{C}; de otro modo, Si+1=Si.

Hasta que C=, en cuyo caso S 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 S es satisfacible.

Ejercicios 2.6
  • Decida si los siguientes argumentos lógicos son correctos por resolución binaria.

    • {mh,¬(¬h¬m)}h

    • {p(qr),pq,qs}qs

    • {pq,rst,tp}p(¬rs)

    • Una condición necesaria para que llueva es que sea primavera o invierno. Si hay ríos, entonces llueve. Si es invierno, la gente utiliza gorros azules. La gente no utiliza gorros azules y hay ríos. Por lo tanto, es primavera. Utilice las claves:

      :lluevep:es primaverai:es inviernor:hay ríosa:la gente utiliza gorros azules
  • Determine si los siguientes conjuntos son satisfacibles o no.

    • {p¬(qs),pq,s¬p}

    • {p,p((qr)¬(qr)),p((st)¬(st)),sq,¬rt,ts}

2.2 Correctud y completud

Teorema 2.7 (Correctud)

Sea S un conjunto de cláusulas. Si existe una refutación por resolución para S, entonces S es insatisfacible.

Teorema 2.8 (Completud)

Si un conjunto de cláusulas es insatisfacible, entonces la cláusula vacía será derivada por el procedimiento de resolución.

3 Ejemplo

Decida si {pq,rs,pr,¬(qs)}(qp)(sr) es correcto por resolución binaria.

Por el principio de refutación, vamos a trabajar con

{pq,rs,pr,¬(qs),¬((qp)(sr))}

Primero pasamos las fórmulas anteriores a forma clausular.

pq{¬p,q}rs{¬r,s}pr{p,r}¬(qs){¬q,¬s}¬((qp)(sr))¬(¬qp)¬(¬sr)(q¬p)(s¬r)((q¬p)s)((q¬p)¬r)(qs)(¬ps)(q¬r)(¬p¬r){q,s},{¬p,s},{q,¬r},{¬p,¬r}

Aplicando resolución tenemos lo siguiente: En azul están todos los resolventes que obtenemos de aplicar resolución a las premisas. En rojo aquellos que ocupan de las premisas y de los resolventes en azul. Esta forma esquemática permite saber si ya se ha aplicado resolución a todos los pares de cláusulas de colisión. Ahora se encuentran resolventes entre las premisas y las cláusulas en rojo, lo cual produce la cláusula 29, y finalmente llegamos a la cláusula vacía en la 30.

1.¬p,qPrem2.¬r,sPrem3.p,rPrem4.¬q,¬sPrem5.q,sPrem6.¬p,sPrem7.q,¬rPrem8.¬p,¬rPrem9.q,rRes(1,3)10.¬p,¬sRes(1,4)11.s,pRes(2,3)12.¬r,¬qRes(2,4)13.r,sRes(3,6)14.p,qRes(3,7)15.¬q,¬pRes(4,6)16.¬s,¬rRes(4,7)17.qRes(1,14)18.¬pRes(1,15)19.sRes(2,13)20.¬rRes(2,16)21.r,¬sRes(3,10)22.p,¬qRes(3,12)23.r,¬qRes(3,15)24.p,¬sRes(3,16)25.¬p,rRes(9,15)26.q,¬sRes(9,16)27.¬q,sRes(11,15)28.p,¬rRes(11,16)29.pRes(3,20)30.Res(18,29)

Como se obtuvo la cláusula vacía, el conjunto de fórmulas es insatisfacible. Por consiguiente, el argumento es correcto.