0% encontró este documento útil (0 votos)
226 vistas34 páginas

Formas Normales y Algoritmo DPLL

Este documento trata sobre formas normales y el algoritmo DPLL. Introduce conceptos como equivalencia lógica, formas normales conjuntiva y disyuntiva, y describe el algoritmo DPLL para decidir satisfacibilidad. Explica procedimientos para transformar fórmulas proposicionales preservando su equivalencia lógica.

Cargado por

jborrego
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
226 vistas34 páginas

Formas Normales y Algoritmo DPLL

Este documento trata sobre formas normales y el algoritmo DPLL. Introduce conceptos como equivalencia lógica, formas normales conjuntiva y disyuntiva, y describe el algoritmo DPLL para decidir satisfacibilidad. Explica procedimientos para transformar fórmulas proposicionales preservando su equivalencia lógica.

Cargado por

jborrego
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Formas Normales y

Algoritmo DPLL

Introducción

Formas normales
Tema 3: Equivalencia lógica
Sustitución

Formas Normales y Algoritmo DPLL Formas normales


Algoritmos para SAT y
TAUT
Tablero y Formas Normales
Forma clausal

Algoritmo DPLL
Estructura del algoritmo
Extracción de Modelos
Dpto. Ciencias de la Computación Inteligencia Artificial
Universidad de Sevilla

Lógica Informática
(Tecnologı́as Informáticas)
Formas Normales y
Contenido Algoritmo DPLL

Introducción
Introducción Formas normales
Equivalencia lógica
Sustitución
Formas normales
Formas normales Algoritmos para SAT y
TAUT

Equivalencia lógica Tablero y Formas Normales


Forma clausal
Sustitución
Algoritmo DPLL
Formas normales Estructura del algoritmo

Algoritmos para SAT y TAUT Extracción de Modelos

Tablero y Formas Normales


Forma clausal

Algoritmo DPLL
Estructura del algoritmo
Extracción de Modelos
Formas Normales y
Introducción Algoritmo DPLL

I En este tema presentaremos mecanismos para Introducción


transformar las fórmulas de las lógicas estudiadas y Formas normales

conseguir expresiones equivalentes que muestran Equivalencia lógica


Sustitución

algunas ventajas para aplicar algoritmos. Formas normales


Algoritmos para SAT y
TAUT
I Comenzaremos dando procedimientos para transformar Tablero y Formas Normales
Forma clausal
fórmulas proposicionales.
Algoritmo DPLL
I Y daremos un algoritmo para decidir SAT que es la base Estructura del algoritmo
Extracción de Modelos

de la mayorı́a de algoritmos modernos para ese


problema.
Formas Normales y
Formas Normales en LP Algoritmo DPLL

I Comenzaremos dando una visión algebraica de las Introducción


fórmulas proposicionales. Formas normales
Equivalencia lógica
I Si identificamos cada conectiva con su función de Sustitución
Formas normales
verdad, entonces cada fórmula proposicional F , que Algoritmos para SAT y
TAUT
contenga sólo las variables proposicionales p1 , . . . , pn , Tablero y Formas Normales
Forma clausal
puede considerarse una expresión algebraica (similar a
Algoritmo DPLL
un polinomio), que define una función booleana Estructura del algoritmo

HF : {0, 1}n → {0, 1}.


Extracción de Modelos

I Estas expresiones algebraicas pueden manipularse de


manera similar al modo en que reescribimos una
expresión aritmética para simplificarla.
I Con estos procedimientos conseguiremos dar dos formas
simples para cada fórmula: la Forma Normal Conjuntiva
(FNC) y la Forma Normal Disyuntiva (FND).
I Pero antes debemos explicitar qué entendemos por
fórmulas equivalentes.
Formas Normales y
Equivalencia lógica en LP Algoritmo DPLL

