tema 3: algoritmos para sat: tableros y algoritmo dpll · algoritmo de davis{putnam estructura del...

Post on 14-Oct-2020

35 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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.

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.

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.

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.

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.

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

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×

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}

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.

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.

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

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 .

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).

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 .

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)

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).

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×

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.

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.

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 .

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}.

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.

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.

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.

top related