lunes, 14 de julio de 2014
Problema de la Satisfactibilidad SAT
PROBLEMA DE LA SATISFACTIBILIDAD (SAT)
El problema SAT se puede enunciar como sigue: dada una fórmula proposicional enforma normal conjuntiva, determinar si esta es satisfactible.
Así, el problema consiste en decidir, dada una FNC F, si existe alguna valoración deverdad V sobre el conjunto de variables de la fórmula tal que V(F) = 1.
Una de las características mas importantes del problema es que es NP-Completo, es decir, el tiempo de ejecución para un algoritmo que resuelva el problema es exponencial en el número de cláusulas de la fórmula. Este resultado fue demostrado por S.A. Cook en 1971, dando lugar al nacimiento de la teoría de la complejidad.
Ensayo SAT
EL PROBLEMA DE LA SATISFACTIBILIDAD
SAT
La
tecnología es uno de los factores de más importancia para el ser humano, esta
es capaz de brindarle múltiples capacidades y herramientas para una eficaz
solución de los diversos problemas que abarcan su entorno, desde el más mínimo
problema hasta el más complejo.
La
tecnología abarca varias ramas que se encargan de los diversos campos de la
problemática humana, uno de estas ramas es la lógica computacional también
conocida como la lógica matemática, la cual consiste en el estudio matemático
de la lógica y en la aplicación de dicho estudio a otras áreas de la matemática
y de las ciencias; la lógica matemática es implementada en el desarrollo de los
circuitos computacionales, la programación lógica y el análisis y optimización
de algoritmos y abarca temas de estudio como los sistemas lógicos (lógica
proposicional y de predicados), la deducción natural y el problema de la
satisfactibilidad (SAT).
El
problema de la satisfactibilidad (SAT) es un problema computacional no
polinomial completo (NP-Completo) de gran estudio ya que genera la búsqueda de algoritmos realmente eficientes
para la solución de problemáticas orientadas a diversos campos computacionales
como lo son el diseño de circuitos, la inteligencia artificial, la verificación
de software y hardware entre otros. Encontrar la solución del problema SAT
mediante el análisis de los diversos métodos y técnicas empleados permite
encontrar las más eficaces formas de abordar el problema, aunque son diversos
los métodos de solución uno de los más importantes y representativos en el
esquema Davis-Putnam, el cual es implementado con la inclusión de nuevas
herramientas por los diversos resolvedores obtenidos en la actualidad que
buscan mejorar su rendimiento, algunos de estos resolvedores son: Berkmin,
Grasp, Chaff, GSAT, WalkSat, entre otros.
En
este ensayo se presenta una investigación destinada a trabajador todo lo
relacionado con el problema de la satisfactibilidad SAT, desde su concepto,
utilización, el método de solución del esquema Davis-Putnam hasta los diversos
tipos de resolvedores destinados a encontrar solución a este problema.
El
problema de la satisfactibilidad SAT es definido de la
siguiente forma: Establecida una formula en forma normal conjuntiva (FNC), este
se encarga de determinar si la fórmula establecida es satisfactible; por lo
tanto el problema consiste en decidir si en la fórmula establecida existe algún
valor de verdad (V) asignado a las variables booleanas de la formula tal que la
misma sea igual a uno: V(F) = 1.
El
problema de la satisfactibilidad SAT es caracterizado por ser un problema
NP-Completo, el cual establece que el tiempo de ejecución para el algoritmo
encargado de resolverlo es exponencial en el número de clausulas de la fórmula
FNC.
Aplicaciones:
Las
aplicaciones del problema SAT son múltiples pues este es trabajado en diversos
campos; inicialmente es utilizado en los problemas NP-Completos como la
coloración de grafos, el problema del agente viajero, entre otros.
Como
ya fue mencionado el problema de la satisfactibilidad abarca aplicaciones en
múltiples campos algunos de ellos son:
·
Matemáticas:
En
el cual es aplicado para cierre de transitivos, detección de gráficos y
subgraficos isomorfos, el problema de autónomas homomorfos, búsqueda de arboles
de expansión, solución del problema del agente viajero, el problema de colorear
gráficos, criptología matemática y lógica aritmética.
·
Inteligencia
artificial y ciencias de la computación: En estos campos
trabaja diversos problemas como la inferencia extendida, la lógica de la
programación, la inferencia de sintetización de hipótesis, el mantenimiento
real, el problema de la restricción de la satisfacción, el procesamiento de
información semántica, redes de computadores neuronales, entre otros.
·
Robótica
y cibernética: El problema SAT es implementado en
estos campos para el problema empaquetado, el problema de visión, planes de
problemas de trabajos, entre otros.
·
Sistema
de base de Datos: En el cual se utiliza para las
operaciones con objetos, la optimización de preguntas, el mantenimiento de
bases de datos, la veracidad y credibilidad de mantenimiento, el control de
concurrencia, el sistema de base de datos distribuida, entre otros.
·
Gráficos
computarizados: Es aplicado en la construcción de
dibujos bidimensionales y tridimensionales de diversos objetos gráficos de
restricciones así como considerando las características geométricas de este
ultimo tipo de objetos.
·
Manufacturización
de ayuda computarizada: Utilizado en diseños de modelado
solido, en el diseño celular del sistema de manufacturización, para
programando, planes de trabajo, trabajos de configuración e identificación de
un objeto tridimensional.
·
Procesador
de textos: En el cual se encarga de la
identificación de caracteres ópticos, restringidos de modelos gráficos,
identificación de textos impresos o manuscritos y finalmente la corrección
automática de los errores encontrados en el texto.
·
Arquitectura
de computadores: Atribuido al diseño en el cual es
implementado en la optimización de grupos de instrucciones así como la de
controles de computadoras y de sistemas compiladores también en el diseño de
circuitos lógico-aritméticos, análisis de consistencias en el flujo de datos,
procesamiento paralelo y distribuido y asignaciones de módulos de datos.
·
Diseño
de circuitos integrados: Atribuido a la automatización en la
que abarca problemas como el modelado de circuitos, la asignación de estados,
minimización de estados, entrada y salida de información, particiones lógicas,
esquemas de circuitos y su correspondiente ubicación, minimización lógica,
asignaciones de pines, generación de pruebas y verificación, análisis de
interconexión, ruteo, compactación, optimización del desempeño, entre otros.
También
es aplicado en las redes de alta velocidad, las comunicaciones y en la
seguridad.
Métodos
de solución:
La
satisfactibilidad de una formula puede ser verificada de una manera
combinatoria; sin embargo, esto no es muy factible.
Gu,
Purdom, Franco y Wah se encargaron de presentar una perspectiva general de la
búsqueda de algoritmos, los cuales son clasificados según los valores de las
variables tratadas, diviendose así en discretos y continuos, que a su vez con
restringidos y no restringidos.
Los
algoritmos discretos restringidos tratan a una formula SAT como una instancia
de un problema de decisión restringido, para el cual se aplican procedimientos
de búsqueda discreta e inferencia con los que tratan el problema. En los
algoritmos restringidos el número de las clausulas no satisfechas son
formuladas como el valor de una función objetivo.
Los
algoritmos de programación restringida tienen como base el hecho de que una
formula con un número de clausulas no satisfechas puede trasladarse a
instancias de programación entera y ser solucionados posiblemente mediante el
uso de la relajación de la programación lineal.
Otras
formas de clasificación de los algoritmos para la solución son los métodos
completos y los métodos incompletos.
Métodos
completos: Estos métodos realizan una exploración
a través del espacio de búsqueda de todas y cada una de las interpretaciones
posibles con el fin de probar si una fórmula en FNC es satisfactible o
Insatisfactible.
En
estos métodos completos uno de los más representativos e implementado es el
método Davis y Putnam, el cual elimina una a una cada variable generando así
todos los posibles resolventes basados en las variables seleccionadas y
borrando todas las clausulas en las que esta variable aparece, generando así en
cada paso un subproblema con una variable menos, haciendo uso de la literal pura y la regla de la
clausula unitaria.
Procedimiento
de Davis – Putnam:
Este
método consiste en el uso repetitivo de cuatro reglas que permiten realizar la
comprobación de la insatisfactibilidad de un determinado conjunto de cláusulas.
Estas reglas permiten reducir la cantidad de clausulas hasta llegar al punto en
que se obtiene una fórmula que es válida (satisfactible) o que es
Insatisfactible y que tiene el mínimo numero de cláusulas.
A
continuación se dará explicación a cada una de estas reglas:
Estableciendo
a S como un conjunto de clausulas
generadas en el universo de Herbrand.
1.
Regla de la Tautología: Borra todas
las clausulas aterrizadas de S que
son tautologías, por lo tanto el resultando S’
es Insatisfactible si y solo si S lo
es.
2.
Regla de la Literal Unitaria: Al
existir una cláusula aterrizada unitaria l
en S, se obtiene S’ al borrar aquellas clausulas en S que contengan a l. En el caso en que S’
este vacio la fórmula será satisfactible por lo contrario se obtendrá un
conjunto S’’ al borrar l de S’’
y la formula será insatisfactible si y solo si S lo es.
3.
Regla de la Literal Pura: Una
literal l en una clausula aterrizada S, se dice que es puro en S, si y solo si la literal l no aparece en ninguna clausula
aterrizadas en S. En el caso en que
una literal l sea pura en S, debe proceder a borrarse todas las
clausulas aterrizadas que contengan a l. El
conjunto S’ resultante de esto será
satisfactible si y solo si S lo es.
4.
Regla de Expansión: Si el conjunto S puede ser opuesto en la forma (
donde
;
y R están libre de l y
l, entonces se obtienen
los conjuntos
y
, S será insatisfactible si y solo si (
es insatisfactible, esto significa que
también lo son.
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif)
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image004.gif)
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image006.gif)
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image008.gif)
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image010.gif)
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image012.gif)
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image014.gif)
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image016.gif)
Algoritmo David – Putnam:
0 function unit-resolve ( Γ: set of
clause) : set of cluse;
1 var L:
literal;
2 var C:
clause;
3 begin
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image017.gif)
5 begin
6 Γ := {C | L Ï C Î Γ};
![](file:///C:\Users\Lahu\AppData\Local\Temp\msohtmlclip1\01\clip_image018.gif)
8 end
9 return
( Γ )
10 end;
Resolvedores
(Algoritmos completos): Algunos otros
resolvedores presentes en esta categoría son:
•
Berkmin: Este
resolvedor se caracteriza por introducir nuevas ideas en lo que se refiere a la
toma de decisiones y en el manejo de la base de datos de las cláusulas. Para
ello crea un rango más amplio de clausulas las cuales se ven involucradas en el
conflicto que las que normalmente utilizan los demás resolvedores y las
organiza en una fila cronológicamente. Luego abandona la búsqueda actual para
eliminar de la base de datos una cláusula, para lo cual se basa no solo en el
tamaño (cantidad de literales en la fórmula)
si no también en la presencia de cláusulas en el conflicto y su
antigüedad.
Del
resolvedor Chaff toma la idea de reducir los conflictos producidos por las
anteriores clausulas, en el proceso de toma de decisiones y en el concepto de
reinicios que permite abandonar la búsqueda en un determinado momento para
reiniciarla en otro punto del espacio de búsqueda. Implementa una heurística
que determina cual asignación de la variable seleccionada deberá examinarse
primero.
•
Grasp: Este
es un algoritmo determinístico completo, el cual se basa en el esquema
David-Putnam. Este algoritmo incorpora varias técnicas para reducir el árbol de
búsqueda. Se caracteriza por implementar el manejo de BCP (Boolean Constraint
Propagation) mediante un grafo de implicaciones, aprendizaje de nuevas
clausulas y un backtracking no cronológico.
Algoritmo:
1. If (Decide (d) = =SUCCESS)
Return
SUCCESS;
2. while (TRUE) {
2.1. if
(Deduce (d) ¡= CONFLICT) {
if
(Search ( d + b
) = = SUCCESS)
return SUCCESS;
else if ( b
!= d ) Erase ( ); return CONFLICT; }
2.1. if
(Diagnose ( d , b
) = = CONFLICT)
Erase ( ); return CONFLICT; }
2.2.
Erase ( );
3.
fin
La
estructura de búsqueda para SAT consta de cuatro operaciones básicas: decide,
deduce, diagnostica y borra.
•
Decide: En este procedimiento el algoritmo permite seleccionar una asignación
encada estado del proceso de búsqueda.
•
Deduce: En este procedimiento se automatiza la regla BCP para lo que es
implementado un grafo de implicaciones. Ej. Para la cláusula w
= (x V ¬ y),
si Y = 1, entonces se tiene que x = 1. Además para una variable x que ocurra en
una cláusula, se asigna el valor 0 a todas las otras literales.
•
Diagnostica: En este procedimiento Grasp lo automatiza de la siguiente forma:
antes de que se presente el conflicto, analiza el grafo de implicaciones en el
nivel actual de decisión. Adiciona nuevas cláusulas que permiten la prevención
de la ocurrencia del mismo conflicto mediante aprendizaje para después regresar
al nivel que contiene la variable responsable del conflicto.
•Chaff:
Este
puede ser llamado como el padre de las nuevas generaciones de resolvedores.
Este resolvedor presenta como aporte central la optimización del BCP.
Chaff
implementa el algoritmo D&P, aumentado con reinicios, backtracking no
cronológico y aprendizaje dirigido por conflictos. Su esquema puede resumirse
en cindo procesos básicos:
1. Cada
variable en cada polaridad tiene un contador inicializado en 0
2. Cuando
una cláusula es adicionada a la base de datos, el contador asociado con cada
literal en la cláusula es incrementado.
3. La
variable y la polaridad con el contador mayor es seleccionada en cada nivel de
decisión.
4. Periódicamente
todos los contadores son divididos por una constante (por defecto 2).
El
resolvedor Chaff depuro los cuatro aspectos fundamentales de la búsqueda SAT
para hacerlo mucho más rápido, luego fue repetido y se realizo un balance.
Utiliza
principios de implementación lazzy en los que se demora el cómputo lo más
posible sin violar la semántica del algoritmo. Se selecciona el caso común más
rápido, aunque este viole los criterios de la semántica para los casos poco
frecuentes.
Finalmente
en el principio de BCP, se observa qué causa una implicación y cuándo puede
ocurrir. Cuando todas las literales de una clausula con asignadas a 0, menos
una, hay implicación. Para una clausula N, esta puede ocurrir solamente en una
N-1 asignaciones de tal modo que pueden ignorarse las primeras N-2
asignaciones, así solo se observaran dos literales de la clausula.
Métodos
incompletos: Este
tipo de métodos no tienen la capacidad de probar la insatisfactibilidad pero se
comportan muy bien al maximizar la cantidad de cláusulas satisfechas. En los
casos en los que el problema sea satisfactible logran probarlo más rápidamente
que algún método completo.
Resolvedores
(Algoritmos incompletos): En
este tipo de algoritmos si una solución es encontrada, la fórmula es declarada
como satisfactible y el algoritmo finaliza con éxito. Encaso contrario cuando
el algoritmo falla al encontrar la solución, no es posible sacar ninguna
conjetura. Entre los algoritmos más representativos se encuentran GSAT y
WalkSat.
•GSAT: Este resolvedor realiza una búsqueda
local para lograr satisfacer las asignaciones de un conjunto de cláusulas
proposicionales.
El
algoritmo inicia con una generación aleatoria de asignaciones de verdad. Luego
cambia la asignación de la variable que conlleva a un incremento en el total de
cláusulas satisfechas. Estos cambios (flips) se repiten hasta encontrarse una
satisfacción a la asignación o en el momento en el que se haya alcanzado un
número máximo de flips asignado.
Algoritmo:
Empieza
for i := to MAX-TRIES
T:= Una asignación de verdad
generada aleatoriamente
for j := 1 to MAX-FLIPS
if
T satisface a then return T
p .= una
variable proposicional tal que un cambio en esta asignación de verdad da lugar al mayor
incremento en el número total de cláusulas a que son satisfechas por T
T := T con la
asignación de verdad de p invertida.
end for
end for
return “no se encontró asignación satisfactoria”
end
El
resolvedor GSAT se caracteriza por la presencia de movimientos laterales,
también se caracteriza porque la variable cuya asignación es cambiada es
escogida aleatoriamente de entre aquellas que pudieran tener un comportamiento
similar.
•
WalkSat:
Este
algoritmo implementa la idea de aleatoriedad por pasos, suma restauraciones y
una heurística para escoger entre variables no satisfechas, para procedimientos
de semi-desición. Igualmente escoge una clausula insatisfecha al azar, y luego
coge una variable insatisfecha para invertir desde la clausula usando la
heurística aleatoria.
Algoritmo:
Procedimientto WalkSat( )
Para
i:= 1 a Max-tries
T:=
random( ); asignamiento aleatorio de verdad
Para j := 1 a Max-flips
Si T satisface entonces
retornar T
De lo contrario Tomar
una cláusula no satisfecha
V:= var en la
cláusula escogida o acordada aleatoriamente
T := T con
asignamiento de verdad para v invertido
Fin
Fin
Retornar
“no-satisfactible de acuerdo a la asignación”
WalkSat
inspecciona si las variables pueden ser cambiadas sin afectar ninguna otra
cláusula, entonces se debe seleccionar aleatoriamente una de ellas. En otro
caso, se procede de la siguiente manera: con probabilidadw,
se cambia una variable que modifique el menor número de cláusulas. Con
probabilidad 1 - w, se cambia una variable al azar.
Para
concluir el problema SAT o problema de la satisfactibilidad es realmente
importante para la solución de diversos problemas complejos que se presentan en
los diversos campos de la problemática humana, su definición en realidad es
compleja pero su función principal es la búsqueda de la satisfactibilidad de un
formula mediante la implementación de diversos tipos de resolvedores, ya sean
de métodos completos los cuales generan la búsqueda al máximo de la
satisfactibilidad o métodos incompletos
que posiblemente encontraran la satisfactibilidad de una formula, entre estos
tipos de métodos se encuentran diversos resolvedores que se encargan mediante
la implementación de diversas herramientas y la aplicación de algoritmos de
encontrar la satisfactibilidad mediante la secuencia de pasos ordenados y
concisos que garantizan un eficaz estudio de la formula.
Suscribirse a:
Entradas (Atom)