Definición. Introducción
Dos fórmulas F1 , F2 son equivalentes (F1 ≡ F2 ) si, para Formas normales
toda valoración v , se tiene que v (F1 ) = v (F2 ). Equivalencia lógica
Sustitución
Formas normales
Es fácil comprobar que: Algoritmos para SAT y
TAUT

I F1 ≡ F2 si F1 y F2 tienen los mismos modelos. Tablero y Formas Normales


Forma clausal

I F1 ≡ F2 si y sólo si F1 |= F2 y F2 |= F1 Algoritmo DPLL


Estructura del algoritmo

Ejemplos: Extracción de Modelos

I F ∈/ SAT , G ∈
/ SAT , entonces F ≡ G .
I F ∈ TAUT , G ∈ TAUT , entonces F ≡ G .
Formas Normales y
Equivalencias (I) Algoritmo DPLL

Sean A, B ∈ PROP. Se tienen las siguientes equivalencias: Introducción


I Conmutatividad: Formas normales
A∨B ≡B ∨A Equivalencia lógica
Sustitución

A∧B ≡B ∧A Formas normales


Algoritmos para SAT y
TAUT
I Asociatividad: Tablero y Formas Normales
Forma clausal

A ∨ (B ∨ C ) ≡ (A ∨ B) ∨ C Algoritmo DPLL
A ∧ (B ∧ C ) ≡ (A ∧ B) ∧ C Estructura del algoritmo
Extracción de Modelos

I Distributividad:
A ∧ (B ∨ C ) ≡ (A ∧ B) ∨ (A ∧ C )
A ∨ (B ∧ C ) ≡ (A ∨ B) ∧ (A ∨ C )
I Doble negación:
¬¬A ≡ A
I Leyes de De Morgan:
¬(A ∧ B) ≡ ¬A ∨ ¬B
¬(A ∨ B) ≡ ¬A ∧ ¬B
Formas Normales y
Equivalencias (II) Algoritmo DPLL

I Idempotencia: Introducción
A∨A≡A Formas normales
A∧A≡A Equivalencia lógica
Sustitución
Formas normales
I Absorción: Algoritmos para SAT y
TAUT
A ∨ (A ∧ B) ≡ A Tablero y Formas Normales

A ∧ (A ∨ B) ≡ A Forma clausal

Algoritmo DPLL
I Leyes de tautologı́a: Si A es una tautologı́a, entonces Estructura del algoritmo
Extracción de Modelos

A∧B ≡B
A∨B ≡A

I Leyes de inconsistentes: Si A es insatisfactible,


entonces
A∧B ≡A
A∨B ≡B
Formas Normales y
Sustitución Algoritmo DPLL

I Dadas A, A0 , B ∈ PROP si A es una subfórmula de B, Introducción


la sustitución de A por A0 en B es la fórmula que se Formas normales
obtiene al cambiar cada aparición de A en B por A0 . Equivalencia lógica
Sustitución
I Notación: B{A/A0 } . Formas normales

I Si A no es una subfórmula de B, por definición B{A/A0 } Algoritmos para SAT y


TAUT
Tablero y Formas Normales
es B. Forma clausal

I B = p → (q ∧ r ) ∨ ¬s, A = q ∧ r , A0 = t → ¬r Algoritmo DPLL


Estructura del algoritmo
Extracción de Modelos

