• No se han encontrado resultados

Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL

N/A
N/A
Protected

Academic year: 2022

Share "Tema 3: Algoritmos para SAT: Tableros y algoritmo DPLL"

Copied!
26
0
0

Texto completo

(1)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´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

L´ogicas Inform´atica (Tecnolog´ıas Inform´aticas)

Curso 2016–17

(2)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Contenido

Introducci´on

Tableros sem´anticos F´ormulas α y β Tableros completos B´usqueda de modelos Formas normales Consecuencia l´ogica

Algoritmo de Davis–Putnam Estructura del algoritmo Ejemplos

(3)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Introducci´ on

I Presentaremos dos algoritmos para estudiar la satisfactibilidad de un conjunto de f´ormulas proposicionales:

I El m´etodo de tableros sem´anticos, y

I El algoritmo DPLL

(Davis–Putnam–Logemann-Loveland)

I Ambos est´an basados en una b´usqueda sistem´atica de modelos.

I En ambos casos la b´usqueda suele representarse gr´aficamente mediante un ´arbol.

(4)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Tableros vs DPLL

Tienen caracter´ısticas propias que distinguen claramente ambos m´etodos:

I Algoritmo DPLL:

I No trabaja con f´ormulas arbitrarias sino sobre conjuntos de cl´ausulas. Es preciso “preprocesar” el conjunto de ormulas, pas´andolo a forma clausal.

I Est´a entre los algoritmos m´as eficientes para la l´ogica proposicional, pero no se extiende f´acilmente a otras ogicas.

I Tableros sem´anticos:

I Trabaja directamente sobre el conjunto de f´ormulas proposicionales.

I No es tan eficiente como DPLL, pero es muy flexible y puede adaptarse a otras l´ogicas (como la l´ogica de primer orden, l´ogicas descriptivas, modales, etc.).

I Resulta ´util en el estudio te´orico de diversas l´ogicas, para probar propiedades formales como la completitud.

(5)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Tableros Sem´ anticos

I Gracias a la FND sabemos que la satisfactibilidad de una f´ormula puede reducirse a la de ciertos conjuntos de literales.

I El m´etodo de los tableros sem´anticos organiza de manera sistem´atica la b´usqueda de modelos, reduciendo la satisfactibilidad de las f´ormulas consideradas a la de ciertos conjuntos de literales.

El m´etodo de tableros sem´anticos:

1. Clasifica las f´ormulas en dos clases:

I Las f´ormulas α, que se comportan como conjunciones

I Las f´ormulas β, que se comportan como disyunciones 2. Asocia a cada f´ormula, F , otras dos f´ormulas m´as

sencillas (sus componentes) de modo que la

satisfactibilidad de F se reduce a la de sus componentes.

(6)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

F´ ormulas de tipo α

Las f´ormulas de tipo α son las siguientes:

α α1 α2

¬¬F F

F1∧ F2 F1 F2

¬(F1∨ F2) ¬F1 ¬F2

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

I Las f´ormulas α1 y α2 son las componentes de α.

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

I Para satisfacer una f´ormula de tipo α es necesario y suficiente satisfacer simult´aneamente sus dos componentes α1 y α2.

(7)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

F´ ormulas de tipo β

Las f´ormulas 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 f´ormulas β1 y β2 son las componentes de β.

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

I Para satisfacer una f´ormula de tipo β s´olo es necesario y suficiente satisfacer una de sus componentes β1 y β2.

(8)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Reglas α y β

Reducen la consistencia de un conjunto de f´ormulas U a la de otro conjunto U0 formado por f´ormulas m´as 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

(9)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Ejemplo

La f´ormula q ∧ p ∧ (p → (q → ¬p)) es insatisfactible:

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

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



H HH HH q, p, ¬p

×

q, p, q → ¬p

 H HH q, p, ¬q

×

q, p, ¬p

×

(10)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Construcci´ on de un tablero completo

Un tablero para {A1, . . . , An} es un ´arbol T , con nodos etiquetados por conjuntos de f´ormulas, tal que:

