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.