B B{A/A0 }
z }| { z }| {
p → (q ∧ r ) ∨¬s p → (t → ¬r ) ∨¬s
| {z } | {z }
A A0
Formas Normales y
Sustitución: ejemplos Algoritmo DPLL

Si B = p → q → r ∨ s entonces: Introducción
I B{r ∨s/p} = p → q → p. Formas normales
Equivalencia lógica
I B{q∧r /q} = p → q → r ∨ s. Sustitución
Formas normales
I B{q→r ∨s/p∧r } = p → p ∧ r . Algoritmos para SAT y
TAUT
Tablero y Formas Normales
I B{p→q/p} = p → q → r ∨ s. Forma clausal

Algoritmo DPLL
Estructura del algoritmo
Extracción de Modelos

Si C = (p → q) ∨ (r → p → q), entonces:
I C{p→q/t} = t ∨ (r → t).
I C{p→q/t→p→q} = (t → p → q) ∨ (r → (t → p → q)).
Formas Normales y
El Teorema de Sustitución Algoritmo DPLL

Teorema de Sustitución. Si A, A0 , B ∈ PROP y A ≡ A0 Introducción


entonces B{A/A0 } ≡ B. Formas normales
I Este teorema permite manipular “algebraicamente” una Equivalencia lógica
Sustitución

fórmula para obtener otra fórmula más simple y Formas normales


Algoritmos para SAT y

equivalente a ella. Este proceso es similar al empleado TAUT


Tablero y Formas Normales

en la simplificación de expresiones algebraicas. Forma clausal

Algoritmo DPLL
I Ejemplo: Estructura del algoritmo
Extracción de Modelos

B ∨ (A ∧ (A → B)) ≡ B ∨ (A ∧ (¬A ∨ B))


≡ B ∨ (A ∧ ¬A) ∨ (A ∧ B)
≡ B ∨ (A ∧ B) ≡ B
Formas Normales y
Literales proposicionales Algoritmo DPLL

I Una fórmula F es un literal si es una variable Introducción


proposicional o la negación de una variable Formas normales

proposicional. Equivalencia lógica


Sustitución
Formas normales
I Dos literales, L1 y L2 , son complementarios si uno de Algoritmos para SAT y
TAUT
ellos es la negación del otro. Lc denota el literal Tablero y Formas Normales
Forma clausal
complementario de L.
Algoritmo DPLL
Lema. Sea Σ = {L1 , . . . , Ln } un conjunto de literales. Estructura del algoritmo
Extracción de Modelos

Entonces:
_n
1. Li ∈ TAUT ⇐⇒ Σ contiene un par de literales
i=1
complementarios.
^n
2. Li ∈
/ SAT ⇐⇒ Σ contiene un par de literales
i=1
complementarios.
Formas Normales y
Formas normales en LP Algoritmo DPLL

I Una fórmula está en Forma Normal Conjuntiva Introducción


(FNC) si es una conjunción de disyunciones de literales: Formas normales
Equivalencia lógica
  Sustitución

^n mi
_ Formas normales
Algoritmos para SAT y
F =  Li,j  TAUT
Tablero y Formas Normales
i=1 j=1 Forma clausal

Algoritmo DPLL
I Una fórmula está en Forma Normal Disjuntiva Estructura del algoritmo
Extracción de Modelos

(FND) si es una disyunción de conjunciones de literales:


 
_n mi
^
F =  Li,j 
i=1 j=1
Formas Normales y
Formas normales en LP (II) Algoritmo DPLL

Corolario. Introducción
I Una fórmula en FNC es una tautologı́a si y solo si cada Formas normales

una de sus disyunciones es una tautologı́a. Equivalencia lógica


Sustitución
Formas normales
I Una fórmula en FND es insatisfactible si y solo si cada Algoritmos para SAT y
TAUT
una de sus conjunciones es insatisfactible. Tablero y Formas Normales
Forma clausal

Algoritmo DPLL
Estructura del algoritmo
Extracción de Modelos

Teorema.
Para toda fórmula G ∈ PROP:
I existe F1 en FNC tal que F1 ≡ G .
I existe F2 en FND tal que F2 ≡ G .
Formas Normales y
Paso a forma normal Algoritmo DPLL

Procedimiento para transformar G a FNC: Introducción


1. Eliminar todas las implicaciones usando: Formas normales
Equivalencia lógica

A → B ≡ ¬A ∨ B y A ↔ B ≡ (A → B) ∧ (B → A) Sustitución
Formas normales
Algoritmos para SAT y
TAUT
2. Trasladar las negaciones, mediante las leyes de Morgan: Tablero y Formas Normales
Forma clausal

¬(A ∧ B) ≡ ¬A ∨ ¬B y ¬(A ∨ B) ≡ ¬A ∧ ¬B Algoritmo DPLL


Estructura del algoritmo

3. Eliminar negaciones dobles usando Extracción de Modelos

¬¬A ≡ A
4. Convertir a FNC utilizando la ley distributiva:
A ∨ (B1 ∧ B2 ) ≡ (A ∨ B1 ) ∧ (A ∨ B2 )

Para pasar a FND, en 4 utilizamos la ley distributiva:


A ∧ (B1 ∨ B2 ) ≡ (A ∧ B1 ) ∨ (A ∧ B2 )
Formas Normales y
Ejemplo: Algoritmo DPLL

Obtener una FNC de (¬p ∧ q) → (q ∨ r ) → p: Introducción

Formas normales

(¬p ∧ q) → (q ∨ r ) → p ⇒ Equivalencia lógica


Sustitución
Formas normales
⇒ ¬(¬p ∧ q) ∨ ((q ∨ r ) → p) Algoritmos para SAT y
TAUT

⇒ ¬(¬p ∧ q) ∨ ¬(q ∨ r ) ∨ p Tablero y Formas Normales


Forma clausal

⇒ ¬¬p ∨ ¬q ∨ (¬q ∧ ¬r ) ∨ p Algoritmo DPLL


Estructura del algoritmo

⇒ p ∨ ¬q ∨ ((¬q ∨ p) ∧ (¬r ∨ p)) Extracción de Modelos

⇒ (p ∨ ¬q ∨ ¬q ∨ p) ∧ (p ∨ ¬q ∨ ¬r ∨ p)
⇒ (¬q ∨ p) ∧ (¬q ∨ ¬r ∨ p)

Hemos eliminado literales repetidos en una misma cláusula


gracias a la equivalencia: A ∨ A ≡ A.
(En la FND utilizarı́amos la equivalencia A ∧ A ≡ A).
Formas Normales y
Algoritmo de satisfactibilidad mediante FND Algoritmo DPLL

Procedimiento FND Introducción

Entrada: F ∈ PROP Formas normales


Equivalencia lógica
Salida: SI, si F ∈ SAT ; NO, en caso contrario. Sustitución
Formas normales
Calcular una FND de F : G = G1 ∨ · · · ∨ Gn Algoritmos para SAT y
TAUT
para i = 1 hasta n Tablero y Formas Normales
Forma clausal
si en Gi no ocurren literales complementarios Algoritmo DPLL
entonces devolver SI; parar Estructura del algoritmo
Extracción de Modelos
devolver NO
Formas Normales y
Algoritmo de validez mediante FNC Algoritmo DPLL

Procedimiento FNC Introducción

Entrada: F ∈ PROP Formas normales


Equivalencia lógica
Salida: SI, si F ∈ TAUT ; NO, en caso contrario. Sustitución
Formas normales
Calcular una FNC de F : G = G1 ∧ · · · ∧ Gn ← FNC (F ) Algoritmos para SAT y
TAUT
para i = 1 hasta n Tablero y Formas Normales
Forma clausal
si en Gi no ocurren literales complementarios Algoritmo DPLL
entonces devolver NO; parar Estructura del algoritmo
Extracción de Modelos
devolver SI
Formas Normales y
Ejemplos Algoritmo DPLL

I F1 = (p ∧ q) → (q ∧ r ) ∨ p. Introducción
Una FNC de F1 es: Formas normales
Equivalencia lógica
Sustitución
(¬p ∨ ¬q ∨ q ∨ p) ∧ (¬p ∨ ¬q ∨ r ∨ p) Formas normales
Algoritmos para SAT y
TAUT
Tablero y Formas Normales
Es una tautologı́a (y, por tanto, satisfactible). Forma clausal

I F2 = ¬(p ∨ q) ∨ (p → q). Algoritmo DPLL


Estructura del algoritmo

Una FND de F2 es: Extracción de Modelos

(¬p ∧ ¬q) ∨ ¬p ∨ q

Por tanto, F2 es satisfactible.


Una FNC de F2 es:

(¬p ∨ q) ∧ (¬q ∨ ¬p ∨ q)

Por tanto, F2 no es tautologı́a.


Formas Normales y
Tableros completos y FND Algoritmo DPLL

I Un tablero completo para una fórmula F puede Introducción


utilizarse para obtener una FND de F . Formas normales
Equivalencia lógica
I Si T es un tablero completo para F , procedemos como Sustitución
Formas normales
sigue: Algoritmos para SAT y
TAUT
1. Si U1 ,. . . , Uk son los conjuntos de literales que Tablero y Formas Normales
Forma clausal
etiquetan las hojas abiertas de T , formamos para cada
Algoritmo DPLL
Uj una conjunción, Cj , con todos los literales de Uj . Estructura del algoritmo

2. Una FND de F se obtiene formando la disyunción Extracción de Modelos

C1 ∨ · · · ∨ Ck
Formas Normales y
Tableros y FND: Ejemplo Algoritmo DPLL

Si F es la fórmula q ∧ s ∧ (q → (r → ¬p)) Introducción

Formas normales
q ∧ s ∧ (q → (r → ¬p)) Equivalencia lógica
Sustitución
Formas normales
Algoritmos para SAT y
q, s ∧ (q → (r → ¬p)) TAUT
Tablero y Formas Normales
Forma clausal

q, s, (q → (r → ¬p)) Algoritmo DPLL


Estructura del algoritmo
Extracción de Modelos

q, s, ¬q q, s, r → ¬p
×
q, s, ¬r q, s, ¬p

Una FND de F es (q ∧ s ∧ ¬r ) ∨ (q ∧ s ∧ ¬p).
Formas Normales y
Tableros y FNC Algoritmo DPLL

I Para obtener una FNC de una fórmula F : Introducción


I Si G es una FND de ¬F , aplicando a ¬G las leyes de Formas normales
De Morgan y eliminación de negaciones dobles Equivalencia lógica
Sustitución
transformamos ¬G en una FNC de F . Formas normales
Algoritmos para SAT y
I Por tanto, para obtener una FNC de F seguimos el TAUT
Tablero y Formas Normales
siguiente procedimiento: Forma clausal

1. Calculamos un tablero completo para ¬F . Algoritmo DPLL


Estructura del algoritmo
2. Si U1 , . . . , Uk son los conjuntos de literales que Extracción de Modelos

etiquetan las hojas abiertas del tablero completo para


¬F , formamos para cada Uj una disyunción Dj con los
literales complementarios de los literales de Uj .
3. Una FNC de F es la conjunción

D1 ∧ · · · ∧ D k
Formas Normales y
Tableros y FNC: Ejemplos Algoritmo DPLL

Sea F la fórmula s ∧ ((¬r → p) → q). Introducción


1. Una FND de ¬F es G ≡ ¬s ∨ (r ∧ ¬q) ∨ (p ∧ ¬q) Formas normales
Equivalencia lógica
2. Ahora ¬G proporciona una FNC de F : Sustitución
Formas normales
Algoritmos para SAT y

F ≡ ¬G ≡ ¬(¬s ∨ (r ∧ ¬q) ∨ (p ∧ ¬q)) TAUT


Tablero y Formas Normales

≡ ¬¬s ∧ ¬(r ∧ ¬q) ∧ ¬(p ∧ ¬q)) Forma clausal

