Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del...

26
Algoritmos para SAT Introducci´on Tableros sem´ anticos F´ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencial´ogica Algoritmo de Davis–Putnam Estructura del algoritmo Ejemplos Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL Dpto. Ciencias de la Computaci´on Inteligencia Artificial Universidad de Sevilla ogicas Inform´ atica (Tecnolog´ ıas Inform´ aticas) Curso 2016–17

Transcript of Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del...

Page 1: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Tema 3:Algoritmos para SAT:

Tableros y algoritmo DPLL

Dpto. Ciencias de la Computacion Inteligencia ArtificialUniversidad de Sevilla

Logicas Informatica(Tecnologıas Informaticas)

Curso 2016–17

Page 2: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Contenido

Introduccion

Tableros semanticosFormulas α y βTableros completosBusqueda de modelosFormas normalesConsecuencia logica

Algoritmo de Davis–PutnamEstructura del algoritmoEjemplos

Page 3: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Introduccion

I Presentaremos dos algoritmos para estudiar lasatisfactibilidad de un conjunto de formulasproposicionales:

I El metodo de tableros semanticos, yI El algoritmo DPLL

(Davis–Putnam–Logemann-Loveland)

I Ambos estan basados en una busqueda sistematica demodelos.

I En ambos casos la busqueda suele representarsegraficamente mediante un arbol.

Page 4: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Tableros vs DPLL

Tienen caracterısticas propias que distinguen claramenteambos metodos:I Algoritmo DPLL:

I No trabaja con formulas arbitrarias sino sobre conjuntosde clausulas. Es preciso “preprocesar” el conjunto deformulas, pasandolo a forma clausal.

I Esta entre los algoritmos mas eficientes para la logicaproposicional, pero no se extiende facilmente a otraslogicas.

I Tableros semanticos:I Trabaja directamente sobre el conjunto de formulas

proposicionales.I No es tan eficiente como DPLL, pero es muy flexible y

puede adaptarse a otras logicas (como la logica deprimer orden, logicas descriptivas, modales, etc.).

I Resulta util en el estudio teorico de diversas logicas,para probar propiedades formales como la completitud.

Page 5: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Tableros Semanticos

I Gracias a la FND sabemos que la satisfactibilidad deuna formula puede reducirse a la de ciertos conjuntosde literales.

I El metodo de los tableros semanticos organiza demanera sistematica la busqueda de modelos, reduciendola satisfactibilidad de las formulas consideradas a la deciertos conjuntos de literales.

El metodo de tableros semanticos:

1. Clasifica las formulas en dos clases:I Las formulas α, que se comportan como conjuncionesI Las formulas β, que se comportan como disyunciones

2. Asocia a cada formula, F , otras dos formulas massencillas (sus componentes) de modo que lasatisfactibilidad de F se reduce a la de sus componentes.

Page 6: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Formulas de tipo α

Las formulas de tipo α son las siguientes:

α α1 α2

¬¬F FF1 ∧ F2 F1 F2

¬(F1 ∨ F2) ¬F1 ¬F2

¬(F1 → F2) F1 ¬F2

F1 ↔ F2 F1 → F2 F2 → F1

I Las formulas α1 y α2 son las componentes de α.

I Si F es de tipo α, entonces F ≡ α1 ∧ α2.

I Para satisfacer una formula de tipo α es necesario ysuficiente satisfacer simultaneamente sus doscomponentes α1 y α2.

Page 7: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Formulas de tipo β

Las formulas de tipo β son las siguientes:

β β1 β2

F1 ∨ F2 F1 F2

¬(F1 ∧ F2) ¬F1 ¬F2

(F1 → F2) ¬F1 F2

¬(F1 ↔ F2) ¬(F1 → F2) ¬(F2 → F1)

I Las formulas β1 y β2 son las componentes de β.

I Si F es de tipo β, entonces F ≡ β1 ∨ β2

I Para satisfacer una formula de tipo β solo es necesarioy suficiente satisfacer una de sus componentes β1 y β2.

Page 8: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Reglas α y β

Reducen la consistencia de un conjunto de formulas U a lade otro conjunto U ′ formado por formulas mas sencillas.

I Regla α: Si F ∈ U es de tipo α, entonces

U satisfactible ⇐⇒ (U−{F})∪{α1, α2} satisfactible

I Regla β: Si F ∈ U es de tipo β, entonces

U satisfactible ⇐⇒

(U − {F}) ∪ {β1} satisfactible

o

(U − {F}) ∪ {β2} satisfactible

Page 9: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Ejemplo

La formula q ∧ p ∧ (p → (q → ¬p)) es insatisfactible:

q ∧ p ∧ (p → (q → ¬p))

q, p ∧ (p → (q → ¬p))

q, p, (p → (q → ¬p))

�����

HHHH

H

q, p, ¬p×

q, p, q → ¬p

���

HHH

q, p, ¬q×

q, p, ¬p×

Page 10: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Construccion de un tablero completo

Un tablero para {A1, . . . ,An} es un arbol T , con nodosetiquetados por conjuntos de formulas, tal que:

I La raız r de T esta etiquetado por U(r) = {A1, . . .An}.I Para cada hoja l de T , con etiqueta U(l), no marcada,

hacer:1. Si U(l) es un conjunto de literales, entonces:

1.1 Si existe un par de literales complementarios en U(l),marcar con × (y se denomina hoja cerrada).

1.2 Si no existe tal par, marcar con © (hoja abierta).

2. Si U(l) no es un conjunto de literales, elegir A de U(l)no literal.

2.1 Si A es una α–formula, entonces anadir un hijo l ′ de lcon U(l ′) = (U(l) \ {A}) ∪ {α1, α2} (α2 puede noexistir).

2.2 Si A es una β–formula, entonces anadir dos hijos l ′, l ′′

con etiquetas

U(l ′) = (U(l)\{A})∪{β1} y U(l ′′) = (U(l)\{A})∪{β2}

Page 11: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Propiedades de los tableros completos

I La construccion siempre termina. El tablero final sedenomina tablero completo.

I Un tablero T es cerrado si todas sus hojas soncerradas. En otro caso es abierto.

Teorema. (Correccion y Completitud)Sea S un conjunto de formulas y T un tablero completopara S .

1. Correccion: Si T es cerrado, entonces S esinsatisfactible.

2. Completitud: Si S es insatisfactible, entonces T escerrado.

Page 12: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Extrayendo modelos de un tablero completo

I Un conjunto de formulas {A1, . . . ,An} admite untablero completo abierto si y solo si es un conjuntosatisfactible.

I Ademas cada rama abierta del tablero completo defineun modelo.

I Si U es la etiqueta de una hoja abierta, podemosobtener un modelo v del conjunto {A1, . . . ,An}, comosigue

I v(p) = 1 si p ∈ U o ¬p /∈ U, yI v(p) = 0 si ¬p ∈ U.

Page 13: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Extrayendo modelos de un tablero completo (II)

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

p, ¬q ∧ (p → ((q ∨ r)→ (p ∧ r)))

p, ¬q, p → ((q ∨ r)→ (p ∧ r))

���

����

HHH

HHH

H

p, ¬q, ¬p×

p, ¬q, (q ∨ r)→ (p ∧ r)

�����

HHHH

H

p, ¬q, ¬(q ∨ r)

p, ¬q, ¬r©

p, ¬q, p ∧ r

p, ¬q, r©

Induce v(p) = v(r) = 1, v(q) = 0

Page 14: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Tableros completos y FND

I Un tablero completo para una formula F puedeutilizarse para obtener una FND de F .

I Si T es un tablero completo para F , procedemos comosigue:

1. Si U1,. . . , Uk son los conjuntos de literales queetiquetan las hojas abiertas de T , formamos para cadaUj una conjuncion, Cj , con todos los literales de Uj .

2. Una FND de F se obtiene formando la disyuncion

C1 ∨ · · · ∨ Ck .

Page 15: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Tableros y FND: Ejemplo

Si F es la formula q ∧ s ∧ (q → (r → ¬p))

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

q, s ∧ (q → (r → ¬p))

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

�����

HHHHH

q, s, ¬q×

q, s, r → ¬p

���

HHH

q, s, ¬r©

q, s, ¬p©

Una FND de F es (q ∧ s ∧ ¬r) ∨ (q ∧ s ∧ ¬p).

Page 16: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Tableros y FNC

I Para obtener una FNC de una formula F nos basamosen la siguiente observacion:

I Si G es una FND de ¬F , aplicando a ¬G las leyes deDe Morgan y eliminacion de negaciones doblestransformamos ¬G en una FNC de F .

I Por tanto, para obtener una FNC de F seguimos elsiguiente procedimiento:

1. Calculamos un tablero completo para ¬F .2. Si U1, . . . ,Uk son los conjuntos de literales que

etiquetan las hojas abiertas del tablero completo para¬F , formamos para cada Uj una disyuncion Dj con losliterales complementarios de los literales de Uj .

3. Una FNC de F es la conjuncion

D1 ∧ · · · ∧ Dk .

Page 17: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Tableros y FNC: Ejemplos

Sea F la formula s ∧ ((¬r → p)→ q).

1. Una FND de ¬F es G ≡ ¬s ∨ (r ∧ ¬q) ∨ (p ∧ ¬q)

2. Ahora ¬G proporciona una FNC de F :

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

Page 18: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Tableros y FNC: Ejemplo (II)

Si F es la formula s ∧ ((¬r → p)→ q). Calculamos untablero completo para ¬F :

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

����

���

HHHH

HHH

¬s©

disyuncion: s

¬((¬r → p)→ q)

¬r → p, ¬q

���

��

HHH

HH

r , ¬q©

disyuncion: ¬r ∨ q

p,¬q©

disyuncion: ¬p ∨ q

Una FNC de F es s ∧ (¬r ∨ q) ∧ (¬p ∨ q).

Page 19: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Consecuencia logica

Utilizamos la siguiente reduccion:

{A1, . . .An} |= A⇐⇒ {A1, . . . ,An,¬A} admite un tablero cerrado.

