{ }1,0

Anuncio
XXVII CONGRESO DE INVESTIGACIÓN CUAM-ACMOR
Recocido simulado para probar instancias 3-SAT
Avilez Avila, Erika; Lopez Toledo, Leticia Guadalupe; Hernández Ramírez, Sara Guadalupe; Reyes
Santamaría, Elena
Profesores asesores: José Manuel Pérez Leana
Escuela Secundaria General Núm. 5, “Lic. Adolfo López Mateos”
Área Ciencias Físico Matemáticas, Nivel Secundaria
Introducción
El problema de satisfactibilidad booleana (SAT) trata de encontrar, dada una función booleana, una
combinación de valores para sus variables que la hagan verdadera [1, 2]. El SAT es un ejemplo claro de
problemas NP completos [3], esto es, que no existe un método que lo resuelva en tiempo polinomial. Existen
muchos problemas que pueden ser formulados como SAT: lógica matemática, bases de datos, razonamiento
automatizado, inteligencia artificial, planeación, manufactura, arquitectura de computadoras, entre otros [2, 4,
5, 6]. Para formular un problema NP completo como SAT, se debe llevar la formula booleana a la forma
normal conjuntiva (CNF). Existen algunos algoritmos, completos e incompletos, que son usados para resolver
el problema SAT.
Debido a su relevancia teórica y práctica del problema SAT, en específico, los SAT3, han sido estudiados
extensivamente, y muchos algoritmos exactos y heurísticos han sido introducidos [7]. Los algoritmos exactos
tienen una complejidad exponencial pero permiten determinar si el problema es satisfactible o insatisfactible.
Por otro lado, los algoritmos heurísticos, pueden encontrar soluciones para las instancias satisfactibles pero
no garantizan una respuesta definitiva para todas las instancias [8].
SAT se basa en un conjunto de variables booleanas x1,  , xn y una fórmula booleana f : n   ,
B  0,1, la pregunta es si existe alguna asignación de valores x  x1 , , x n    n , tal que f x   1 .
Una instancia SAT es llamada satisfactible si existe tal x , de lo contrario es insatisfactible. La fórmula f
está en la FNC si f x   c1 x    cm x  , donde cada cláusula ci es una disyunción de literales, y una
literal es una variable o su negación. En la clase 3-SAT, cada cláusula contiene exactamente tres variables y
es considerado un problema NP-completo [1, 8].
La forma más simple de representar una solución candidata para SAT es una cadena de bits de longitud n ,
donde cada variable es asociada a un bit. En [9] presentan una formulación de SAT, donde el valor de
rendimiento (valor de la función objetivo a maximizar) es equivalente al número de cláusulas satisfechas,
donde c i x  representa el valor de verdad de la i-ésima cláusula.
f MAXSAT x   c1 x     c m x 
Recocido Simulado
El recocido es un proceso para metales [10]. El metal se calienta a una temperatura muy alta y se enfría
lentamente hasta obtener una estructura de cristal pura con un mínimo de energía de modo que el número de
irregularidades y fracturas sea mínimo.
En el proceso de búsqueda de la solución óptima, el recocido simulado acepta, no solo mejores soluciones,
soluciones deterioradas con base en un criterio aceptación aleatorio (criterio de metrópolis). La probabilidad
de aceptar soluciones deterioradas tiende a cero gradualmente, causando que un salto de un extremo local a
la solución óptima local. El recocido simulado puedes ser dividido en tres partes: el espacio de soluciones, la
función objetivo y la solución inicial.
Procedimiento de recocido simulado:
I. Generar la solución inicial aleatoriamente S i .
II. Iniciar la temperatura de recocido Ti .
III. Ejecutar para cada temperatura Tk :
1) Generar una nueva solución S j a partir de S i
 
 
2) Calcular la diferencia entre las funciones f Si  y f S j : f  f S j  f S i 
3) Tomar la nueva solución de acuerdo al criterio de Bolzmant.
IV. Reducir la temperatura de acuerdo a la función definida como: Tk 1  Tk , donde  es una
constante menor a 1.
Si el criterio de convergencia es alcanzado, el procedimiento de recocido termina. De lo contrario, regresa al
paso tres.
Objetivo
Demostrar que el algoritmo de recocido simulado puedo encontrar soluciones óptimas para un conjunto de
funciones lógicas en su forma normal conjuntiva.
Metodología
Para el desarrollo del programa se consideran instancias de la SATLIB, el programa Scilab y el proceso de
recocido simulado. La primera etapa para la creación del programa consideró la codificación del problema
SAT para el uso del recocido simulado, donde la función objetivo es maximizar el número de cláusulas
cumplidas hasta alcanzar el óptimo, evaluando un individuo que será alterado aleatoriamente (vector de
asignación de valores a las variables contempladas por la función lógica a evaluar).
La segunda etapa contempló el desarrollo del algoritmo de recocido simulado para resolver SAT. Para ello se
necesitó considerar la codificación realizada en la primera etapa y definir algunas características propias del
algoritmo: la temperatura inicial y final son calculadas a partir del máximo y mínimo deterioro de la función
objetivo, esto es, a que temperatura comienza la búsqueda de soluciones y en cual termina esa búsqueda; la
longitud de la cadena de Markov es definida como el número de variables involucradas en el problema
evaluado y tiene que ver con el número de veces que, dado un vector solución, el algoritmo buscará en la
vecindad; por último se definen la función y el factor de enfriamiento, estos están relacionados con la forma en
que disminuirá la temperatura (función) y con qué rapidez lo hará (factor).
Para una tercera etapa se desarrolla un lector de instancias SAT para poder leerlas desde nuestro programa y
buscar la solución que satisface las funciones elegidas de la SATLIB. Se realizaron pruebas con problemas
que incluían hasta 150 variables.
Resultados
El rendimiento de nuestro algoritmo fue comparado con un algoritmo de búsqueda exhaustiva, que quiere
decir, un algoritmo completo que revisa todas las combinaciones posibles con el fin de encontrar alguna que
satisfaga la función objetivo.
Análisis de resultados y conclusión
Como ya se mencionó, el tiempo es el factor principal para el análisis de nuestro resultados en comparación
con otro algoritmo, sin embargo, también se consideró el número de veces en las que nuestro algoritmo llegó
a una solución óptima. Las pruebas de nuestro programa se realizaron en treinta ocasiones para satisfacer el
requerimiento estadístico mínimo.
Los resultados demostraron que al menos entre un algoritmo heurístico incompleto y uno completo, el primero
tiene bondades que superan al segundo, ya que el tiempo de búsqueda de la solución en el primero es muy
pequeño en comparación con el segundo. En cuanto a recursos de cómputo se refiere, el segundo es más
demandante en cuanto el problema crece. El objetivo de este proyecto se demostró con el algoritmo de
recocido simulado encontrando soluciones óptimas en el problema de satisfactibilidad. Resolver problemas de
satisfactibilidad resulta importante ya que la mayoría de los problemas matemáticos pueden reformularse
como SAT.
Referencias
[1] M. R. Garey and D. S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness.
San Francisco, CA: Freeman, 1979.
[2] Kamath, A.P.,Karmarkar, N.K., Ramakrishnan, K.G., Resende, M.G.C., A continuos approach to inductive
inference. Mathematical Programming 57, 215-298.
[3] NP Completeness, 373 Spring 2003, January 21, lecture 01. 2003.
[4] Kautz, H.A., Selman, B. Planning as satisfiability. Proc. of European Conf. on Artificial Intelligence (ECAI
92), 1992.
[5] J. Hartmanis, “On computational complexity and the nature of computer science,” Commun. ACM, vol. 37,
pp. 37–43, 1994.
[6] W. G. Schneeweiss, Boolean Functions With Engineering Applications and Computer Programs. Berlin,
Germany: Springer-Verlag, 1989.
[7] Battiti, R. and Protasi, M. Approximate algorithms and heuristics for MAX-SAT. In Du, D.-Z. and Pardalos,
P., editors, Handbook of Combinatorial Optimization, pages 77–148, Kluwer, Boston, Massachusetts. 1998.
[8] Gottlieb, Jens. 2002. Evolutionary Algorithms for the Satisfiability Problem. Evolutionary Computation.
Volume 10, number 1.
[9] De Jong, K. and Spears, W.. Using genetic algorithms to solve NP-complete problems. In Schaffer, J. D.,
editor, Proceedings of the Third International Conference on Genetic Algorithms, pages 124–132, Morgan
Kaufmann, San Mateo, California. 1989.
[10] Kirkpatrick S., Gelatt C.D. and Vecci M.P. 1983. Optimization by simulated annealing, Science, New
Series, Vol. 220, No. 4598, pp. 671-680.
Descargar