Algoritmo DPLL
≡ s ∧ (¬r ∨ ¬¬q) ∧ (¬p ∨ ¬¬q)) Estructura del algoritmo

≡ s ∧ (¬r ∨ q) ∧ (¬p ∨ q) Extracción de Modelos


Formas Normales y
Tableros y FNC: Ejemplo (II) Algoritmo DPLL

Si F es la fórmula s ∧ ((¬r → p) → q). Calculamos un Introducción


tablero completo para ¬F : Formas normales
Equivalencia lógica
Sustitución

¬(s ∧ ((¬r → p) → q)) Formas normales


Algoritmos para SAT y
TAUT
Tablero y Formas Normales
Forma clausal

Algoritmo DPLL
¬s ¬((¬r → p) → q) Estructura del algoritmo
Extracción de Modelos

disyunción: s ¬r → p, ¬q

r , ¬q p, ¬q

disyunción: ¬r ∨ q disyunción: ¬p ∨ q
Una FNC de F es s ∧ (¬r ∨ q) ∧ (¬p ∨ q).
Formas Normales y
Cláusulas en LP Algoritmo DPLL

I Una cláusula es una disyunción de literales Introducción


L1 ∨ · · · ∨ Ln . Formas normales
Equivalencia lógica
I Dada una valoración v y una cláusula L1 ∨ · · · ∨ Ln : Sustitución
Formas normales
Algoritmos para SAT y