Por ejemplo, {p → q, q ∨ r → s} |= p → s.

p → q, q ∨ r → s, ¬(p → s)

p → q, q ∨ r → s, p, ¬s

������

HHH

HHH

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

q, q ∨ r → s, p, ¬s

�����

HHHH

H

q, ¬(q ∨ r), p, ¬s

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

q, s, p, ¬s×

Page 20: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

El algoritmo DPLL

I Es un algoritmo para determinar la satisfactibilidad deun conjunto de clausulas.

I El algoritmo DPLL es un refinamiento (presentado en1962 por Davis, Logemann y Loveland) de un algoritmopropuesto por Davis y Putnam (en 1960).

I DPLL es la base de muchos “SAT solvers”: programaspara determinar la satisfactibilidad de un conjunto deformulas proposicionales (habitualmente, clausulas).

I Puede utilizarse como algoritmo de decision, pero si larespuesta es positiva tambien permite obtener unavaloracion que es modelo del conjunto de clausulas deentrada.

Page 21: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Estructura del algoritmo

I Podemos distinguir dos partes en el algoritmo:

1. Propagacion de unidades. Esta parte esta dedicada ala simplificacion del conjunto sobre el que se trabaja.

2. Division. Esta parte organiza la busqueda de unavaloracion que muestre que el conjunto es satisfactible.

I El algoritmo puede describirse de manera recursiva:I Dado un conjunto de clasulas S , en una primera fase

simplificamos S mediante la propagacion de unidades.I Si tras este proceso el conjunto S queda vacıo, el

conjunto es satisfactible.I Si durante el proceso de simplificacion aparece la

clausula vacıa, el conjunto es insatisfactible.

I Una vez simplificado S , se obtienen mediante divisiondos conjuntos S ′ y S ′′ a los que volvemos a aplicar elprocedimiento de simplificacion y division.

Page 22: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Propagacion de unidades

Esta fase utiliza dos reglas para simplificar el conjunto declausulas, S , sobre el que se trabaja.I Se elige una clausula unitaria L ∈ S y se aplican

consecutivamente las dos reglas siguientes:

1. Subsuncion unitaria. Se eliminan de S todas lasclausulas subsumidas por L, es decir, que contengan elliteral L (inluida la propia clausula L).

2. Resolucion unidad. Se elimina el literalcomplementario Lc de todas las clausulas de S .

I El proceso vuelve a repetirse hasta que no quedenclausulas unitarias en S .

Page 23: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Division

I Tras el proceso de simplificacion si el algoritmo no haparado, entonces S no contiene clausulas unitarias.

I Se elige un literal L que aparezca en una clausula de Sy se construyen los conjuntos: S ∪ {L} y S ∪ {Lc}. Acontinuacion:

1. Se aplica recursivamente el procedimiento a S ∪ {L}; esdecir, aplicamos de nuevo propagacion de unidades(eligiendo necesariamente la clausula unitaria L) ydespues division, etc.

2. Si S ∪ {L} resulta ser insatisfactible, aplicamos elprocedimiento a S ∪ {Lc}.

Page 24: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Ejemplo

S = {{a, b}, {¬a, b}, {a,¬b}, {a,¬d},{¬a,¬b,¬c}, {b,¬c , }, {c ,¬f }, {f }}

I Propagacion de unidades:f :

{{a, b}, {¬a, b}, {a,¬b}, {a,¬d}, {¬a,¬b,¬c}, {b,¬c}, {c}}

c :

{{a, b}, {¬a, b}, {a,¬b}, {a,¬d}, {¬a,¬b}, {b}}

b:{{a}, {a,¬d}, {¬a}}

¬a:{�, {d}}

I Insatisfactible.

Page 25: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Ejemplo (II)

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

����

���

��

HHHH

HHH

HH

p

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

����

HHHH

q

{{r}, {¬r}}

r

{�}

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

r

{�}

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

����

HHHH

q

{{r}, {¬r}}

r

{�}

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

r

{�}I Por tanto,

S = {{p, q, r}, {¬p, q, r}, {¬q, r}, {¬q, ¬r}, {q, ¬r}}es insatisfactible.

Page 26: Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL · Algoritmo de Davis{Putnam Estructura del algoritmo Ejemplos Introducci on IPresentaremos dos algoritmos para estudiar la

Algoritmos paraSAT

Introduccion

Tablerossemanticos

Formulas α y β

Tableros completos

Busqueda de modelos

Formas normales

Consecuencia logica

Algoritmo deDavis–Putnam

Estructura delalgoritmo

Ejemplos

Ejemplo (III)

S = {{p, q, r}, {¬p, q, r}, {p,¬q}, {p, r},{¬p,¬q, r}, {¬p, q,¬r}, {¬p,¬q,¬r}}

S

�����

��

HHH

HHHH

p

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

����

HHHH

q

{{r}, {¬r}}

r

{�}

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

r

{�}

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

r

{{¬q}}

¬q∅

¡Satisfactible!

I Un modelo de S esta dado por v(p) = 0, v(r) = 1,v(q) = 0.