I La ra´ız r de T est´a 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 α–f´ormula, entonces a˜nadir un hijo l0 de l con U(l0) = (U(l ) \ {A}) ∪ {α1, α2} (α2puede no existir).

2.2 Si A es una β–f´ormula, entonces a˜nadir dos hijos l0, l00 con etiquetas

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

(11)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Propiedades de los tableros completos

I La construcci´on siempre termina. El tablero final se denomina tablero completo.

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

Teorema. (Correcci´on y Completitud)

Sea S un conjunto de f´ormulas y T un tablero completo para S .

1. Correcci´on: Si T es cerrado, entonces S es insatisfactible.

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

(12)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Extrayendo modelos de un tablero completo

I Un conjunto de f´ormulas {A1, . . . , An} admite un tablero completo abierto si y s´olo si es un conjunto satisfactible.

I Adem´as cada rama abierta del tablero completo define un modelo.

I Si U es la etiqueta de una hoja abierta, podemos obtener un modelo v del conjunto {A1, . . . , An}, como sigue

I v (p) = 1 si p ∈ U ´o ¬p /∈ U, y

I v (p) = 0 si ¬p ∈ U.

(13)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo 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 ))



HH HH HH H

p, ¬q, ¬p

×

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



H HH HH p, ¬q, ¬(q ∨ r )

p, ¬q, ¬r

p, ¬q, p ∧ r p, ¬q, r

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

(14)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Tableros completos y FND

I Un tablero completo para una f´ormula F puede utilizarse para obtener una FND de F .

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

1. Si U1,. . . , Uk son los conjuntos de literales que etiquetan las hojas abiertas de T , formamos para cada Uj una conjunci´on, Cj, con todos los literales de Uj. 2. Una FND de F se obtiene formando la disyunci´on

C1∨ · · · ∨ Ck.

(15)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Tableros y FND: Ejemplo

Si F es la f´ormula q ∧ s ∧ (q → (r → ¬p)) q ∧ s ∧ (q → (r → ¬p))

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

 HH HH H q, s, ¬q

×

q, s, r → ¬p

 HH H q, s, ¬r

q, s, ¬p

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

(16)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Tableros y FNC

I Para obtener una FNC de una f´ormula F nos basamos en la siguiente observaci´on:

I Si G es una FND de ¬F , aplicando a ¬G las leyes de De Morgan y eliminaci´on de negaciones dobles transformamos ¬G en una FNC de F .

I Por tanto, para obtener una FNC de F seguimos el siguiente 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 disyunci´on Dj con los literales complementarios de los literales de Uj. 3. Una FNC de F es la conjunci´on

D1∧ · · · ∧ Dk.

(17)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Tableros y FNC: Ejemplos

Sea F la f´ormula 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)

(18)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Tableros y FNC: Ejemplo (II)

Si F es la f´ormula s ∧ ((¬r → p) → q). Calculamos un tablero completo para ¬F :

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



H HH HH HH

¬s disyunci´on: s

¬((¬r → p) → q)

¬r → p, ¬q



H HH HH r , ¬q

disyunci´on: ¬r ∨ q

p, ¬q

disyunci´on: ¬p ∨ q Una FNC de F es s ∧ (¬r ∨ q) ∧ (¬p ∨ q).

(19)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Consecuencia l´ ogica

Utilizamos la siguiente reducci´on:

{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



HH HH HH

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

×

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



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

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

×

q, s, p, ¬s

×

(20)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

El algoritmo DPLL

I Es un algoritmo para determinar la satisfactibilidad de un conjunto de cl´ausulas.

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

I DPLL es la base de muchos “SAT solvers”: programas para determinar la satisfactibilidad de un conjunto de f´ormulas proposicionales (habitualmente, cl´ausulas).

I Puede utilizarse como algoritmo de decisi´on, pero si la respuesta es positiva tambi´en permite obtener una valoraci´on que es modelo del conjunto de cl´ausulas de entrada.

(21)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Estructura del algoritmo

I Podemos distinguir dos partes en el algoritmo:

1. Propagaci´on de unidades. Esta parte est´a dedicada a la simplificaci´on del conjunto sobre el que se trabaja.

2. Divisi´on. Esta parte organiza la b´usqueda de una valoraci´on que muestre que el conjunto es satisfactible.

I El algoritmo puede describirse de manera recursiva:

I Dado un conjunto de cl´asulas S , en una primera fase simplificamos S mediante la propagaci´on de unidades.

I Si tras este proceso el conjunto S queda vac´ıo, el conjunto es satisfactible.

I Si durante el proceso de simplificaci´on aparece la cl´ausula vac´ıa, el conjunto es insatisfactible.

I Una vez simplificado S , se obtienen mediante divisi´on dos conjuntos S0 y S00a los que volvemos a aplicar el procedimiento de simplificaci´on y divisi´on.

(22)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Propagaci´ on de unidades

Esta fase utiliza dos reglas para simplificar el conjunto de cl´ausulas, S , sobre el que se trabaja.

I Se elige una cl´ausula unitaria L ∈ S y se aplican consecutivamente las dos reglas siguientes:

1. Subsunci´on unitaria. Se eliminan de S todas las cl´ausulas subsumidas por L, es decir, que contengan el literal L (inluida la propia cl´ausula L).

2. Resoluci´on unidad. Se elimina el literal complementario Lc de todas las cl´ausulas de S .

I El proceso vuelve a repetirse hasta que no queden cl´ausulas unitarias en S .

(23)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Divisi´ on

I Tras el proceso de simplificaci´on si el algoritmo no ha parado, entonces S no contiene cl´ausulas unitarias.

I Se elige un literal L que aparezca en una cl´ausula de S y se construyen los conjuntos: S ∪ {L} y S ∪ {Lc}. A continuaci´on:

1. Se aplica recursivamente el procedimiento a S ∪ {L}; es decir, aplicamos de nuevo propagaci´on de unidades (eligiendo necesariamente la cl´ausula unitaria L) y despu´es divisi´on, etc.

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

(24)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Ejemplo

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

I Propagaci´on 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.

(25)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Ejemplo (II)

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



H HH HH HH HH

p

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

 H HH H

q

{{r }, {¬r }}

r

{}

¬q

{{r }, {¬r }}

r

{}

¬p

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

 H HH H

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.

(26)

Algoritmos para SAT

Introducci´on Tableros sem´anticos

ormulas α y β Tableros completos usqueda de modelos Formas normales Consecuencia l´ogica Algoritmo de Davis–Putnam

Estructura del algoritmo Ejemplos

Ejemplo (III)

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

S



HH HH HH H

p

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

 HH HH

q

{{r }, {¬r }}

r

{}

¬q

{{r }, {¬r }}

r

{}

¬p

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

r

{{¬q}}

¬q

¡Satisfactible!

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

Referencias

Documento similar

ESTRUCTURA DE SELECCIÓN MÚLTIPLE La estructura de control de selección múltiple nos permite manipular el flujo del algoritmo para que siga por uno de varios

B´ usqueda de Comunidades (3): Llegados a este punto con los datos ya procesados, se aplican diferentes algoritmos de b´ usqueda de comunidades (para comparar los

Este trabajo se centra en esta idea, combinando para ello la creación de ujos metabólicos simulados mediante FBA, con un algoritmo de Machine Learning, concretamente el

Figura 5.9 Comparaci´ on del ranking la mejor soluci´ on encontrada hasta cada iteraci´ on, entre el algoritmo de b´ usqueda y su respectiva b´ usqueda aleatoria, para cada funci´

El primer objetivo de esta tesis consiste en el estudio de las posibilidades de un algoritmo r´apido de b´ usqueda del vecino m´as cercano, el LAESA, para obtener una disminuci´on en

En este trabajo se desarroll´ o un algoritmo de b´ usqueda aleatoria para optimizar algunos modelos con funciones estoc´ asticas no restringidas usando informaci´ on a priori.

En este capítulo se introduce un algoritmo genético híbrido para resolver el problema de la programación de tareas en una y múltiples máquinas, en donde el algoritmo genético trabaja

Conjunto de instrucciones definidas, ordenadas y acotadas para resolver un problema o realizar una tarea, supone el paso previo a ponerse a escribir el código.. Preguntas