v |= L1 ∨· · ·∨Ln ⇐⇒ Existe i = 1, . . . , n tal que v |= Li TAUT


Tablero y Formas Normales
Forma clausal

Por tanto, el valor de verdad de L1 ∨ · · · ∨ Ln no Algoritmo DPLL


Estructura del algoritmo

depende ni del orden en que aparecen los literales ni de Extracción de Modelos

posibles repeticiones de literales.


I En consecuencia, identificamos la cláusula L1 ∨ · · · ∨ Ln
con el conjunto de literales {L1 , . . . Ln }.
I Caso especial: la cláusula vacı́a, correspondiente al
conjunto de literales vacı́o. La denotamos por .
I Por definición, para toda valoración, v , se tiene que
v () = 0, es decir,  es una contradicción.
Formas Normales y
Forma clausal en LP Algoritmo DPLL

Teorema. Introducción
Para toda fórmula F ∈ PROP existe un conjunto de Formas normales
cláusulas {C1 , . . . , Cn } tal que para toda valoración, v , Equivalencia lógica
Sustitución
Formas normales

v |= F ⇐⇒ v |= {C1 , . . . , Cn } Algoritmos para SAT y


TAUT
Tablero y Formas Normales
Forma clausal

{C1 , . . . , Cn } se denomina una forma clausal de F . Algoritmo DPLL


Estructura del algoritmo

Demotración: Podemos obtener una forma clausal a partir Extracción de Modelos

de una FNC, ya que si

(L1,1 ∨ · · · ∨ L1,n1 ) ∧ · · · ∧ (Lm,1 ∨ · · · ∨ Lm,nm )

es la FNC, basta escribirla en forma clausal como:

{{L1,1 , . . . , L1,n1 }, . . . , {Lm,1 , · · · , Lm,nm }}


Formas Normales y
Forma clausal en LP (II) Algoritmo DPLL

Coroloario. Introducción
En el caso de un conjunto de fórmulas U existe un conjunto Formas normales
de cláusulas {C1 , . . . , Cn } tal que para toda valoración, v , Equivalencia lógica
Sustitución
Formas normales

v |= U ⇐⇒ v |= {C1 , . . . , Cn } Algoritmos para SAT y


TAUT
Tablero y Formas Normales
Forma clausal
{C1 , . . . , Cn } se denomina una forma clausal de U. Algoritmo DPLL
Estructura del algoritmo
Nota: Podemos obtener una forma clausal de un conjunto U Extracción de Modelos

uniendo formas clausales de las fórmulas de U. Por ejemplo:

U = {p → q , (p ∨ ¬q) ∧ (r → ¬p), p ∧ ¬r }
| {z } | {z } | {z }
(1) (2) (3)

Una forma clausal de U es:

{¬p ∨ q , p ∨ ¬q, ¬r ∨ ¬p , p, ¬r }
| {z } | {z } | {z }
(1) (2) (3)
Formas Normales y
El algoritmo DPLL Algoritmo DPLL

I Determinar la satisfactibilidad de un conjunto de Introducción


cláusulas, por lo que requiere una fase de Formas normales

preprocesamiento. Equivalencia lógica


Sustitución
Formas normales
I Es un refinamiento (Davis, Logemann y Loveland, 1962) Algoritmos para SAT y
TAUT
de un algoritmo propuesto por Davis y Putnam (1960). Tablero y Formas Normales
Forma clausal

I Es la base de muchos “SAT solvers”: programas para Algoritmo DPLL


determinar la satisfactibilidad de un conjunto de Estructura del algoritmo
Extracción de Modelos

fórmulas proposicionales (habitualmente, cláusulas).


I Puede utilizarse como algoritmo de decisión, y también
como generador de modelos.
I Hace una búsqueda sistemática por medio de los
posibles valores de las variables proposicionales.
I Al igual que los Tableros Semánticos, suele
representarse gráficamente mediante un árbol binario.
Formas Normales y
Tableros vs DPLL Algoritmo DPLL

Tienen caracterı́sticas propias que distinguen claramente Introducción


ambos métodos: Formas normales
I Algoritmo DPLL: Equivalencia lógica
Sustitución
I No trabaja con fórmulas arbitrarias sino sobre conjuntos Formas normales
Algoritmos para SAT y
de cláusulas. Es preciso “preprocesar” el conjunto de TAUT
Tablero y Formas Normales
fórmulas, pasándolo a forma clausal. Forma clausal

I Está entre los algoritmos más eficientes para la lógica Algoritmo DPLL
proposicional, pero no se extiende fácilmente a otras Estructura del algoritmo
Extracción de Modelos
lógicas.
I Tableros semánticos:
I Trabaja directamente sobre el conjunto de fórmulas
proposicionales.
I No es tan eficiente como DPLL, pero es muy flexible y
puede adaptarse a otras lógicas (lógica de primer orden,
descriptivas, modales, etc.), donde resulta útil en el
estudio teórico.
Formas Normales y
Estructura del algoritmo Algoritmo DPLL

I Podemos distinguir dos partes en el algoritmo: Introducción


1. Propagación de unidades: simplifica el conjunto de Formas normales
cláusulas. Equivalencia lógica
Sustitución
2. División: organiza la búsqueda de una valoración que Formas normales

muestre que el conjunto es satisfactible. Algoritmos para SAT y


TAUT
Tablero y Formas Normales
I El algoritmo puede describirse de manera recursiva: Forma clausal

Algoritmo DPLL
Estructura del algoritmo
Procedimiento DPLL Extracción de Modelos

Entrada: S conjunto de cláusulas


Salida: SI, si S ∈ SAT ; NO, en caso contrario
Si S = ∅ devolver SI
Si  ∈ S devolver NO
Si S tiene unidades:
devolver DPLL(Propaga unidades(S))
Si no:
{S1 , S2 } = Division(S)
devolver DPLL(S1 ) ∨ DPLL(S2 )
Formas Normales y
Propagación de unidades Algoritmo DPLL

I Se elige una cláusula unitaria L ∈ S y se aplican Introducción


consecutivamente las dos reglas siguientes: Formas normales
1. Subsunción unitaria. Se eliminan de S todas las Equivalencia lógica
Sustitución
cláusulas subsumidas por L, es decir, que contengan el Formas normales

literal L (inluida la propia cláusula L). Algoritmos para SAT y


TAUT

2. Resolución unidad. Se elimina el literal Tablero y Formas Normales


Forma clausal
complementario Lc de todas las cláusulas de S. Algoritmo DPLL
I El proceso se repite hasta que no queden unidades en S. Estructura del algoritmo
Extracción de Modelos

Procedimiento Propaga unidades


Entrada: S conjunto de cláusulas
Salida: Conjunto de cláusulas
Mientras S tenga unidades:
Selecciona L unidad de S
S = {C : L ∈/ C , C ∈ S}
S = {C − {Lc } : Lc ∈ C , C ∈ S}
devolver S 0
Formas Normales y
División Algoritmo DPLL

I Tras el proceso de propagación, si el algoritmo no ha Introducción


parado, entonces S no contiene cláusulas unitarias. Formas normales
Equivalencia lógica
I Se elige un literal L que aparezca en una cláusula de S Sustitución

y se construyen los conjuntos: S ∪ {L} y S ∪ {Lc }.


Formas normales
Algoritmos para SAT y
TAUT
Tablero y Formas Normales

Procedimiento Division Forma clausal

Algoritmo DPLL
Entrada: S conjunto de cláusulas Estructura del algoritmo

Salida: Dos conjuntos de cláusulas Extracción de Modelos

Selecciona C ∈ S, L ∈ C
devolver {S ∪ {L}, S ∪ {Lc }}
Formas Normales y
Ejemplo Algoritmo DPLL

Introducción
S = {{p, q, r }, {¬p, q, r }, {¬q, r }, {¬q, ¬r }, {q, ¬r }} Formas normales
Equivalencia lógica
Sustitución
Formas normales
Algoritmos para SAT y
TAUT
Tablero y Formas Normales
p ¬p Forma clausal

{{q, r }, {¬q, r }, {q, ¬r }, {¬q, ¬r }} {{q, r }, {¬q, r }, {q, ¬r }, {¬q, ¬rDPLL


Algoritmo }}
Estructura del algoritmo
Extracción de Modelos

q ¬q q ¬q
{{r }, {¬r }} {{r }, {¬r }} {{r }, {¬r }} {{r }, {¬r }}
r r r r
{} {} {} {}

Por tanto, S es insatisfactible.


Formas Normales y
Extracción de modelos Algoritmo DPLL

I Si el algoritmo DPLL responde afirmativamente (S es Introducción


satisfactible, y en consecuencia tiene modelos), Formas normales

entonces cada rama que llega a ∅ proporciona modelos. Equivalencia lógica


Sustitución

I Para obtener el modelo de una rama, basta anotar la Formas normales


Algoritmos para SAT y

elección de unidades que se ha hecho a lo largo de la TAUT


Tablero y Formas Normales

misma (ya sea por propagación, o por división): Forma clausal

I Si una unidad aparece positiva, la valoración para la Algoritmo DPLL


Estructura del algoritmo
variable asociada será 1. Extracción de Modelos

I Si una unidad aparece negativa, la valoración para la


variable asociada será 0.
I Las variables que no intervienen pueden tener cualquier
valor de verdad asignado.
I Además, por la forma en que trabaja DPLL, ramas
distintas proporcionan siempre modelos distintos (algo
que no pasaba con tableros semánticos).
Formas Normales y
Ejemplo Algoritmo DPLL

Introducción
S = {{p, q, r }, {¬p, q, r }, {p, ¬q}, {p, r },
Formas normales
{¬p, ¬q, r }, {¬p, q, ¬r }, {¬p, ¬q, ¬r }} Equivalencia lógica
Sustitución

S Formas normales
Algoritmos para SAT y
TAUT
Tablero y Formas Normales
Forma clausal

Algoritmo DPLL
p ¬p Estructura del algoritmo

{{q, r }, {¬q, r }, {q, ¬r }, {¬q, ¬r }} {{q, r }, {¬q}, {r }} Extracción de Modelos

r
q ¬q
{{¬q}}
{{r }, {¬r }} {{r }, {¬r }}
¬q
r r

{} {}
Satisfactible

Un modelo de S viene dado por:

También podría gustarte