Está en la página 1de 104

C ENTRO DE I NVESTIGACI ON Y DE E STUDIOS AVANZADOS DEL I NSTITUTO P OLIT E CNICO NACIONAL

Unidad Zacatenco Departamento de Computaci n o Demostraci n autom tica en paralelo en ambientes o a MPI, de memoria compartida y de tipo heterog neo e Tesis que presenta Renato Zacapala Zacapala para obtener el Grado de Maestro en Ciencias en la Especialidad de Ingeniera El ctrica e Opci n o Computaci n o Director de la Tesis: Dr. Guillermo Morales Luna
M xico, D.F. e Mayo 2007

A mis padres; y a todos cuantos hicieron posible este momento.

Agradecimientos
Al Consejo Nacional de Ciencia y Tecnologa por la beca otorgada, subven ci n necesaria para la realizaci n de este posgrado. o o A la Biblioteca de Ingeniera El ctrica por haber proporcionado sus materiales e de consulta durante el transcurso de la maestra. A mi asesor el Dr. Guillermo Morales Luna, por dedicarme un poco de su preciado tiempo, tiempo durante el cual me orient y brindo parte de su conocimiento o que a la larga hicieron posible la nalizaci n de esta tesis. o Quiero dar gracias tambi n al Dr. Jos Oscar Olmedo Aguirre y al Dr. Sergio e e Vctor Chapa Vergara por sus valiosos comentarios durante la revisi n del docu o mento de tesis. A Sofa Reza Cruz por su apoyo en la realizaci n de todos aquellos tr mi o a tes administrativos que se realizaron durante mi estancia, pero sobre todo por la actitud que siempre tuvo con todos nosotros. Al personal de la Biblioteca de Ingeniera El ctrica por su ayuda para encon e trar aquellos libros y artculos que componen parte de este documento Y nalmente, pero no por eso menos importante, a todos los amigos que tuve la fortuna de conocer y que hicieron m s amena la estada en el Centro. a

Resumen
La demostraci n autom tica de teoremas consiste de m todos algortmicos o a e para lograr demostraciones por medio de una computadora. La dicultad para resolver un problema puede depender del tipo de l gica que se utilice, en nuestro cao so, al utilizar la L gica Proposicional el problema es decidible pero NP-completo. o Por lo que para resolverlos solo existen algoritmos directos de tiempo exponencial en el peor caso. De ah la importancia de disminuir el tiempo de ejecuci n de o cualquier implementaci n. o La satisfactibilidad proposicional (SAT) es un problema importante en las ciencias de la computaci n debido a que la mayora de las veces es m s eciente o a pasar un problema a SAT y resolverlo con alguno de los programas existentes, que desarrollar una versi n particular para dicho problema. Recientemente ha sio do muy importante para una amplia gama de aplicaciones practicas las cuales incluyen el dise o, sntesis y vericaci n de circuitos integrados, optimizaci n de n o o FPGA, inteligencia articial y planicaci n de tareas. Una de las principales aplio caciones que han motivado un nuevo auge de los resolvedores de satisfactibilidad ha sido la vericaci n de circuitos integrados, dando como resultado un desarrollo o acelerado de nuevos dise os. n En este trabajo presentamos diversas implementaciones del algoritmo de DavisPutnam, que permiten la experimentaci n con el algoritmo por medio de la modio caci n de las variables que inuyen directamente en su desempe o. Las versiones o n paralelas se desarrollaron con pThreads y MPI, con el n de obtener una eciencia mejor que la versi n secuencial al valernos de la utilizaci n de varios procesadoo o res. Con las implementaciones en paralelo se experimentaron diversas estrategias de selecci n de cl usulas y literales para hacer m s eciente el algoritmo. o a a

VII

Abstract
The automatic demonstration of theorems consists of algorithmic methods to construct or to localize demonstrations. The difculty to solve a problem can depend on the kind of logic that is utilized. In our case, when the problem use Logic Propositional, it is decidible but NP-complete. There are direct algorithms but they solve the SAT problem on exponential time. So we can see the importance to decrease the run time of any implementation. The propositional satisability ( SAT ) is an important problem in computer sciences because most of the time it is more efcient to solve the problem with a SAT solver, that to develop a particular version for the aforementioned problem. The propositional satisability problem has been very important for an ample range of practical applications which include the design, synthesis and verication of chips, FPGAs optimization, articial intelligence and planning of tasks. One of the principal applications that have motivated a new prosperity of SAT solvers has been the verication of chips, giving as a result a rapid development of new designs. We presented a parallel version of Davis Putnams algorithm, in order to have an algorithm with more efciency than the sequential version. We develop several strategies of selection of clauses and literals to do the algorithm more efcient.

IX

Indice general
Agradecimientos Resumen Abstract Indice de guras Indice de cuadros Indice de algoritmos Lista de abreviaturas Pre mbulo a 1. Introducci n o 1.1. Conceptos preliminares . . . . 1.2. El problema SAT . . . . . . . 1.2.1. Variaciones de SAT . . 1.2.2. Descripci n general . o 1.3. Situaci n actual . . . . . . . . o 1.4. Importancia de las aplicaciones
V VII IX XVI XVII XIX XXI XXIII

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

1 2 4 6 8 9 10 13 15 19 21 24

2. Algoritmo de Davis-Putnam 2.1. Algoritmo secuencial . . . . . . . . . . . . 2.1.1. Reglas de reducci n . . . . . . . . o 2.1.2. Procedimiento general del algoritmo 2.2. Algoritmo paralelo . . . . . . . . . . . . .
XI

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

XII

INDICE GENERAL 2.2.1. Elementos de paralelizaci n . . . . . . . . . . . . . . . . o 27 31 33 36 36 37 39 39 40 41 42 43 43 49 49 49 51 51 53 53 54 55 57 59 60 61 63 64 65 69 70

3. Tratamiento computacional 3.1. An lisis de las instancias . . . . . . . . . . . . . . . . . . . . a 3.2. Preprocesamiento . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. Ordenamiento est tico de variables . . . . . . . . . . a 3.2.2. Ordenamiento din mico de variables . . . . . . . . . . a 3.3. Versi n secuencial . . . . . . . . . . . . . . . . . . . . . . . o 3.4. Versi n utilizando hilos . . . . . . . . . . . . . . . . . . . . . o 3.5. Versi n con MPI . . . . . . . . . . . . . . . . . . . . . . . . o 3.6. Estrategias de soluci n . . . . . . . . . . . . . . . . . . . . . o 3.7. Divisi n del arbol de b squeda . . . . . . . . . . . . . . . . . o u 3.8. M todos de selecci n de variables . . . . . . . . . . . . . . . e o 3.9. Paralelizaci n por b squeda en orden de variables predenidas o u 4. Caractersticas del sistema 4.1. Representaci n de la entrada . . . . . . . o 4.1.1. Formato CNF . . . . . . . . . . . 4.2. Uso del sistema . . . . . . . . . . . . . . 4.2.1. Modulo de selecci n de variables o 4.3. Estructura de datos . . . . . . . . . . . . 4.3.1. Representaci n matricial . . . . . o 4.3.2. Representaci n por cl usulas . . . o a 4.3.3. Representaci n por literales . . . o 4.4. Otras representaciones . . . . . . . . . . 5. Resultados 5.1. Resultados de la versi n secuencial . . . . o 5.2. Resultados de la versi n de hilos . . . . . o 5.3. Resultados de la versi n de MPI . . . . . o 5.4. An lisis de resultados . . . . . . . . . . . a 5.5. Comparaci n con otras implementaciones o

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

6. Conclusiones y trabajo futuro 6.1. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE GENERAL A. Uso del sistema A.1. Secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2. Hilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3. MPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliografa

XIII

71 71 72 73 78

Indice de guras
2.1. 2.2. 2.3. 2.4. 2.5. 2.6. Diagrama de actividades del algoritmo secuencial recursivo Diagrama de actividades del algoritmo secuencial iterativo Reducci n de la instancia . . . . . . . . . . . . . . . . . . o Aplicaci n de las reglas de reducci n . . . . . . . . . . . o o Paralelizaci n 1 . . . . . . . . . . . . . . . . . . . . . . . o Paralelizaci n 2 . . . . . . . . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . 22 23 24 26 28 29

3.1. Relaci n entre cl usulas y variables, y el porcentaje de satisfactio a bilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Proporci n entre cl usulas y variables y su relaci n con el n mero o a o u de recursiones del algoritmo . . . . . . . . . . . . . . . . . . . . 3.3. Ordenamiento est tico de variables . . . . . . . . . . . . . . . . . a 3.4. Ordenamiento por modicaci n de MOMS. . . . . . . . . . . . . o 3.5. Arbol de b squeda . . . . . . . . . . . . . . . . . . . . . . . . . u 3.6. Ordenamiento din mico de variables . . . . . . . . . . . . . . . . a 3.7. Esquema de asignaci n de tareas . . . . . . . . . . . . . . . . . . o 3.8. Esquema de paralelizaci n . . . . . . . . . . . . . . . . . . . . . o 3.9. M todos de selecci n de variables . . . . . . . . . . . . . . . . . e o 3.10. Llamadas recursivas . . . . . . . . . . . . . . . . . . . . . . . . . 3.11. Llamadas recursivas 2 . . . . . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. M todos de selecci n de variables e o Representaci n matricial . . . . . o Representaci n por cl usulas . . . o a Representaci n por variables . . . o
XV

35 35 37 37 38 38 40 41 43 46 47 52 54 55 56

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

XVI

INDICE DE FIGURAS

5.1. Resultados de una de las primeras versiones del algoritmo secuencial recursivo usando diferentes heursticas de selecci n de varia o bles con archivos de 75 variables y 375 cl usulas, todas ellas ina satisfactibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Comparaci n de nuestro programa con Satzs utilizando archivos o de pruebas con 75 variables y 375 cl usulas, todas ellas insatisa factibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3. Comparaci n de la versi n secuencial con la versi n con hilos. . . o o o 5.4. Comparaci n de nuestro programa con Satzs utilizando archivos o de pruebas con 100 variables y 430 cl usulas, todas ellas insatisa factibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5. Resultados de las diferentes versiones, despu s de hacer ajustes, e usando como pruebas archivos de 75 variables y 375 cl usulas, a todas ellas insatisfactibles. . . . . . . . . . . . . . . . . . . . . . 5.6. Comparaci n de nuestro programa con Satzs utilizando archivos o de pruebas con 150 variables y 520 cl usulas, todas ellas satisfaca tibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7. Resultados usando el m todo MOMS para selecci n de variables e o utilizando 2 hilos con una instancia de 20 variables. . . . . . . . .

59

60 61

62

63

64 65

Indice de cuadros
2.1. Reglas de reducci n. . . . . . . . . . . . . . . . . . . . . . . . . o 3.1. Proporciones de instancias aleatorias balanceadas k-SAT . . . . . 4.1. Representaci n de las cl usulas en el formato CNF. . . . . . . . . o a 5.1. Comparaci n con otras implementaciones . . . . . . . . . . . . . o A.1. Opciones de la versi n secuencial . . . . . . . . . . . . . . . . . o A.2. Opciones de la versi n con hilos . . . . . . . . . . . . . . . . . . o A.3. Opciones de la versi n en MPI . . . . . . . . . . . . . . . . . . . o 19 34 51 66 71 72 73

XVII

Indice de algoritmos
1. 2. 3. 4. 5. Algoritmo de Davis-Putnam . . . . . . . . . . . . Algoritmo recursivo de Davis-Logemann-Loveland Algoritmo iterativo de Davis-Logemann-Loveland Propagaci n unitaria . . . . . . . . . . . . . . . . o Funci n de reducci n . . . . . . . . . . . . . . . . o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 15 16 17 18

XIX

Lista de abreviaturas

Abreviatura CNF DIMACS DLL DP DPLL k-CNF LAM MAMS MAXO MOMS MPI PThreads SAT SUP UP

Signicado Conjunctive Normal Form (Forma Normal Conjuntiva) Center for Discrete Mathematics & Theoretical Computer Science (Centro de Matem ticas Discretas y Teora de la Computaci n) a o Davis-Logemann-Loveland Davis-Putnam Davis-Putnam-Logemann-Loveland F rmula en CNF con un m ximo de k variables por cl usula o a a Local Area Multicomputer MAXO + MOMS (una combinaci n de los dos m todos) o e Maximum Occurrences (M ximo n mero de apariciones para una a u variable) Maximum Occurrences in Minimum Size Clauses (M ximo n mero de a u apariciones de una variable en cl usulas de menor tama o) a n Message Passing Interface (Interfaz de paso de mensajes) POSIX Threads (Un conjunto de funciones y procedimientos escritos en C est ndar, que permiten la ejecuci n de hilos) a o Satisfactibilidad Selective Unit Propagation (Propagaci n unitaria selectiva) o Unit Propagation (Propagaci n unitaria) o

XXI

Pre mbulo a
Objetivos
Se trata de desarrollar un algoritmo paralelo de Davis-Putnam para minimizar el tiempo de ejecuci n con respecto a la versi n secuencial e implementarlo en o o una plataforma MPI. 1. Disminuir el tiempo de ejecuci n con respecto a la versi n secuencial. o o 2. Tener una eciencia aceptable. 3. Elegir un m todo de selecci n de atomos eciente. e o 4. Minimizar el intercambio de datos entre los procesadores para evitar una sobrecarga de comunicaciones.

Descripci n general o
El problema consiste en elaborar un programa que tome como entrada un archivo de texto con una f rmula booleana representada en forma normal conjuntiva o si es satisfactible y NO en caso contrario. y que regrese SI, Nos planteamos elaborar un programa que reciba como entrada una f rmula o booleana dada en forma normal conjuntiva desde un archivo de texto y que res ponda con un ((S cuando esta sea satisfactible y con un ((NO)) cuando no lo sea. I)), Al basarnos en el algoritmos de Davis-Putnam se pretende al igual que este, el programa sea nito, en el peor caso con complejidad exponencial en tiempo con respecto al n mero de variables. u Los archivos de entrada corresponder n a instancias generadas de forma aleaa toria y a un conjunto de pruebas patr n o de referencia existentes que se han o utilizado para probar otros demostradores.
XXIII

XXIV

PREAMBULO

Existe una gran cantidad de problemas que han sido modelados y que sirven como pruebas patr n entre los programas para resolver problemas de SAT, y dio chas instancias en formato CNF se han convertido en un est ndar de comparaci n. a o Se utiliza el modelo de programaci n Maestro-Esclavo, la ejecuci n comienza o o con el proceso maestro y este es el responsable de leer el archivo de entrada con la instancia del problema en forma normal conjuntiva. En este modelo el maestro es el que controla a los procesos esclavos. El proceso maestro llevar a cabo las funa ciones de control, como es inicio de los procesos esclavo, supervisi n del estado o de los esclavos. Uno de los problemas a resolver es el determinar la afectaci n del intercambio o de datos como resultado de las comunicaciones. En un momento dado puede ser m s costoso el tiempo de transmisi n de datos que el de procesamiento. a o La paralelizaci n se realiza dividiendo el problema en subproblemas, de esta o manera se crear n varios arboles de b squeda, los cuales ser n asignados a distina u a tos procesadores. A su vez cada arbol podr crear otros dos procesos durante la a paralelizaci n de la regla de bifurcaci n. o o Al nal se pretende probar la versi n paralela en una plataforma MPI, en dos o ambientes distintos, uno utilizando equipos con memoria compartida y otro utilizando un ambiente heterog neo con una conexi n mediante una red de comunie o caciones. De esta forma se analizar que tanto inuye y afecta el intercambio de a datos entre los procesadores.

Tareas
Las tareas realizadas en la tesis se encuentran en la lista que se muestra a continuaci n. o 1. Implementaci n del algoritmo de Davis-Putnam para un procesador (vero si n secuencial del algoritmo en forma recursiva e iterativa). o a) Implementaci n de la regla de bifurcaci n. o o b) Implementaci n de heursticas de selecci n de atomos. o o c) Ejecuci n de pruebas y an lisis los resultados obtenidos. o a 2. Implementaci n del algoritmo de Davis-Putnam para varios procesadores o en un ambiente de memoria compartida usando hilos (pThreads). a) Paralelizaci n la regla de bifurcaci n. o o

PREAMBULO b) Paralelizaci n la selecci n de atomos. o o

XXV

c) Ejecuci n de pruebas y analisis de los resultados obtenidos: Las prueo bas se realizar n con instancias creadas articialmente(de manera aleaa toria) y con benchmarks existentes. d) Descripci n de los resultados. o 3. Migraci n de la versi n de pThreads a MPI. o o

Motivaci n o
Uno de los principales motivos ha sido el crear una plataforma de experimentaci n, con la cual se puedan probar f cilmente nuevos m todos de selecci n de o a e o variables en paralelo, que trabajen de manera conjunta para encontrar la soluci n o de la instancia dada. El algoritmo de Davis y Putnam para c mputo paralelo y distribuido ha sido o poco explorado para el problema de SAT. Desde la d cada de los 90, el inter s por el problema SAT se vio acrecentado, e e debido a los m ltiples problemas en donde SAT tiene en una inmensa cantidad de u aplicaciones, como en el area de dise o de circuitos, base de datos, optimizaci n, n o b squeda de k-soluciones, etc tera. u e

Descripci n del documento o


Capitulo 1 Se presentar n los conceptos que se usar n durante el documento; se a a presenta un panorama general de la demostraci n autom tica de teoremas, o a el problema de la satisfactibilidad; hasta llegar al estado del arte en los solucionadores del SAT, adem s se muestran las deniciones y smbolos que a se usar n en el presente documento. a Capitulo 2 Se explica a detalle el algoritmo de Davis-Putnam y el usado para resolver el problema del SAT (DPLL). Capitulo 3 se explica la forma en que se abordo el problema en cada una de las versiones, desde la versi n secuencial hasta la versi n en MPI, pasando por o o la versi n de hilos. o

XXVI

PREAMBULO

Capitulo 4 Se describen las estructuras de datos usadas, las tres formas en que se representan las instancias dentro del algoritmo. Capitulo 5 Se presentan los resultados obtenidos adem s de su an lisis y la coma a paraci n con otras implementaciones. o Capitulo 6 se encuentran las conclusiones, adem s de los temas futuros que puea den abordarse para seguir con esta tesis. Ap ndice A Se presenta es un esbozo del manual de usuario de cada una de las e versiones del algoritmo de Davis-Putnam, desde la versi n secuencial, hasta o las versiones paralelas.

Captulo 1 Introducci n o
La demostraci n autom tica se remonta a los orgenes de la l gica misma o a o con el uso de las primeras notaciones matem ticas formales en el siglo XVI y a adquiri una gran importancia con la aparici n de los resultados de Herbrand, o o G del y Church. o En el siglo XIII se presenta el primer intento de utilizar el razonamiento autom tico aplicado a la l gica aristot lica, por Ram n Llull (tambi n conocido a o e o e e como Raimundo Lulio) en su Ars Generalis Ultima [23], conocida tambi n como Ars Magna. Este consisti en un dispositivo mec nico que facilitaba el manejo de o a sistemas l gicos, orientado principalmente a la teologa, con el dispositivo preo tenda dar respuesta a lo que el llamaba las verdades universales. Posteriormente, aparecieron la m quina aritm tica de Pascal y la m quina analtica de Babbage. a e a Durante la Revoluci n Industrial, el conde de Stanhope (1753-1816) invent una o o m quina para resolver silogismos de la l gica tradicional, W. Jevons invent el a o o piano l gico y en 1882 surgi la m quina de Marquarnd. En la d cada de los o o a e cincuenta del siglo XX, con la aparici n de las primeras computadoras, se deso arrollaron los primeros programas de demostraci n autom tica. o a En 1960 Gilmore, Prawitz y posteriormente Martin Davis y Hilary Putnam lograron procedimientos de demostraci n para el c lculo de predicados con base en o a el teorema de Herbrand. Sus m todos consistan, esencialmente, en ir obteniendo e de manera progresiva instancias de las cl usulas iniciales usando los t rminos del a e universo de Herbrand para ellas. Desde un inicio, el algoritmo de Davis-Putnam-Longemann-Loveland (DPLL) ha sido uno de los m s utilizados para resolver instancias de SAT. Las soluciones a a los problemas pr cticos, sin embargo, seguan siendo difciles de alcanzar. Invesa tigaciones recientes han aportado nuevos algoritmos con los cuales ha sido posible 1

CAPITULO 1. INTRODUCCION

resolver instancias de problemas pr cticos intratables anteriormente. Sin embargo a la mayora de dichos algoritmos est n basados en un enfoque de b squeda local. a u Con el aumento en la velocidad de las comunicaciones, ha sido posible desarrollar aplicaciones paralelas que resuelvan el problema de la satisfactibilidad con algoritmos completos en un tiempo razonable, aprovechando el c mputo pao ralelo que se da por la interconexi n de las computadoras. A n con aplicaciones o u paralelas y los avances signicativos en la tecnologa, existen numerosos proble mas que no se pueden resolver. Algunos de ellos son generados articialmente, pero otros problemas difciles son propios de aplicaciones de la vida real. Por la importancia de los resultados en las pruebas de satisfactibilidad se ha creado un conjunto de patrones para probar la ecacia de los programas resolvedores de SAT. Uno de los benchmarks m s utilizados son los del Center for a Discrete Mathematics & Theoretical Computer Science (DIMACS). Actualmente el desarrollo de la ciencia y la tecnologa no s lo busca una solu o ci n, sino la mejor soluci n dado un problema denido. Nos encontramos entono o ces, ante un problema de optimizaci n. o Uno de los principales factores que afectan la eciencia en los resolvedores de satisfactibilidad tiene que ver con el m todo de asignaci n de variables para e o la navegaci n por el espacio de b squeda. A n con un buen m todo, muchos o u u e problemas requieren computacionalmente mucho tiempo para resolverse. Recientemente ha habido toda una variedad de esfuerzos para paralelizar la selecci n de atomos, es decir, f rmulas sin conectivos l gicos y as obtener una o o o reducci n en tiempo de c mputo. La mayora de los m todos disponibles mano o e tienen una base de datos de las soluciones parciales obtenidas durante el proceso de b squeda. La actualizaci n y mantenimiento de dicha base de datos se conoce u o como ((aprendizaje)).

1.1.

Conceptos preliminares

La mayora de los conceptos que se usar n a lo largo de la tesis se encuentra a en la siguiente lista, los que no se encuentren se denir n conforme se vayan a utilizando. Denici n 1 (Literal). Una literal l es una variable booleana xi o su negaci n o o xi .

1.1. CONCEPTOS PRELIMINARES

Denici n 2 (Cl usula). Es la disyunci nseparaci n por el conectivo l gico o o a o o o () de distintas variables booleanas(literales), ya sean positivas o negativas.

Denici n 3 (Instancia). Es una f rmula booleana formada por un conjunto de o o cl usulas unidas por el conectivo l gico y (). a o A continuaci n se muestra una lista de los smbolos y notaci n usada en la o o tesis. o es una f rmula booleana en forma normal conjuntiva (CNF). o representa que el conjunto de cl usulas que integran a esta vaco. a k es el n mero de literales por cl usula en una instancia k-CNF o el m ximo u a a n mero de literales en una instancia CNF. u l es una literal. m es el n mero de cl usulas en . u a n es el n mero de variables en . u C es una cl usula o un conjunto de cl usulas. a a A es un conjunto de variables al que se le ha asignado un valor (literales) cuyo tama o puede variar desde 1 hasta n, que al ser aplicados a pern miten saber si esta es satisfactible o no. representa una cl usula vaca, esto es, sin literales en ella. a Ci es cl usula n mero i. a u |Ci | es el n mero de literales en la cl usula Ci . u a Las variables booleanas existentes en son representadas como x1 , x2 , . . . , xn |xi | es el n mero de veces que la variable xi aparece en . u Cp es el conjunto de cl usulas que contienen a p en . a

CAPITULO 1. INTRODUCCION Cp es el conjunto de cl usulas que contienen a p en . a Cp es el conjunto de cl usulas que no contienen a p ni a p a Cp es el conjunto Cp en donde han sido eliminadas todas las apariciones de p. Cp es el conjunto Cp en donde han sido eliminadas todas las apariciones de p. C(p) es la uni n de Cp y Cp . o C(p) es la uni n de Cp y Cp . o

1.2.

El problema SAT

El problema de la satisfactibilidad booleana trata de un problema donde se desea saber si una expresi n booleana en forma normal conjuntiva (FNC) tiene o asociada una asignaci n de valores para sus variables que hace que la expresi n o o sea verdadera. Los componentes de un problema SAT son tres: Un conjunto de n variables: x1 , x2 , ..., xn1 , xn Un conjunto de literales. Una literal es una variable (l = x) o una negaci n o de una variable (l = x). Un conjunto m de distintas cl usulas: C1 , C2 , ..., Cm1 , Cm Cada cl usula a a consiste de solo literales combinadas unicamente por conectivos l gicas. o Para resolver este tipo de problemas existen dos tipos de m todos, los complee tos y los incompletos. A pesar de su antig edad, el m todo de Davis-Putnam sigue siendo uno de u e los m s completos procedimientos para satisfactibilidad. El m todo original fue a e basado en una regla de resoluci n que elimina las variables de una en una y a ade o n todos los posibles resolventes al conjunto de cl usulas. a Desafortunadamente, este m todo requiere en general un espacio de b squeda e u exponencial con respecto al n mero de variables. Davis, Logemann, y Loveland, u reemplazaron la regla de resoluci n con una regla de partici n que divide el proo o blema en dos peque os subproblemas (Davis, Logemann, Loveland, 1962). n

1.2. EL PROBLEMA SAT

No existe un algoritmo conocido que garantice la soluci n de alg n problema o u de este tipo en un tiempo polinomial con respecto al n mero de variables, exepto u para el problema 2-SAT. Las investigaciones de SAT consideran los problemas en la Forma Normal Conjuntiva FNC, o CNF por sus siglas en ingl s. Una f rmula est en CNF si es e o a una conjunci n de cl usulas; una cl usula es una disyunci n de literales, donde o a a o una literal es una variable booleana negada o no negada. Una f rmula P est en forma normal conjuntiva si tiene la forma o a C1 C2 C3 . . . Ci . . . Cm1 Cm siendo m 1 y cada Ci es una disyunci n de literales o l1 l2 l3 . . . li . . . ln1 ln Una cl usula que contiene solo una literal es llamada cl usula unitaria. Una a a cl usula que no contiene literales es llamada la cl usula vaca y es interpretada a a como falso. Pueden establecerse restricciones en el tama o de las cl usulas del n a problema. La Satisfactibilidad es expresada con variables discretas, pero algunos algoritmos hacen sus c lculos con variables continuas. Esto dene el eje horizontal a discreto-continuo en el espacio. Satisfactibilidad tiene un conjunto de restricciones que deben de ser satisfechas exactamente, pero algunos procedimientos consideran cambios en los valores variables de la cl usulas que no satisfacen las restricciones. Esto dene el eje a vertical. Muchos algoritmos SAT son secuenciales, mientras que algunos han sido implementados en paralelo. El problema de la satisfactibilidad proposicional es un ejemplo cl sico de a un problema NP-Completofue el primer problema que se demostr ser NPo Completo, se sabe que cualquier problema NP-Completo es transformado a un problema SAT en tiempo polinomial, de ah se puede entender la importancia que tendra el resolver el problema SAT en tiempo polinomial. Si un problema es NP-completo, puede ser trasladado a SAT usando una codicaci n cuyo tama o es limitado polinomialmente. Las investigaciones anteriores o n han demostrado este enfoque es muy efectivo en la pr ctica. a Durante los ultimos a os se han realizado diferentes investigaciones con el n n de encontrar un algoritmo para resolver el problema de manera eciente; aun cuando se ha reducido el tiempo considerablemente con respecto a las versiones

CAPITULO 1. INTRODUCCION

iniciales, todava siguen siendo intratables computacionalmente una buena canti dad de problemas. Por tal motivo se ha recurrido a realizar algoritmos paralelos, con el n de encontrar la soluci n en un tiempo menor que su contraparte secuencial y de volo ver tratables cierto tipo de problemas. Aunque esto tambi n tiene un limite, dado e que el problema es exponencial llega el momento en que las versiones paralelas sucumben ante el problema a resolver.

1.2.1.

Variaciones de SAT

El problema SAT que consiste en encontrar una asignaci n de valores que o satisfagan la f rmula, si es que tal asignaci n existe, esto es, Dada: o o Una f rmula booleana de n variables o y m cl usulas. a se debe encontrar: Una asignaci n de valores que satisfaga la f rmula booleana, esto es que al o o evaluar la asignaci n en la f rmula esta sea verdadera. o o La prueba de que la f rmula no tiene soluci n. o o Se dice que una instancia , de un problema de satisfactibilidad proposicional, es satisfactible si existe una asignaci n de valores A : V {0, 1}, tal que A o satisface cada C , donde C es una cl usula. a Sin embargo existen muchas otras variantes, algunas de las m s conocidas se a mencionan a continuaci n. o Decisi n SAT : Existe alguna asignaci n que satisfaga la f rmula?. Para o o o contestar esta pregunta se debe analizar la instancia hasta encontrar una asignaci n valida, en el peor caso se recorrer toda la instancia sin encontrar o a una asignaci n valida. o #SAT : Encontrar el n mero de asignaciones que satisfacen la f rmula. u o MAJ-SAT : Trata de vericar si la mayora de las asignaciones satisfacen la f rmula. o

1.2. EL PROBLEMA SAT

MAX-SAT : Encontrar una asignaci n que maximice el n mero de cl usuo u a las satisfechas o lo que es lo mismo, que minimice el n mero de cl usulas u a insatisfechas. En este problema la asignaci n de variables que da soluci n o o al problema es precisamente aquella que satisface a toda la f rmula. o Todas las versiones de SAT anteriores son NP-Completas, ya que todas tratan de encontrar al menos una asignaci n de variables satisfaga la f rmula, al igual o o que el SAT simple, eso es suciente para que el problema sea NP-Completo, puesto que si la instancia es insatisfactible, cada versi n tendra que comprobar todas o las asignaciones posibles para probar vericar su objetivo. Algoritmos completos Los algoritmos completos para resolver el problema de la satisfactibilidad proposicional caen en dos principales categoras: b squeda en backtrack (el procedi u o miento de Davis-Logemann-Loveland [11]) y resoluci n (el algoritmo original de Davis-Putnam[12] y y resoluci n direccional[4]). o El algoritmo de b squeda en backtrack puede ser visto como una forma ordeu nada de descubrir el orden de asignaci n de las variables. o Exploran todo el espacio de b squeda u Si existe una asignaci n que satisfaga la instancia, esta ser encontrada o a Si no se encuentra, la instancia es insatisfactible Algoritmos incompletos Por lo regular los algoritmos incompletos solo son usados en instancias que se sabe son satisfactibles, en las cuales solo es necesario saber cuales son los valores que la satisfacen. No exploran todo el espacio de b squeda u Si existe una asignaci n que satisfaga la instancia, esta puede ser encontrada o Si no se encuentra, la instancia puede o no ser insatisfactible La ventaja de estos algoritmos es su rapidez, misma que se obtiene a base de sacricar la certeza de saber si un resultado es insatisfactible, en caso de que sea as. En este tipo de algoritmos solo se puede estar seguro del resultado si este es satisfactible.

CAPITULO 1. INTRODUCCION

1.2.2.

Descripci n general o

Como ya se mencion anteriormente, los algoritmos de satisfactibilidad pueo den dividirse en dos clases: algoritmos completos y algoritmos incompletos. La mayora de los algoritmos completos est n basados en el procedimiento de Davis a Putnam, mientras que los algoritmos incompletos m s utilizados son algoritmos a de b squeda local. u Los algoritmos completos realizan una b squeda a trav s del espacio de todas u e las posibles interpretaciones para probar que la f rmula es satisfactible (buscando o una interpretaci n que satisfaga la f rmula) o insatisfactible (habiendo explorado o o todo el espacio de b squeda, no se encuentra ninguna interpretaci n que satisfaga u o la f rmula). o Los algoritmos de b squeda local no exploran, en general, todo el espacio de u b squeda. Empiezan generando una interpretaci n de forma aleatoria e intentan u o encontrar alguna interpretaci n que satisfaga la f rmula cambiando, en cada paso o o del algoritmo, el valor que tenga asignado una variable proposicional. Tales cambios se repiten hasta que se encuentra una interpretaci n que satiso faga la f rmula o bien hasta que se realiza un n mero de cambios prejado. Todo o u este proceso se repite hasta que se encuentre una soluci n o hasta que se realice o un cierto n mero de intentos. u La principal diferencia entre los distintos algoritmos que se han implementado radica en la forma de seleccionar la variable a la que se cambia el valor de verdad. Una dicultad que presentan los algoritmos de b squeda local es que pueden u quedar atrapados en mnimos locales, otra es que son incompletos y pueden fra casar en probar que una f rmula es insatisfactible: si encuentran una soluci n, la o o f rmula es satisfactible y el algoritmo termina, pero si el algoritmo termina sin o encontrar una soluci n, no se puede concluir si la f rmula es satisfactible o insao o tisfactible. Al nal una f rmula solo puede tener dos resultados posibles, bien es o insatisfactible o satisfactible con esto ultima opci n incluso puede darse el caso o de ser una tautologa, cuando el resultado es siempre satisfactible no importando que valor tomen cada una de las variables que integran la f rmula. o A1 = A2 = . . . {l1,1 , l1,2 , . . . , l1,n } {l2,1 , l2,2 , . . . , l2,n } ...

A2n = {l2n ,1 , l2n ,2 , . . . , l2n ,n } Cuando el algoritmo DPLL termina y encuentra una asignaci n de valores que o satisfacen la f rmula, generalmente |A| < n, lo que quiere decir que no todas las o

1.3. SITUACION ACTUAL

variables fueron instanciadas. Eso quiere decir que la instancia es satisfacitble no importando el valor que contengan las variables que no fueron instanciadas. Podemos obtener otras asignaciones que hagan a satisfacible al asignarles valores a las variables que no fueron instanciadas. Con la asignaci n de valores A que satisface a o A = {l1 , l2 , . . . , lb , . . . , ln } Si |A| < n entonces b = |A| y d = n b, con lo que se tienen d variables que no fueron instanciadas, y entonces podemos obtener 2d asignaciones que tambi n e satisfacen a .

1.3.

Situaci n actual o

Existen pocas versiones paralelas en comparaci n con las secuenciales, adem s o a la mayora de las versiones paralelas no son creadas ex profeso, sino que son mo dicaciones de alguna versi n secuencial. o Como ejemplo de lo dicho anteriormente, se tienen a SATO y PSATO; Satz y Parallel Satz. Otras tantas veces, podra decirse que la mayora, se toman ideas de otros programas como es el caso de PaSAT [32], que toma algunas ideas de Zhang y Silva-Sakallah. De las versiones paralelas, la mayora utilizan conjun tos de funciones para el lenguaje C, que permiten la ejecuci n de los programas o en varias m quinas, como lo son MPI y PVM. a En menor proporci n encontramos versiones que utilizan PThreads, por la exio gencia de equipos con memoria compartida y su consiguiente desventaja num rie ca. Existen tambi n versiones distribuidas que se ejecutan en mallas, de todas es la e que tiene m s posibilidades de ejecutarse en un gran n mero de equipos y por lo a u tanto tiene un mayor poder de computo, sin embargo es la menos utilizada de todas. Y aun en menor medida est n los programas desarrollados utilizando sockets a como medio de comunicaci n entre procesos. o Algunos programas paralelos utilizan t cnicas complejas de aprendizaje, lo e cual es muy costoso en t rminos de comunicaciones, ya que al estar los procesae dores trabajando en diferentes partes del espacio de b squeda es necesario comu partir informaci n. En algunos casos se limita el n mero de procesadores a s lo o u o unos pocos, para reducir costos en comunicaciones, tal como procede PaSAT. Por otra parte, el tiempo de ejecuci n de los resolvedores de satisfactibilidad o dependen en gran medida del problema por resolver, a n teniendo la misma cantiu

10

CAPITULO 1. INTRODUCCION

dad de variables y cl usulas, algunos pueden resolverse r pidamente y otros tardar a a un tiempo considerable. Es difcil partir el espacio de b squeda para asignarlo a los distintos procesa u dores, por es motivo es m s com n el uso de resolvedores de SAT secuenciales. a u GrADSAT es un resolvedor de satisfactibilidad que est basado en zChaff, el a cual fue desarrollado por Sharad Malik en la Universidad de Princeton. zChaff es resolvedor completo, como tal garantiza encontrar una instancia de satisfatibilidad si el problema es satisfactible o probar que el problema es insatisfactible. La paralelizaci n que realiza GrADSAT al problema es por medio de la dio visi n del problema en subproblemas, idea que se tomara para nuestra versi n o o paralela. De esta forma se evita tener una gran cantidad de comunicaciones, ca da procesador tiene su propio arbol de b squeda y solamente se comunica con el u proceso maestro para averiguar si una parte del arbol ya ha sido resuelto por otro proceso.

1.4.

Importancia de las aplicaciones

La importancia de SAT radica en la gran cantidad de problemas que pueden ser resueltos con el, dentro de sus muchas aplicaciones, se pueden mencionar las siguientes: L gica El problema de satisfacci n restringido, el problema n-reinas, inferencia o o extendida, programaci n l gica, inferencia abductiva para sintetizar mezo o clas de hip tesis, procesamiento sem ntico de informaci n, crucigramas, o a o Coloreado de gr cas, detectar grafos y subgrafos isom rcos, criptologa a o matem tica, el problema del homomorsmo aut mata, encontrar arboles de a o expansi n y viajes Euler en un grafo, resoluci n del problema del vendedor o o viajero, y l gica aritm tica.. o e Ciencias Computacionales Criptoaritm tica, redes neuronales, planeaci n de tae o reas, conguraci n de tareas, procesamiento paralelo y distribuido. o Ingeniera de software Vericaci n de programas, correcci n autom tica de erro o o a res, optimizaci n de compiladores, optimizaci n de conjuntos de instruccioo o nes, sistemas de tiempo real. Rob tica Problema de visi n vinculada, problema de empaques y problemas de o o planeaci n de tareas y trayectorias. o

1.4. IMPORTANCIA DE LAS APLICACIONES

11

Bases de datos Operaciones de objetos, consistencia, mantenimiento, vericaci n de redundancia, respuesta a b squedas, optimizaci n de b squedas, o u o u control de concurrencia, sistemas de bases de datos distribuidas, mantenimiento de verdad, problema de homomorsmo relacional y organizaci n o del conocimiento y reconocimiento de sistemas. Vericaci n de circuitos Dise o autom tico de circuitos integrados, modelado o n a de circuitos, minimizaciones l gicas, asignaciones de estados, minimizao ci n de estados, sntesis de circuitos asncronos, codicaci n de entradas o o y salidas para m quinas secuenciales, particiones l gicas, an lisis de ina o a terconexi n, optimizaci n del desempe o, generaci n de pruebas, dise o o o n o n aritm tico de circuitos l gicos. e o Demostraci n autom tica Prueba de teoremas. o a En este capitulo se present una breve explicaci n del concepto de SAT, sus o o requerimientos y la clasicaci n de los algoritmos de SAT, as como algunas de o sus aplicaciones, tanto te ricas como pr cticas. Tambi n se revisaron las clases o a e b sicas de algoritmos SAT. a

Captulo 2 Algoritmo de Davis-Putnam


El m todo de Davis-Logemann-Loveland o Davis-Putnam-Logemann-Loveland, e mejor conocido como Davis-Putnam es el algoritmo completo m s usado para rea solver el problema de satisfactibilidad. El nombre del algoritmo vara debido a los nombres de los artculos en los que se describen originalmente, el algorit mo de Davis-Logemann-Loveland (DLL)debe su nombre a que esta basado en el articulo A machine program for theorem-proving[11] escrito por los tres autores mencionado, pero dicho articulo esta basado en su mayora por el articulo previo A Computing Procedure for Quantication Theory, escrito por Davis-Putnam(DP), por lo que suele llamarsele as tambi n. En otros artculos se les da cr dito a los e e cuatro autores por lo que tambi n se le conoce como Davis-Putnam-Logemanne Loveland (DPLL). Es un algoritmo que utiliza un enfoque de backtracking para resolver el problema. El algoritmo de Davis-Putnam se puede describir recursivamente de la manera siguiente: primero se verica si una f rmula F es satisfactible1 (si no o 2 a tiene cl usulas) o es insatisfactible (cuando contiene una cl usula vaca) y en a ambos casos el algoritmo termina. En caso contrario, se selecciona una literal li (una variable o su complemento) y se aplica el algoritmo de b squeda en foru ma recursiva para encontrar una asignaci n de variables que satisfaga la f rmula o o F li = 0, que se obtiene al hacer cero todas las variables li en F (li = 0 en F ). Si se encuentra,entonces se tiene una asignaci n para F . Si no se encuentra, se o repite la b squeda ahora asignando a li el valor de 1 (li = 1 en F ). Si ninguna de u las b squedas encuentra una asignaci n que satisfaga a la f rmula F , entonces se u o o
1 2

Termino aunque en menor medida tambi n conocido como consistente[12]. e Termino tambi n conocido como inconsistente. e

13

14

CAPITULO 2. ALGORITMO DE DAVIS-PUTNAM

dice que F es no satisfactible.

Denici n 4. Un algoritmo de demostraci n de teoremas es l gicamente compleo o o to si puede siempre probar la insatisfactibilidad de una f rmula siempre que esta o as lo sea.

Si C es un conjunto insatisfactible de cl usulas, al aplicar el algoritmo con C a y alguna variable x, las instancias obtenidas C(x) y C(x) tambi n son insatise factibles. Dado que el n mero de variables en C(x) y C(x) es menor que el que u existe en C, en alg n momento se encontrar la cl usula vaca o se encontrar la u a a a f rmula vaca, por lo que el algoritmo es completo[7]. o
Entrada: Una instancia F en forma normal conjuntiva. Salida: Si la instancia es satisfactible regresar TRUE y en caso de ser insatisfactible FALSE Algoritmo:DPsat begin if F contiene una cl usula vaca then a return FALSE; end if F est vaco then a return TRUE; end if existe una literal pura L en F then return DPsat(DPreducir(F , L)); end if existe una literal unitaria L en F then return DPsat(DPreducir(F , L)); end L seleccionarVar(F ); return DPsat(DPreducir((F L) (F L)),O \ {L}); end Algoritmo 1: Algoritmo de Davis-Putnam

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

2.1. ALGORITMO SECUENCIAL

15

2.1.

Algoritmo secuencial

El siguiente es el algoritmo recursivo de Davis-Logemann-Loveland para resolver el problema de la satisfactibilidad proposicional:


Entrada: Una instancia F en forma normal conjuntiva y una asignaci n parcial de o variables P Salida: Si la instancia es satisfactible regresar TRUE y en caso de ser insatisfactible FALSE Algoritmo:DPLLsat begin if F est vaco then a /* Satisfactible */ return TRUE; end if F contiene una cl usula vaca then a /* Insatisfactible */ return FALSE; end if existe una literal pura L en F then return DPLLsat(DPLLreducir(F , L), P L); end if existe una literal unitaria L en F then return DPLLsat(DPLLreducir(F , L), P L); end PU(F, P); L seleccionarVar(F ); if DPLLsat(DPLLreducir(F , L), P L) then return TRUE; else return DPLLsat(DPLLreducir(F , L), P L); end end Algoritmo 2: Algoritmo recursivo de Davis-Logemann-Loveland

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

En el Algoritmo 2, cuando F es satisfactible adem s de regresar T RU E como a respuesta, se asigna el contenido de la asignaci n parcial P con la que se satiso face la f rmula a la asignaci n global de variables A para su futura ordenaci n y o o o manejo de las variables que no fueron instanciadas.

16

CAPITULO 2. ALGORITMO DE DAVIS-PUTNAM


Entrada: Una instancia F en forma normal conjuntiva, una asignaci n parcial de o variables P y un contador de variables Q Salida: Si F es satisfactible regresar TRUE, en caso contrario FALSE Algoritmo:DPLLiter begin i 0, E[i] 0; while i 0 do PU (Fi ,Pi ); if Fi contiene una cl usula vaca then a i i 1; continue; if Fi est vaco then return TRUE ; a if E[i] = 0 then if no hay variables en Qi then i i 1; continue; else L seleccionarVar(Fi ); E[i] 1; if E[i] = 1 then valor T RU E; if E[i] = 2 then valor F ALSE; if E[i] = 3 then i i 1; continue; if (E[i] = 1) || (E[i] = 2) then E[i] E[i] + 1; if valor = T RU E then Pi Pi L; DPLLreducir(Fi , L); else Pi Pi L; DPLLreducir(Fi , L); E[i + 1] 0; i i + 1; return FALSE; end Algoritmo 3: Algoritmo iterativo de Davis-Logemann-Loveland

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

/* Insatisfactible */ /* Satisfactible */

2.1. ALGORITMO SECUENCIAL


Entrada: Una instancia F en forma normal conjuntiva, una lista de asignaciones parciales P Salida: La instancia equisatisfactiblea resultado de las modicaciones Algoritmo:PU begin while exista una cl usula c C a n insatisfecha que contiene como m ximo a u a una literal l que no exista en P do if cada literal en c ya tiene un valor asignado en P then return error; else l = la variable en c que todava no ha sido asignada a P ; asignar l a P tal que la cl usula c quede satisfecha; DPLLreducir(F ,l) a end return P ; end end Algoritmo 4: Propagaci n unitaria o
a

17

1 2 3

4 5 6 7 8 9 10 11

L gicamente equivalente. o

Con el Algoritmo 3 iterativo, es posible agregar en un futuro backtracking no cronol gico o backjumping o reinicios. Adem s permite mantener un control de o a las instancias que se van generando en cada nivel del arbol de b squeda y con un u manejo de memoria m s eciente que su contraparte iterativa. a El algoritmo iterativo recibe como entrada una instancia F en forma normal conjuntiva, una asignaci n parcial de variables P y un contador de variables Q. o Una vez que se recibe (F, P, Q), cada cambio que se realice en un nivel i del arbol de b squeda se almacena en un conjunto de cada uno de ellos (Fi , Pi , Qi ). El nivel u i del arbol puede ir desde 1 hasta n. Cada nivel contiene un estado asociado Ei , el cual puede tener 4 valores {0, 1, 2, 3}. Cada estado indica la operaci n que se o realizara en cada nivel cuando este sea recorrido o se realice el backtrack. Si Ei = 0 signica que el nivel i aun no tiene una literal asignada y hay que seleccionar una; en caso de que Ei = 0 y no haya variables por seleccionar, se realiza un retroceso en el arbol(backtrack). Si Ei = 1 signica que la reducci n se realizara o con la literal escogida L y si Ei = 2 con su negaci n L. Por ultimo, si Ei = o 3 signica que ya se procesaron ambas literales L y L si haber encontrado la satisfactibilidad, por lo que se retrocede un nivel en el arbol i = i 1.

18

CAPITULO 2. ALGORITMO DE DAVIS-PUTNAM


Entrada: Una instancia F en forma normal conjuntiva y una variable V Salida: La instancia equisatisfactible resultado de las modicaciones Algoritmo:DPLLreducir begin foreach cl usula C en F do a if A est en C y V[A]=TRUE o A est en C y V[A]=FALSE then a a eliminar C en F; end if A est en C y V[A]=FALSE then a eliminar A en C; end a if (A est en C y V[A]=TRUE) then eliminar A en C; end return F; end end Algoritmo 5: Funci n de reducci n o o

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Una instancia est vaca cuando no se encuentra ninguna cl usula dentro de a a ella; una cl usula est vaca cuando no tiene literales. a a Una literal pura es aquella que no tiene negaci n dentro de una instancia dada. o A la cl usula que contiene una sola literal se le llama cl usula unitaria, por lo a a anterior se le llama literal unitaria a esa unica literal que se encuentra dentro de una cl usula. a Cuando se habla de reducci n, nos estamos reriendo a la aplicaci n de cada o o una de las reglas a una instancia dada. Como se puede notar el algoritmo es naturalmente paralelizable, se puede aprovechar la regla de bifurcaci n para realizar el procesamiento en paralelo. Dio vidiendo el espacio de b squeda, al asignar distintas ramas a los procesos, se u consigue reducir el tiempo total de c mputo. o El algoritmo 1 tiene la desventaja de que al aumentar el n mero de variables u de igual forma se incrementa el uso de memoria para manejar las instancias en cada nivel al realizarse una bifurcaci n. o

2.1. ALGORITMO SECUENCIAL Descripci n o Frecuente utilizaci n despu s de la eliminao e ci n de literales. o Literal pura Suele omitirse debido a la poca frecuencia de apariciones. Literal positiva-negativa Es muy poco frecuente en los primeros nive les del arbol de b squeda. u
Cuadro 2.1: Reglas de reducci n. o

19

Regla Cl usulas unitarias a

2.1.1.

Reglas de reducci n o

Las siguientes reglas son las descritas en el artculo de Davis-Logemann Loveland [11], tienen la funci n de disminuir el tama o de la instancia en cada o n aplicaci n. De todas ellas, la regla de la literal pura puede omitirse para mejorar o el desempe o, ya que se ha demostrado que el tiempo que el algoritmo tarda en n buscarla, por lo general es mayor que el tiempo que utilizaran las otras dos reglas en manejarla. Adem s de que es muy poco probable encontrar una variable pura a en determinados momentos de la ejecuci n del algoritmo. o Eliminaci n de las cl usulas unitarias o a Una cl usula es unitaria si contiene una sola literal en ella. Esta regla contiene a a su vez varios incisos, cada uno de los cuales se aplican seg n concuerde con la u regla. 1. Si una f rmula F contiene una cl usula unitaria con una literal l y tamo a bi n contiene otra cl usula unitaria con entonces termina la ejecuci n del e a l, o programa con resultado insatisfactible dado que F se contradice. 2. Si se encuentra una cl usula unitaria con l entonces se eliminan todas las a l a cl usulas en donde aparezca la literal armada3 y se elimina de las cl usua las restantes. De la forma anterior obtenemos una f rmula F equisatisfactio ble tambi n conocida como f rmula l gicamente equivalente, es decir, e o o que F es insatisfactible si y solo si F lo es tambi n. e
A una aparici n de l sin una barra de negaci n se le llama ocurrencia armativa y a una con o o barra de negaci n se le llama ocurrencia negativa[12]. o
3

20

CAPITULO 2. ALGORITMO DE DAVIS-PUTNAM 3. De igual manera que el inciso anterior, si se encuentra una cl usula unitaria a entonces se eliminan todas las cl usulas en donde aparezca la literal con l a en este caso negada y se elimina l de las cl usulas restantes, quedando la a f rmula l gicamente equivalente F , que es consistente o inconsistente si y o o solo si F lo es tambi n respectivamente. e

A la aplicaci n sucesiva de los incisos de esta regla se le llama propagaci n o o unitaria. Literal pura Esta regla se puede omitir dado que alguna otra puede atrapar la literal pura, y generalmente con menor costo computacional. Esto es debido a que la literal pura se busca exhaustivamente en cada nivel y generalmente no se encuentra. Una literal pura es aquella que solo aparece una sola vez en la f rmula, si o se encuentra alguna literal pura l se elimina la cl usula en donde aparece y a a tambi n a su negaci n l en las cl usulas restantes. e o Literal positiva-negativa Si una literal l aparece en una f rmula F solo en forma positiva o si l aparece o solo en forma negativa, todas las cl usulas que contengan a l deben ser a borradas. El resultado es una f rmula F que es satisfactible si y solo si F o lo es tambi n y viceversa. e Eliminaci n de literales o Tambi n conocida como la regla de bifurcaci n, se aplica en caso de que la e o instancia no es afectada por ninguna de las reglas anteriores. Si siempre se diera el caso de que la instancia no es modicada por las reglas anteriores, el algoritmo sera como una versi n m s compleja de las tablas de verdad. A diferencia de o a las otra reglas, en esta no se tiene un m todo especico para elegir la variable a e eliminar. Se han desarrollado varias heursticas para la bifurcaci n: o Seleccionar literales con el m ximo n mero de ocurrencias. a u Seleccionar literales con el m ximo n mero de ocurrencias en las cl usulas a u a peque as. n

2.1. ALGORITMO SECUENCIAL

21

Seleccionar literales que causen el mayor n mero de propagaciones unitau rias. Seleccionar las literales aleatoriamente O hasta simplemente seleccionar las literales en forma consecutiva, aunque no con muy buenos resultados en la practica.

2.1.2.

Procedimiento general del algoritmo

De igual manera el procedimiento para la utilizaci n de las reglas de reducci n o o est descrito en articulo de Davis-Logemann-Loveland [11]. a Paso 1. Aplicar la regla para eliminar las cl usulas unitarias (Regla 1) a la instana cia si es que la instancia contiene una cl usula con una sola literal, y seguir a aplicando la misma regla a la f rmula hasta que no existan cl usulas unio a tarias en ella. Al ciclo anterior de la aplicaci n sucesiva de la regla 1 se le o llama propagaci n unitaria. Si despu s de la propagaci n unitaria se tiene o e o como resultado una f rmula vaca, entonces la f rmula es satisfactible. Por o o el contrario si el resultado despu s de la propagaci n unitaria es una f rmue o o la a n con cl usulas estas ya con m s de una literal, entonces se aplica u a a la regla 2. Paso 2. Aplicar la regla de la literal positiva-negativa (Regla 2) a la f rmula resulo tante del paso 1 o a la f rmula inicial en caso de que no se aplique la regla 1, o a menos que cada una de las variables que aparezcan en la f rmula est n en o e forma positiva y negativa. Si como resultado obtenemos una cl usula unia taria, entonces regresamos al paso 1. Por el contrario si existe otra literal que aparezca solo armada o negada entonces volver a aplicar este paso 2. Si como resultado tenemos una f rmula vaca, la instancia es satisfactible. o Hasta este punto, si la f rmula todava contiene cl usulas con m s de una o a a literal en ellas y si cada una de las literales aparece en forma tanto positiva como negativa, entonces ir al paso 3. Paso 3. A la f rmula que resulto despu s de haber aplicado las reglas anteriores o e hay que aplicar alguno de las m todos de selecci n de literales para obtener e o una. Despu s de esto se le aplicar la regla 3 a la f rmula por separado, e a o con la literal elegida y a la misma literal negada. De esta forma se realiza la bifurcaci n de la ejecuci n que posteriormente se aprovechar para la o o a

22

CAPITULO 2. ALGORITMO DE DAVIS-PUTNAM versi n paralela. Si despu s de aplicar este paso con las dos literales o e alguna de las f rmulas est vaca (no contiene cl usulas) entonces la instano a a cia es satisfactible.

Despues del paso 3 continuar aplicando las reglas 1, 2 y 3; hasta que se obtenga un resultado satisfactible de alguna de las reglas. Al nal, si se llega a la regla 3 y se da el caso de que ya no existan m s literales por escoger, entonces la instancia a es insatisfactible.
2 H F =C=?E 
5

K  EJ=HE=
L=? =

5
+ L=? =



2 H F =C=?E 
H A @ K ? EH 

5
L=? =

K  EJ=HE=
2 H F =C=?E 
H A @ K ? EH 


7 2 2


+ L=? =

K  EJ=HE=
L=? =


7  2


+ L=? =

H A @ K ? EH 

  > K I? = H8 .  5) 6 6 47 -

2
7 2


2

5) 6 6 47 -

  > K I? = H8 . 

5) 6 6 47   > K I? = H8 . 

H A @ K ? EH 
5) 6 .) 5-


5) 6 .) 5-

H A @ K ? EH 



5) 6 .) 5-

H A @ K ? EH 



,2
,2

,2

5
5) 6 

5
5) 6 

5
5) 6 




H A @ K ? EH  




H A @ K ? EH 



H A @ K ? EH 



,2

,2

,2

Figura 2.1: Diagrama de actividades del algoritmo secuencial recursivo

2.1. ALGORITMO SECUENCIAL

23

E  - E 

E2 E  2 7 

E 2 E

E  E  

5
+ L=? =

 5
E L=? =

 
- E  

5
D = O L = H E= > A I A 3 E



5
  > K I ? = H 8 . E - E  

5) 6 6 47 -


- E  

5
- E - E  H A @ K ? EH  E  


- E 

5
- E - E  H A @ K ? EH  E   

5
- E  !


- E     E  E  

E  

5) 6 .) 5-

Figura 2.2: Diagrama de actividades del algoritmo secuencial iterativo

24

CAPITULO 2. ALGORITMO DE DAVIS-PUTNAM

2.2.

Algoritmo paralelo

La paralelizaci n inicial est basada en la bifurcaci n del algoritmo de Daviso a o Putnam, en la cual se divide la instancia en dos partes. En cada parte se efect a la u reducci n con la variable escogida. o La paralelizaci n tambi n est basada en el procesamiento de la instancia orio e a ginal con diferentes variables en cada proceso. Conforme se desarrollen m s y mejores heursticas de soluci n de SAT, podr n a o a resolverse problemas de satisfactibilidad m s complejos, encontrando m s areas a a de aplicaci n. o

Figura 2.3: Reducci n de la instancia o

Si es un conjunto de cl usulas C y l es una literal, denimos: a + = {c |l aparece en c} l Son las cl usulas de donde aparece l. a l = {c | aparece en c} l Son las cl usulas de donde aparece a l. 0 = {c |l, no aparece en c} l l Son las cl usulas de donde no aparece l ni a l.

2.2. ALGORITMO PARALELO

25

+ 0 0 0 0 x Xn(x) = n mero de ocurrencias de x en u En cada nivel se pregunta si se satisface la f rmula equisatisfactible, mientras o no se satisfaga se continua con un nuevo nivel del arbol de b squeda, para todas u las variables 1 , 2 , 3 , ..., n . En caso de que terminemos con las variables y la instancia no encuentra una asignaci n de valores v lidos se considera que la o a f rmula es insatisfactible. o La instancia es satisfactible cuando |0 | = 0 para la literal o bien |0 + | = 0 para la literal = {c { }| + = {c {}| c } c + }

En la Figura 2.4 se ilustra la forma en que es reducida una instancia, se tiene como entrada una instancia , a la que inicialmente se le aplica la regla de reducci n n mero III, para eso se selecciona una literal por medio de alguna heurstio u ca. Cuando se aplica la regla III, la literal escogida es asignada a un conjunto de asignaciones parciales y la instancia queda reducida en tama o y te ricamente n o tambi n reducida en complejidad. La regla III se aplica a la literal y a su negae ci n , con lo que se obtienen dos instancia equisatisfactibles (1 = {} o y 2 = {}), esto es si la instancia original es satisfactible as tambi n e lo ser n las dos instancias resultantes. Las dem s reglas de reducci n se aplican a a o a recursivamente4 a cada una de las instancias para reducir aun m s el problema. En la gura 2.4 si es insatisfactible, tambi n ser n insatisfactibles 1 y 2 , e a pero si es satisfactible no es posible saber el resultado de 1 y 2 a menos que alguno de ellos no contenga cl usulasen cuyo caso el algoritmo habr terminaa a do. Cuando 1 y 2 contengan ambos la cl usula vaca el algoritmo termina a con la insatisfactibilidad como respuesta. pueden ser o bien ambos satisfactibles o bien solo uno de ellos. Si solo alguna de las instancias resultantes 1 o 2 contie ne la cl usula vaca , esta deja de procesarse y solo se continua con la instancia a restante. Por ultimo si alguna de las f rmulas 1 o 2 tienen un conjunto vaco de o cl usulas el algoritmo termina dado que la f rmula es satisfactible. a o
4

Propagaci n unitaria(PU). o

26

CAPITULO 2. ALGORITMO DE DAVIS-PUTNAM

Figura 2.4: Aplicaci n de las reglas de reducci n o o

2.2. ALGORITMO PARALELO

27

2.2.1.

Elementos de paralelizaci n o

El primer intento de paralelizaci n se realiz como se ilustra en la Figura 2.5, o o que no es m s que la ejecuci n en paralelo del mismo algoritmo secuencial recura o sivo con la misma instancia para todos los procesos hijo, unicamente vara la heurstica que utilizaran cada uno de ellos. No es una forma eciente, pero de esa forma se puede probar que heurstica tiene un mejor desempe o y el tiempo total n no puede ser mayor que el de la versi n secuencial. o o La paralelizaci n posterior, que se muestra en la Figura 2.6, us otro enfoque, o en el que se divide el espacio de b squeda entre los procesos que se ejecutaran en u paralelo. Para ello primero la instancia que se recibe, es dividida en n instancias diferentes, para cada uno de los n procesos que se ejecutar n en paralelo. La a divisi n se realiza usando el algoritmo secuencial recursivo que usa las reglas o de reducci n sobre la instancia y a medida que va avanzando por los niveles del o arbol de b squeda va generando las instancias equisatisfactibles que tienen menor u complejidad que . Para la ejecuci n en 2 procesadores con ese enfoque, si tiene n variables, se o pueden tener hasta 2n posibles asignaciones, por lo que dividir el arbol en 2 sera 2n 2n = 1 = 2n1 2 2 esto es eliminar una variable n-1 y para eliminar una variable la tenemos que instanciar, por lo que si se usan 2 procesos cada uno de los procesos recibir una a instancia con un conjunto de cl usulas C en donde la variable x1 ha sido instana ciada 1 = C(x1 ) y 2 = C(x1 ). Una vez que se tienen a 1 y 2 , estos se envan a los procesos hijo que con tinuaran con la ejecuci n del algoritmo DPLL, si se usa el algoritmo iterativo se o tiene la ventaja de que con algunas modicaciones acepte alguna de las t cnicas e mas recientes como la de backtracking no cronol gico o reinicios del algoritmo. o Si bien a 1 y 2 1 y 2 les faltan las mismas variables por asignar, no signica que terminaran al mismo tiempo, la dicultad de una de las ramas puede ser mucho mayor que la otra, por lo que si la rama asignada a uno de los procesos hijo termina F ALSE como resultado, el proceso padre pedir al otro proceso que a regrese la instancia que esta procesando junto con su asignaci n parcial de variao bles, para que se vuelva a dividir el arbol con la nalidad de que un procesador quede ocioso. Finalmente esta la paralelizaci n usando la heurstica de selecci n de variao o bles, que se reere a la utilizaci n de una misma heurstica para todos los proo

28

CAPITULO 2. ALGORITMO DE DAVIS-PUTNAM

cesos hijo, pero la b squeda se hace en paralelo, al igual que la versi n anterior u o e o mostrada en la Figura 2.6 tambi n se realiza la divisi n de la instancia de entrada, y se asignan a cada uno de los procesos hijo, en donde ahora cuando se necesite utilizar la regla de bifurcaci n, primero se verica si alguno de los procesos ya o realiz la b squeda de una variable para dicho nivel, en cuyo caso solo se realiza o u la reducci n con dicha literal, en caso de que ning n proceso lo haya hecho, este o u realiza la b squeda de una literal y la almacena en la lista global. Con esto se u pretende reducir el tiempo usado en la b squeda de variables, uno de los factores u m s importantes que inuyen en el tiempo total de c mputo del algoritmo. a o

Figura 2.5: Paralelizaci n 1 o

2.2. ALGORITMO PARALELO

29

Figura 2.6: Paralelizaci n 2 o

Captulo 3 Tratamiento computacional


En a os recientes los solucionadores del SAT han tenido grandes mejoras. n Dicho progreso ha permitido desarrollar y resolver muchas instancias, que hasta hace poco eran computacionalmente intratables. La satisfactibilidad proposicional es un problema NP-completo bien conocido, de importancia te rica y practica, con amplias aplicaciones en muchos campos de o las ciencias de la computaci n e ingenieras, como son la inteligencia articial y o dise o electr nico por poner un ejemplo. n o Los programas para resolver el problema de la satisfactibilidad incorporan t cnicas complejas para reducir el espacio de b squeda y para dirigirla. Algunos e u ejemplos de estrategias para la b squeda son la b squeda weak-commitment, el u u reinicio de la b squeda y el backtracking aleatorio. u Recientemente se han desarrollado t cnicas avanzadas para los algoritmos del e SAT que utilizan backtracking, que han logrado grandes mejoras, y han mostrado cuan importante son para resolver instancias difciles de SAT obtenidas de aplica ciones del mundo real. Desde un punto de vista practico, los algoritmos m s ecaces son los coma pletos, adem s de que son capaces de probar lo que los algoritmos locales no a consiguen, la insatisfactibilidad. Esto puede ser muy importante, sobre todo si no se conoce con anticipaci n si una instancia es satisfactible o no. o Sin embargo, est ampliamente aceptado que la b squeda local puede a mea u nudo tener claras ventajas con respecto a la b squeda en backtrack, dado que le u est permitido reiniciar la b squeda desde cualquier punto cada vez que queda a u atrapado en una soluci n optima local. o Esta ventaja de los algoritmos de b squeda local ha motivado el estudio de u enfoques para hacer m s exible las condiciones de retroceso en algoritmo de a 31

32

CAPITULO 3. TRATAMIENTO COMPUTACIONAL

backtracking. La idea central es que sin restricciones elegir el punto hasta el que se realizar el retroceso, para evitar el recorrido hasta el punto en que se pretende a regresar. Adem s, uno puede pensar en combinar diferentes formas para hacer reglas a m s exibles para elegir el punto al cual retroceder. a El que un algoritmo sea completo no quiere decir que muestre todas las solu ciones en caso de que esta sea satisfactible, sino que en caso de que la instancia no tenga soluci n debe probar que la f rmula es insatisfactible, a diferencia de o o los algoritmos incompletos que solo pueden garantizar la satisfactibilidad de una instancia. Se dice que una cl usula est satisfecha si al menos una de sus literales tiene a a 1 como valor, e insatisfecha si todas sus literales tienen valores de 0; y en en caso de que aun no se hayan asignado valores a las variables en dicha cl usula, esta aun a est por resolver o en estado irresoluto. a Las literales a las que no se les ha asignado un valor de verdad son conocidas como literales libres. Una f rmula se dice estar satisfecha cuando todas sus o cl usulas han sido satisfechas, e insatisfecha si al menos una cl usula es insatisa a fecha. Una asignaci n de verdad en una f rmula es un conjunto de variables que han o o sido asignadas con sus respectivos valores de verdad. El problema SAT consiste en decidir si existe una asignaci n de verdad para las variables, tal que la f rmula o o se satisfaga. Los algoritmos para SAT se pueden distinguir entre los completos e incompletos. Los algoritmos completos pueden comprobar la insatisfactibilidad de una f rmula, si se le da suciente tiempo de CPU para que termine; en cambio los o algoritmos incompletos al terminar sin encontrar una asignaci n que satisfaga la o instancia, no pueden darnos la certeza de que el algoritmo sea insatisfactible. Por consiguiente los algoritmos incompletos suelen usarse solamente para instancias satisfactibles. Algunos ejemplos de algoritmos completos e incompletos son los algoritmos de b squeda con backtracking y de b squeda local, respectivau u mente. En el contexto de la b squeda, los algoritmos completos son a menudo llamau dos sistem ticos, en tanto que los algoritmos incompletos son conocidos como no a sistem ticos. a En a os recientes se han creado una gran cantidad de algoritmos para resolver n el problema SAT, la mayora con mejoras de la versi n original de Davis-Putnam, o algoritmos utilizando backtracking hasta algoritmos de b squeda local. u La gran mayora de los algoritmos SAT que usan backtrack, han sido construi

3.1. ANALISIS DE LAS INSTANCIAS

33

dos a partir del algoritmo original de backtrack propuesto por Davis, Logemann y Loveland. El algoritmo de b squeda en backtrack b sicamente consiste en un proceso u a de b squeda que recorre el espacio de 2n asignaciones posibles, donde n es el u n mero de variables. u Cada nueva asignaci n dene una nueva ruta en el espacio de b squeda. Un o u nivel de decisi n consiste en la selecci n de una variable y la asignaci n de uno o o o de los dos posibles valores. La primera selecci n de una variable se realiza en la raz del arbol de b squeo u da, esto es, en el nivel 1, cada nivel de decisi n aumenta seg n la cantidad de o u nuevas selecciones de variables y sus consiguientes asignaciones, por lo tanto ca da arbol de b squeda puede tener a lo m s log2 n niveles, donde n es la cantidad u a de variables. Puede darse el caso de que la instancia se satisfaga aun cuando no todas las variables hayan sido instanciadas. Adicionalmente en cada nivel de decisi n, se aplica la regla de la cl usula o a unitaria y opcionalmente tambi n se puede aplicar la regla de la literal pura. Si e una cl usula es unitaria, entonces a

3.1.

An lisis de las instancias a

Una cantidad de variables o cl usulas en una instancia no necesariamente ima plica que esta sea m s difcil de resolver. Como se ver m s adelante el tiempo a a a que un programa se tarde en resolver una instancia est m s ligado a la relaci n a a o entre variables y cl usulas, que al n mero de ellas. a u Existen b sicamente dos tipos de instancias, primero est n aquellas que son a a tomadas de problemas del mundo real, la mayora de las cuales son relativamente f ciles de resolver y su complejidad radica en la cantidad de variables que contiene a cada instancia. Y por otro lado se encuentran aquellas instancias generadas aleatoriamente llamadas k-SAT o k-CNF, a partir de tres par metros (V, C, K), a donde V es el n mero de variables, C el n mero de cl usulas y K es el n mero u u a u de literales por cl usulas. Cada instancia se forma con un conjunto aleatorio de a cl usulas con una longitud exacta de K literales. a Koutsoupias y Papadimitriou demostraron que para instancia con K = 3 es relativamente f cil de satisfacer para un algoritmo de b squeda local cuando la a u instancia tiene una soluci n [21]. Sin embargo David Mitchell, Bart Selman y o Hector Levesque demostraron experimentalmente que las instancias generadas aleatoriamente son difciles de resolver cuando tiene la misma probabilidad de

34

CAPITULO 3. TRATAMIENTO COMPUTACIONAL K 3 4 5 6 7 8 9 10 . . . 20 Proporci n o 4.24 9.88 21.05 43.31 87.70 176.41 353.88 708.78 . . . 726816.49

Cuadro 3.1: Proporciones de instancias aleatorias balanceadas k-SAT

ser satisfactible que insatisfactible [26]. La relaci n entre cl usulas y variables o a (C/V ) para instancias difciles de resolver vara seg n K. Para (K = 3) los pro u blemas m s difciles se encuentran cuando la proporci n C/V est entre 4,24 y a o a 6,21 (C/V = [4, 24.,6, 21]/V ). La mayora de los benchmarks utilizan dicha pro porci n para la realizaci n de sus pruebas. o o Como se puede observar en el Cuadro 3.1 al incrementarse la cantidad de literales por cl usula se necesitan m s cl usulas por cada variable si se desea crear a a a una instancia difcil de resolver.

3.1. ANALISIS DE LAS INSTANCIAS

35

100

Porcentaje de satisfactibilidad

80

Variables 10 20 30 40 50

60

40

20

0 1 2 3 4 5 6 Relacin entre clusulas y variables 7 8

Figura 3.1: Relaci n entre cl usulas y variables, y el porcentaje de satisfactibilidad o a

5000

4000 Recursiones de DPLL

Variables 10 20 30 40 50

3000

2000

1000

0 1 2 3 4 5 6 Relacin entre clusulas y variables 7 8

Figura 3.2: Proporci n entre cl usulas y variables y su relaci n con el n mero de recuro a o u siones del algoritmo

36

CAPITULO 3. TRATAMIENTO COMPUTACIONAL

3.2.

Preprocesamiento

Estas son las tareas que se ejecutan previo a la ejecuci n del algoritmo y como o primer tarea se tiene la lectura de la instancia en formato CNF, esa instancia inicialmente se guarda en la representaci n matricial. Cuando se ha ledo la instancia o completa se procede a crear las otras representaciones de los datos: la representaci n por literales y la representaci n por cl usulas. o o a Por defecto las variables que necesita la regla 3 son escogidas en el punto del arbol de b squeda donde se realiza la bifurcaci n, pero otra de las tareas que se u o realizan en este punto es la creaci n de las listas de variables en caso se necesita o especicarlo como un par metro que ser utilizada por la regla 3 y que en la a a versi n secuencial es una sola lista, pero que en las versiones paralelas se crean o varias listas, una por cada proceso, estas listas pueden contender los mismos o distintos valores otra opci n que tambi n se debe especicar como par metro, o e a si se eligen distintos valores, las listas se llenaran con los valores que den los diferentes m todos de selecci n de variables con los que se cuenta, en caso de e o que sean m s procesos que m todos de selecci n de variables se volver a seleca e o a cionar los m todos iniciales, de esta forma algunos de las listas ser n id nticas e a e excepto para el m todo de selecci n de variables aleatorio, pero tendr n un e o a comportamiento distinto dado que se aplicar n sobre instancias equisatisfactibles a distintas.

3.2.1.

Ordenamiento est tico de variables a

El ordenamiento est tico de variables consiste en asignar la misma variable en a cada nivel del arbol de b squeda, esto se logra ordenando previamente las variau bles dentro del preprocesamiento que realiza el proceso maestro, y este arreglo de variables se pasa a cada uno de los hijos que realiza la selecci n secuencial de las o variables dentro del arreglo. Cabe hacer menci n que si bien es la misma variable en cada nivel, en la o bifurcaci n se asignan una literal armada y otra negada para la misma variable. o Dentro del ordenamiento est tico se propuso organizar a las variables que tiea nen m s apariciones tanto positivas como negativas |card(x+ ) + card(x )| y que a i i minimiza |card(x+ ) card(x )|, para toda i desde 1 hasta n. i i M todos de selecci n tal como el MOMS eligen a la literal seg n el n mero de e o u u apariciones que tenga en una cl usula. De esta forma al aplicar la regla de la elia minaci n de literales con este m todo se pretende reducir el tama o del problema o e n

3.2. PREPROCESAMIENTO

37

considerablemente. Sin embargo este m todo no garantiza que la literal elegida e sea la que reduzca m s el tama o del problema. a n

Figura 3.3: Ordenamiento est tico de variables a

Cuando se elige una literal con este m todo, este elimina todas las cl usulas e a en donde aparece, pero no garantiza una eliminaci n en la misma proporci n de o o las apariciones negativas de la misma literal en el resto de las cl usulas. a

= |card(x+ ) + card(x )| i i = |card(x+ ) + card(x )| i+1 i+1 (|card(x+ )card(x )|) (|card(x+ )card(x )|) cuando = i i i+1 i+1
(a) Ecuaci n para ordenar las literales. o (b) Representaci n gr ca. o a

Figura 3.4: Ordenamiento por modicaci n de MOMS. o

3.2.2.

Ordenamiento din mico de variables a

El ordenamiento din mico de variables se da cuando existen diferentes variaa bles en un mismo nivel del arbol de b squeda, y en nuestro caso se da cuando u el proceso maestro asigna a los procesos hijos una parte del arbol de b squeda y u cada hijo decide que variable elegir en cada nivel, por lo que el mismo nivel puede ser diferente en todos los procesos hijo.

38

CAPITULO 3. TRATAMIENTO COMPUTACIONAL

Como ejemplo del ordenamiento din mico est el m todo UP que en cada a a e bifurcaci n debe realizar un preprocesamiento para detectar que variables realizan o la mayor cantidad de propagaciones unitarias.

Figura 3.5: Arbol de b squeda u

Aunque el m todo puede utilizarse en el procesamiento y con eso generar una e lista de literales est tica, es conveniente utilizarlo en forma din mica ya que la a a instancia va cambiando con cada aplicaci n de las reglas. Es aqu en donde entra o la disyuntiva de elegir la forma de utilizar los m todos, la forma est tica tiene la e a ventaja de que no gasta el tiempo de preprocesamiento por cada bifurcaci n y la o din mica tiene a su vez la ventaja de reducir la instancia con cada literal elegida. a

Figura 3.6: Ordenamiento din mico de variables a

3.3. VERSION SECUENCIAL

39

3.3.

Versi n secuencial o

Esta versi n nos sirvi de base para las pruebas con varias heursticas de seo o lecci n de variables. Los algoritmos paralelos que se ejecutan en los procesos hijo o de las versiones posteriores con hilos y MPI, pr cticamente son copia el de esta a versi n, conteniendo solo algunas modicaciones. o La versi n secuencial del algoritmo fue adoptando nuevos cambios, se coo menz con una implementaci n con las especicaciones iniciales del algoritmo, o o hechas por Davis y Putnam, se utiliz una matriz para representar la instancia y o no hubo modicaci n a la heurstica propuesta por ellos. Esa versi n inicial tuvo o o varias modicaciones hasta obtener mejoras signicativas agregando otras formas de representaci n de la instancia, que se complementara con la matriz ya exiso tente y se realizaron pruebas con dos heursticas nuevas la de selecci n aleato o ria y secuencial. Una vez hechos estos cambios se modicaron las heursticas ya existentes y los m dulos para que aprovecharan los cambios hechos en la reo presentaci n de los datos. Y nalmente se implementaron nuevas heursticas de o selecci n de literales. o

3.4.

Versi n utilizando hilos o

En sistemas UNIX R se desarroll una interfaz de programaci n en lenguaje o o C est ndar para la creaci n de hilos de ejecuci n, seg n lo especicado por la a o o u norma IEEE POSIX 1003.1c y los sistemas que se basan en ella son conocidos como POSIX threads o PThreads. La raz n por la que se desarrollo el programa con hilos, es porque estos pueden o ser una gran ventaja, dado que aprovechan su m ximo potencial, al ser utilizados a en una arquitectura o ambientes de memoria compartida con varios procesadores, porque de esta manera pueden ser usados para llevar a cabo el paralelismo. Al utilizar memoria compartida se evitan los gastos en comunicaciones de otros sistemas distribuidos. De inicio, con la versi n con hilos se pretenda aprovechar las ventajas que nos o ofrece el trabajar con la memoria compartida, eliminando la necesidad de costos computacionales como el tiempo de comunicaci n entre procesos, como es en el o caso de la utilizaci n de una soluci n que involucre la utilizaci n de memoria o o o compartida. Antes de realizarse la bifurcaci n se debe escoger una variable sobre la cual o aplicar las transformaciones. Las transformaciones se llevan a cabo en cada uno

40

CAPITULO 3. TRATAMIENTO COMPUTACIONAL

de los hilos creados a partir de la bifurcaci n, en ellos se realizan las transformao ciones utilizando la variable seleccionada y la misma variable pero negada. El benecio de la divisi n del trabajo solo se produce cuando la instancia es lo o sucientemente compleja, dado que la creaci n de hilos y la comunicaci n entre o o ellos requiere un costo en tiempo.

Figura 3.7: Esquema de asignaci n de tareas o

La paralelizaci n se realiza mediante la asignaci n de una rama de b squeda o o u del arbol a un hilo. El hilo solo termina cuando realiza la b squeda por la rama que u se le asigno, de esta forma se evita tener una gran cantidad de comunicaciones, cada procesador tiene su propio arbol de b squeda y solamente se comunica con u el proceso maestro para averiguar si una parte del arbol ya ha sido resuelta por otro proceso.

3.5.

Versi n con MPI o

Esta versi n fue escrita con el lenguaje C usando MPI con el conjunto de funo ciones de LAM/MPI, LAM (Local Area Multicomputer) es una implementaci n o en c digo abierto del est ndar de la Interfaz de Paso de Mensajes, MPI por sus o a siglas en ingl s (Message Passing Interface). e Aun y cuando la versi n con hilos tiene la ventaja de no tener gastos en comuo nicaciones, en la actualidad no son muy comunes sistemas que utilicen muchos procesadores con memoria compartida. Esta versi n tiene la ventaja frente la vero si n con hilos, que no es necesario tener una plataforma de memoria compartida. o Entonces la versi n en MPI elimin la necesidad de trabajar en equipos con ciertas o o caractersticas, como puede ser la obligatoriedad de utilizar una computadora con un solo procesador o varios procesadores con memoria compartida, como es el

3.6. ESTRATEGIAS DE SOLUCION

41

caso de las versiones anteriores respectivamente. Todas las ventajas anteriores superan la desventaja del costo en comunicaciones que implica realizar un programa que utilice la librera MPI. Para la paralelizaci n se aprovecha la regla de bifurcaci n, en donde la instano o cia se divide en dos al asignar diferentes valor a una variable escogida previamente. Durante la bifurcaci n se divide la carga de trabajo en diferentes hilos. o Antes de realizarse la bifurcaci n se escoge una variable sobre la cual aplicar o las transformaciones. Las transformaciones se llevan a cabo en cada uno de los hilos creados a partir de la bifurcaci n, en ellos se realizan las transformaciones o utilizando la variable seleccionada y la misma variable pero negada. El benecio de la divisi n del trabajo solo se produce cuando la instancia es lo o sucientemente compleja, dado que la creaci n de hilos y la comunicaci n entre o o ellos requiere un costo en tiempo.

3.6.

Estrategias de soluci n o

La paralelizaci n se realiza mediante la asignaci n de una rama de b squeda o o u del arbol a un hilo. El hilo solo termina cuando realiza la b squeda por la rama que u se le asigno, de esta forma se evita tener una gran cantidad de comunicaciones, cada procesador tiene su propio arbol de b squeda y solamente se comunica con u el proceso maestro para averiguar si una parte del arbol ya ha sido resuelto por otro proceso.

Figura 3.8: Esquema de paralelizaci n o

En la estructura de datos se utilizan dos formas de representar la instancia, una

42

CAPITULO 3. TRATAMIENTO COMPUTACIONAL

se basa en las variables y la otra en las cl usulas, con la nalidad de disminuir el a tiempo de b squeda de la posici n de una cl usula o literal dada. u o a Se desarrollaron diferentes versiones paralelas del algoritmo paralelo, ambas con hilos: Versi n con hilos en el cual la paralelizaci n consiste en asignar a cada hilo o o ejecuta el algoritmo de Davis-Putnam sobre la instancia original, variando solamente la elecci n de la variable en la bifurcaci n. o o Versi n con hilos en el cual la paralelizaci n se realiza mediante la divisi n del o o o arbol de b squeda, de esta forma cada hilo ejecuta un instancia equisatisfactible, u es decir una instancia que se satisface con los mismos valores de variables que la instancia original. Despu s de la bifurcaci n los hilos reciben una instancia y e o una variable con la cual se realizaran las transformaciones necesarias utilizando las reglas de reducci n del algoritmo. o Versi n con hilos en la que al igual que la anterior, los hilos reciben una inso tancia satisfactible diferente a los otros y una variable con la cual se realizaran las transformaciones necesarias utilizando las reglas de reducci n del algoritmo. o Sin embargo en esta versi n en el hilo 0 existe un arreglo con las literales que o han sido encontradas hasta el momento, y cada hilo al tener que aplicar la regla de bifurcaci n verica si en el hilo padre existe una literal que no exista en su asignao ci n parcial de variables que han sido instanciadas. Si existe esa literal, entonces o se realiza la bifurcaci n con ella, si no, entonces se busca una literal con alguna o de las heursticas existentes, y cuando se encuentra, adem s de realizar la bifur a caci n con ella, se inserta en el arreglo del hilo padre. Con esto se tienen mejores o resultados que si solo se realiza la asignaci n con variables est ticas y tambi n se o a e evita emplear mucho tiempo en la b squeda de las variables. u

3.7.

Divisi n del arbol de busqueda o

La divisi n del arbol de b squeda se realiza en el instante en que se necesite o u aplicar la regla de la bifurcaci n, siempre y cuando exista disponibilidad de recuro sos, en este caso del procesador. Dado que de nada nos sirve asignar trabajos a los procesadores que est n realizando otra tarea. a Mediante un procesamiento el proceso padre decide como realizar divisi n o inicial, que se le pasara a los procesos hijo. Tambi n existe la posibilidad de que e se realicen otras bifurcaciones cuando no habiendo decidido si una instancia es satisfactible, termina uno de los hijos con su tarea asignada, por lo que se le asigna otra tarea; esto es muy importante en las instancias particularmente grandes,

3.8. METODOS DE SELECCION DE VARIABLES

43

porque si se realiza esto con instancias peque as el resultado puede ser contran producente, ya que se necesita un procesamiento para decidir que parte del arbol reasignar y de que otro hijo. Y en instancias peque as el tiempo de este proceso n puede ser mayor que el que nos podramos ahorrar.

3.8.

M todos de selecci n de variables e o

Los algoritmos usados para la selecci n de variables fueron el secuencial, aleao torio, MAMS, MOMS, MOMS*, MAXO, UP y SUP, adem s de algunas combia naciones de ellos. M s adelante se profundizara en cada uno de ellos. a

Figura 3.9: M todos de selecci n de variables e o

3.9.

Paralelizaci n por busqueda en orden de variao bles predenidas

Una forma de trabajar con las heursticas fue realizar un preprocesamiento con la instancia inicial, con la que se creo un orden preestablecido de las variables que se asignan a los hijos. Con esto se evita el calcular en cada bifurcaci n la variable o a elegir. Sin embargo esto puede no siempre dar los mejores resultados. La gura 3.10 y la gura 3.11 ejemplican la forma en que el tiempo es desti nado para las areas principales del programa. En la gura 3.10 el area gris corresponde al preprocesamiento, durante el cual se realiza la lectura del archivo .cnf que contiene la instancia. Todas las cl usulas del archivo son ledas y asignadas a

44

CAPITULO 3. TRATAMIENTO COMPUTACIONAL

en un inicio a un arreglo bidimensional. Una vez que son ledas todas las cl usulas a es realizada la conversi n a las otras representaciones. o Posteriormente empieza la aplicaci n de las reglas de reducci n representado o o por el cuadro azul con la letra R a la instancia inicial y en caso de ser necesaria la utilizaci n de la regla de bifurcaci n se utilizara el m todo de selecci n de o o e o variables que se haya elegido que est representado como la segunda parte del a recuadro azul. Esta forma de seleccionar las variables puede ser conveniente en ciertos casos puesto que la instancia va cambiando con cada aplicaci n de las o reglas y con ciertas heursticas se puede sacar provecho de utilizar la instancia ac tual. Pero tambi n existe el inconveniente de que se debe utilizar tiempo adicional e para seleccionar cada una de las variables por cada bifurcaci n. o El cuadro rojo indica que al aplicarse las reglas se encontr una contradicci n o o en la rama que se estaba procesando, esto puede ser porque quedaron dos cl usulas a unitarias con la misma literal con signo opuesto o porque se encontr una cl usula o a vaca. Cuando se encuentra una contradicci n en una rama, esta simplemente deja o de procesarse. Los cuadros en blanco indican el tiempo que dura procesar alguna de las dos ramas que se crean con la bifurcaci n. Los dos cuadros rojos contiguos indican o que en una bifurcaci n ya no existen m s literales por escoger, lo que signica que o a se ha llegado al nal de esa rama, esto es de lo m s costoso ya que signica que a se recorri toda una rama sin encontrar ninguna soluci n ni alguna contradicci n o o o que permitiera acortar la b squeda. u Finalmente un cuadro negro representa que se ha encontrado el valor, que unido con los encontrados anteriormente satisface la instancia. Cuando se encuentra el cuadro negro en el caso de las versiones paralelas se enva ese resultado al pro ceso maestro y este manda terminar la ejecuci n de los dem s procesos que a n o a u siguen ejecut ndose. a La segunda parte azul representa el tiempo invertido en la actualizaci n de las o diferentes representaciones de las instancias, despu s de que se ha seleccionado e una literal por alg n m todo de selecci n de variables. Esa mismo cuadro azul u e o representa el posprocesamiento despu s de que se termina de explorar el arbol de e b squeda, en el se realiza la presentaci n de los valores que satisfacen la instancia u o y tambi n el calculo del tiempo total del programa. e La gura 3.11 no diere mucho de la anterior, excepto que se puede observar que se invierte en forma considerable en el tiempo destinado al preprocesamiento, durante este adem s de realizar la lectura de la instancia, se realiza el proceso de a seleccionar las literales que ser n utilizadas por la regla de bifurcaci n. Adem s al a o a aplicar la regla de bifurcaci n tambi n se tiene que analizar si la variable elegida o e

3.9. PARALELIZACION POR BUSQUEDA EN ORDEN DE VARIABLES PREDEFINIDAS45 ya ha sido instanciada previamente por algunas de las otras reglas de reducci n, y o en ese caso elegir otra de la lista. Por lo tanto el cuadro azul representa ahora solo la aplicaci n de las reglas de reducci n, dado que el tiempo empleado en acceder o o a la lista de variables es despreciable. La aplicaci n de las heursticas de esta forma no garantiza la reducci n del o o tiempo con respecto a la aplicaci n din mica, pero ninguna m todo lo hace, todos o a e pueden funcionar bien con algunas instancias, pero no con todas.

46

CAPITULO 3. TRATAMIENTO COMPUTACIONAL

Figura 3.10: Llamadas recursivas

3.9. PARALELIZACION POR BUSQUEDA EN ORDEN DE VARIABLES PREDEFINIDAS47

Figura 3.11: Llamadas recursivas 2

Captulo 4 Caractersticas del sistema


4.1. Representaci n de la entrada o

Uno de los formatos m s comunes para representar las f rmulas es el CNF, a o sin embargo existen diferentes formas en que son representados en un archivo, en un inicio cada quien desarrollaba su propio formato de entrada. De todos los o formatos en CNF, el m s aceptado es el especicado por DIMACS[13], raz n por a la cual fue elegido este ultimo para usarlo como entrada de nuestros algoritmos. El prop sito de DIMACS es el de facilitar las pruebas entre distintos tipos de o algoritmos y programas SAT, por medio de un formato com n para representar las u instancias de entrada.

4.1.1.

Formato CNF

El archivo CNF es un documento ASCII con extensi n .cnf, que consta prino cipalmente de dos partes: El pre mbulo y las cl usulas. a a Pre mbulo a El pre mbulo contiene informaci n acerca de la instancia, contenida en lneas, a o cada una de las cuales inicia con un car cter -que nos indica el tipo de informaci n a o que contiene- y un espacio en blanco. La informaci n que puede contener pueden o ser comentarios o bien informaci n del problema. o Comentarios Estas lneas son opcionales e inician con la letra c min scula y u son ignoradas por los los programas, su funci n solo es la de proporcionar o 49

50

CAPITULO 4. CARACTERISTICAS DEL SISTEMA informaci n adicional acerca de la instancia. o c Ejemplo de lneas c de comentarios

Problema Lnea obligatoria que inicia con la letra p min scula seguida por el u nombre del formato de representaci n que en este caso es cnf, el n mero de o u variables y el n mero de cl usulas. Debe aparecer una sola vez despu s de u a e las lneas de comentarios si es que existen y antes de las lneas de cl usulas. a p FORMATO VARIABLES CLUSULAS A Donde FORMATO como ya se haba mencionado antes es cnf, VARIABLES debe ser un n mero entero que indique la cantidad de variables que existen u en la instancia y CLUSULAS debe ser un n mero entero que muestre la A u cantidad de cl usulas en la instancia. a

Cl usulas a Las cl usulas inician inmediatamente despu s de la lnea del problema, motivo a e por el cual no deben existir espacios en blanco despu s de la lnea mencionada e porque esto est fuera del est ndar establecido y acareara seguramente errores a a inesperados en la mayora de los programas que lean el formato. Las cl usulas se representan por n meros enteros que van desde el n hasta a u n; donde n es la cantidad total de variables en la instancia. Cada cl usula se representa por una secuencia de n meros se parado por espaa u cios; las variables armadas son representadas con un n mero positivo, mientras u que las variables negadas se representan mediante un n mero negativo. El 0 se u utiliza para terminar cada una de las cl usulas; cuando se encuentra este n mero a u autom ticamente se pasa a la siguiente lnea para buscar m s cl usulas. Generala a a mente las cl usulas est n ordenadas por el valor absoluto de las variables que lo a a integran, esto es, no se toma en cuenta su signo para el ordenamiento. Por ejemplo las cl usulas a (x1 x3 x5 ) (x2 x3 ) (1 x2 x4 ) (5 ) (x3 x4 ) x x se representan en formato CNF en el cuadro 4.1.

4.2. USO DEL SISTEMA

51

4.2.

Uso del sistema

Cada uno de las versiones toma como entrada solo el nombre del archivo en formato CNF, excepto para la versi n con hilos que adem s del requisito anterior o a toma como par metro adicional el n mero de hilos a ejecutar. a u En la versi n MPI hay que tener cuidado con la cantidad de procesos que se o mandar n a crear, el n mero mnimo que se podr n crear son 2, esto es, siempre a u a ser necesario el proceso maestro para realizar el preprocesamiento, pero este por a si solo no resuelve el problema, esto lo realizan los procesos hijos que el mismo crea. Es por lo anterior que si solo se crea un proceso el programa no realizar nina guna acci n visible. Entonces si solo se desea crear un proceso como si este fuera o un programa secuencial, se deber pasar un n mero dos en el par metro que nos a u a pide la cantidad de procesos a crear.

4.2.1.

Modulo de selecci n de variables o

Cada una de las versiones tiene varios m todos o heursticas de selecci n de e o de variables, que a continuaci n se mencionan. o Secuencial: El m todo de selecci n secuencial elige las variables en un orden e o predenido antes de la ejecuci n del algoritmo. Tiene la ventaja de que o pr cticamente no requiere tiempo para la elecci n de la variable, pero a su a o vez tiene la desventaja de que el orden de las variables es poco eciente al realizar las transformaciones. Este m todo es el que ha arrojado los valores e m s grande de tiempo de ejecuci n con respecto a los dem s m todos. a o a e Aleatorio: El m todo de selecci n aleatorio, elige una variable que no haya sie o do instanciada aun de forma aleatoria. En general este m todo presenta un e

1 3 5 0 2 3 0 1 2 4 0 5 0 3 4 0 Cuadro 4.1: Representaci n de las cl usulas en el formato CNF. o a

52

CAPITULO 4. CARACTERISTICAS DEL SISTEMA rendimiento intermedio entre el m todo secuencial y el MOMS. e

MOMS: Por sus siglas en ingl s de ((Maximum Occurrences in Minimum Size e Clauses)), Apariciones m ximas en cl usulas de menor tama o. Selecciona a a n la variable con mayor aparici n en las cl usulas de menor tama o. Cabe o a n hacer menci n que este m todo es igual a MAXO en caso de que todas las o e cl usulas contengan la misma cantidad de variables. Esta heurstica es la a que ha arrojado los mejores resultados en cuanto a tiempo de ejecuci n se o reere, esto es debido a que al elegir las variables con mayor aparici n en la o cl usula, al realizar las transformaciones correspondientes se eliminan m s a a cl usulas. De esta forma queda una instancia equisatisfactible m s peque a a a n y en teora m s f cil de resolver. a a

Figura 4.1: M todos de selecci n de variables e o

Dado que la adecuada selecci n de variables afecta de manera directa en la o eciencia del algoritmo se agregaron los siguientes m todos de selecci n de vae o riables, con el n de mejorar los resultados obtenidos con los anteriores. UP: Realiza asignaciones a las variables que aun est n indenidas, y cuenta con a que variable se realiza la cadena m s larga de propagaciones unitarias. En a este m todo ser necesario jar un limite de b squeda, puesto que puede e a u ser mucho mayor el tiempo invertido en preprocesamiento que el tiempo que podra ahorrar. MAXO: A diferencia de MOMS este m todo elige la variable con mayor ocurrene cia dentro de la instancia, sin importar el tama o de las cl usulas. n a

4.3. ESTRUCTURA DE DATOS

53

MAMS: Es una combinaci n de MAXO y MOMS, se trata de decidir seg n el o u tipo de problema, que m todo arroja los mejores resultados y con base en e eso escoger el m todo adecuado. Generalmente cuando es un problema ke SAT se elige MAXO. SUP : UP Selectivo, ejecuta UP solo en aquellas variables elegidas previamente por otros m todos, como MAXO, MOMS, MAMS, etc tera. e e MOMS* A diferencia de MOMS esta heurstica elige la variable con mayor n mero de apariciones pero balanceadas, esto es, que el numero de apau riciones tanto negativas como positivas sean similares. BAL Elige a las variables balanceadas, es decir, aquellas cuya diferencia entre las apariciones positivas y negativas tienda a cero, sin importar el n mero total u de apariciones.

4.3.

Estructura de datos

Para la representaci n de la instancia se utilizan tres distintas representaciones o que al trabajar en conjunto con ellas superan sus ventajas individuales. A pesar del consumo adicional de memoria, su uso se justica por la rapidez con que se puede encontrar, modicar o eliminar una variable o una cl usula sin tener que a realizar una b squeda. u Cada una de las representaciones son equisatisfactibles, esto es, aun cuando su forma y contenido vara, representan a la misma f rmula y su resultado no se o modica.

4.3.1.

Representaci n matricial o

En la representaci n matricial se utiliza un arreglo de n variables por m cl usuo a las, donde las columnas contiene las variables y las las a las cl usulas. Cada a elemento del arreglo puede contener uno de tres estados posibles: -1, 0, 1. RM : arreglo[1 : n] [1 : m] +1, 1, RM (i, j) = 0, si Qi,j est armado en Ci ; a si Qi,j est negado en Ci ; a si Qi,j no aparece en Ci .

54

CAPITULO 4. CARACTERISTICAS DEL SISTEMA

Si la variable xi , de la cl usula Cj , est negada, entonces el elemento del a a arreglo matriz[i][j] contendr un -1; de la misma forma si ahora la variable a est armada, entonces el elemento del arreglo contendr un 1 y por ultimo, si a a la variable no se encuentra en una cl usula entonces la intersecci n contendr un a o a cero.

Figura 4.2: Representaci n matricial o

4.3.2.

Representaci n por cl usulas o a

En esta representaci n la primer columna contiene el n mero de cl usulas para o u a cada una de las variables existentes, el resto de las columnas indican propiamente el n mero de la cl usulas en donde se encuentran la variables de cada una de las u a las. La primer la nos da un acceso r pido si deseamos conocer que variable cona tiene el mayor n mero de apariciones en la f rmula, esta es una de las principales u o ventajas que caracteriza a esta representaci n. Las columnas tienen un tama o jo, o n asignado al momento de crearse, con el tama o de la variable con m s apariciones n a dentro de la f rmula. o El tama o de las las es dos veces la cantidad de variables, esto es necesario n para saber en que cl usulas est s las variables, tanto armadas como negadas; la a a primera mitad de las las contienen a las variables armadas x1 , x2 , . . . , xn1 , xn y de igual manera en la segunda mitad se encuentran las mismas variables pero

4.3. ESTRUCTURA DE DATOS

55

negadas x1 , x2 , . . . , xn1 , xn . Las cl usulas para una variable dada est n en orden a a ascendente con respecto a las cl usulas en las que aparecen. a RC : arreglo[1 : k + 1] [1 : 2n] |xg |, |g |, x RC(g, h) = i, si h = 1 cuando 1 g n; si h = 1 cuando n + 1 g 2n; si Qg Ci i N | i < m.

Figura 4.3: Representaci n por cl usulas o a

4.3.3.

Representaci n por literales o

Esta representaci n es parecida a la representaci n matricial, cada columna o o representa a las variables, excepto la primera que contiene la cantidad de variables por cada cl usula; y cada lnea representa a las cl usulas. a a La primer columna adem s de indicarnos si una cl usula ya no contiene variaa a bles, al tener un cero, nos puede indicar si alguna cl usula ha sido borrada; y una a cl usula ha sido borrada si contiene el valor de -1 en la primer columna. a De igual forma en esta representaci n las variables est n ordenadas en forma o a ascendente, sin tomar en cuenta el signo. Las variables armadas son positivas y las negadas est n con valor negativo, cuando las variables se van eliminando se a recorren hacia la izquierda y el lugar desocupado se llena con un cero.

56

CAPITULO 4. CARACTERISTICAS DEL SISTEMA

Esta representaci n nos ofrece la ventaja de conocer r pidamente las cl usulas o a a que siguen activas, esto es, las que no han sido eliminadas y que a n contienen u variables, adem s de saber cuales variables hayan quedado hu rfanas dentro de a e una cl usula (cuando en la primera la contiene un valor de 1). a Generalmente se utilizan instancias k-CNF, por lo que en este caso en un inicio la primera columna contendr el mismo valor, que posteriormente ira variando a seg n se vayan eliminando las variables. u RL : arreglo[1 : n + 1] [1 : m]li,j {n : n} y l1,j N |Cg |, si h = 1 cuando 1 g m; 1, si Cg ; RL(g, h) = Qg,j , j {1, . . . , |Cg |}; 0, si Qg,j Cg cuando |Cg | < h < n.

Figura 4.4: Representaci n por variables o

4.4. OTRAS REPRESENTACIONES

57

4.4.

Otras representaciones

Existen dos listas de literales que se manejan internamente como un arreglo las cuales sirven para separar las variables a las que no se les ha asignado un valor y a las que s. Al nal en caso de que el resultado sea satisfactible, la segunda lista contendr los valores que satisfacen la f rmula, si se da el caso de que la primera a o lista aun tenga literales, a estas se les puede usar como comodines, se les puede asignar cualquier valor booleano sin que afecte el resultado, lo cual podra verse como otras asignaciones, teniendo hasta 2n asignaciones posibles m s, donde n a es la cantidad de variables en la primera lista. Cuando existe un resultado satisfactible, la lista parcial es devuelta al proceso padre, y este la toma como la lista nal de literales, la soluci n al problema. Y en o caso de que la lista parcial de un sub rbol no encuentre una soluci n, simplemente a o es desechada. En adici n existe otra lista que es util para algunas heursticas como auxiliar en o la b squeda de las variables optimas, se trata de la lista que contiene al contador de u literales. Como su nombre lo indica, el contador de literales contiene la cantidad de variables que existen en un momento determinado en la instancia actual. El proceso de crear la lista requiere una buena parte del preprocesamiento, pero como tal solo se realiza una sola vez en la vida del programa, una vez creada la lista solo se modica cuando ocurre la eliminaci n de una variable, en cuyo o caso tal variable se borra de ella. Como ya se mencion el proceso padre crea la lista en el preprocesamiento, o y lo enva tal como est a los hijos, junto con una lista de variables, es ah donde a ellos eliminan de la lista las variables que se le pasaron y comienzan su b squeda u de la soluci n en la rama del arbol que les toca. o

Captulo 5 Resultados
Las pruebas se realizaron en tres computadoras Sun Fire V20z Server con dos procesadores AMD Opteron a 2,4 GHz y 2 Gb de memoria DDR1-333 SDRAM cada uno, con Red Hat linux como sistema operativo. Para probar la implementaciones que se realizaron del algoritmo DP, se usaron las instancias propuestas por DIMACS (SATLIB), las cuales aunque no muestran sus soluciones nos indican si el resultado esperado es satisfactible o insatisfactible. Dentro de las pruebas realizadas, se pudo comprobar que la elecci n de la o heurstica de selecci n de variables afecta notablemente en el tiempo de ejecuci n o o del algoritmo. Las heursticas m s ecientes fueron MOMS y MAXO, para las a instancias de los benchmarks de SATLIB hasta con 75 variables.

Figura 5.1: Resultados de una de las primeras versiones del algoritmo secuencial recursivo usando diferentes heursticas de selecci n de variables con archivos de 75 variables y 375 o cl usulas, todas ellas insatisfactibles. a

59

60

CAPITULO 5. RESULTADOS

Tambi n se comprob que al aumentar la cantidad de hilos disminuye el tieme o po de ejecuci n del algoritmo, cuando la cantidad de variables es peque a muchas o n veces el tiempo de la versi n secuencial es inferior al de la versi n paralela, deo o bido en gran medida al manejo de memoria para las estructura de datos, y por el costo implicado en la creaci n de los hilos. o En la implementaci n del algoritmo de Davis-Putnam inuyen diferentes faco tores en la eciencia, tales como la estructura de datos utilizada, el m todo de e selecci n de variables, etc tera. o e Durante el desarrollo se fueron haciendo diferentes pruebas con estas variables con el n de disminuir el tiempo de c mputo. o Como se puede ver al aumentar la cantidad de variables nuestro algoritmo es m s eciente con respecto a Satzs. Llegando el punto en el que Satzs queda por a muy por debajo del tiempo de ejecuci n de nuestra versi n. o o

5.1.

Resultados de la versi n secuencial o

En la versi n secuencial la variable que se utiliza para manejar su eciencia o es el m todo de selecci n de variables elegido para realizar la bifurcaci n. La e o o heurstica que ha dado mejores resultados ha sido la MOMS.

Figura 5.2: Comparaci n de nuestro programa con Satzs utilizando archivos de pruebas o con 75 variables y 375 cl usulas, todas ellas insatisfactibles. a

5.2. RESULTADOS DE LA VERSION DE HILOS

61

(a) Versi n secuencial. o

(b) Versi n con hilos sin renovaci n de la bio o furcaci n de las instancias equisatisfactibles. o

(c) Versi n con hilos que termina al encontrar (d) Versi n con hilos que vuelve a dividir la o o una asignaci n que satisface a la f rmula. o o instancia equisatisfactible cuando uno de los hilos termina sin encontrar una soluci n. o

Figura 5.3: Comparaci n de la versi n secuencial con la versi n con hilos. o o o

En general, de todas las heursticas la secuencial es la que ha tenido el desem pe o menos favorable, aunque no est muy lejos de la versi n aleatoria. n a o En la comparaci n de la versi n recursiva e iterativa, pr cticamente no hay o o a diferencia en cuanto a eciencia, aunque esta ultima gasta un poco m s de tiempo, a aunque es una diferencia despreciable, pudiendo usarse indistintamente.

5.2.

Resultados de la versi n de hilos o

Los resultados de esta versi n utilizando un solo hilo son mayores que los o de la versi n secuencial; principalmente se debe al procesamiento previo que imo plica la creaci n de un nuevo hilo, y en menor medida al tiempo que invierte el o sistema operativo en la creaci n y manejo de los hilos, pero este tiempo se puede o considerar despreciable. El tiempo de esta versi n al utilizarse con 2 hilos es inferior al de la versi n o o secuencial, sin embargo no llega a ser la mitad del tiempo secuencial. Esto se de be a que la divisi n que se realiza en un inicio del arbol de b squeda no asigna o u

62

CAPITULO 5. RESULTADOS

dos ramas iguales en cuanto a dicultad. Si el programa tiene la opci n de pedir o una nueva rama al terminar la ejecuci n de una ellas con un resultado insatisfaco tible, se debe tener una instancia con 100 variables como mnimo para que no sea contraproducente volver a hacer otro particionamiento y asignaci n de las instano cias. Lo anterior es debido al costo en tiempo que es eso conlleva. Si la instancia tiene menos de 100 variables es mejor dejar continuar el algoritmo, esperando la respuesta del segundo hilo.

Figura 5.4: Comparaci n de nuestro programa con Satzs utilizando archivos de pruebas o con 100 variables y 430 cl usulas, todas ellas insatisfactibles. a

Dado que solo se prob esta versi n con 2 hilos no se pudo hacer un an lisis o o a de su aceleraci n. Sin embargo los tiempos que arroj esta versi n son inferiores o o o a la versi n secuencial. o Al estar trabajando con memoria compartida se tuvo un mejor desempe o en n esta versi n comparado con la versi n con MPI, particularmente se tuvo un acceso o o m s r pido a las estructuras de datos. No se gasto en tiempo en comunicaciones, a a por lo que despu s de dividir la instancia original, pr cticamente iniciaba la ejee a cuci n de los hilos. o

5.3. RESULTADOS DE LA VERSION DE MPI

63

5.3.

Resultados de la versi n de MPI o

Sin las restricciones en la utilizaci n de memoria compartida, con la versi n o o de MPI se pudieron analizar las instancia utilizando mas procesos a comparaci n o de la versi n que usa hilos. En esta versi n existe un costo considerable en comuo o nicaciones dado que las instancias que se envan al inicio a los procesos hijos son de un tama o considerable sobre todo al incrementarse la cantidad de variables y n cl usulas, esto aunado que tambi n se tienen que enviar la lista de literales a proa e cesarse, la lista de asignaciones parciales y la lista de apariciones de las variables. Sin embargo esto se ve minimizado al pensar en las instancias de mayor tama o n que se pueden resolver. Esta versi n tiene una eciencia menor comparada con la versi n con hilos, al o o compararse la versi n con anterior con dos hilos y la versi n con MPI utilizando o o dos procesos, la primera tuvo una respuesta m s r pida sobre todo por que tiene un a a acceso r pido de los datos. Sin embargo como ya se menciono antes con la versi n a o en MPI se pueden utilizar muchos mas procesos para resolver una instancia grande simplemente a adiendo m s maquinas a la red. n a

Figura 5.5: Resultados de las diferentes versiones, despu s de hacer ajustes, usando como e pruebas archivos de 75 variables y 375 cl usulas, todas ellas insatisfactibles. a

La aceleraci n en esta versi n no es la optima, sin embargo a medida que se o o incrementa el n mero de hilos se obtienen tiempos inferiores, dada la complejidad u del problema.

64

CAPITULO 5. RESULTADOS

5.4.

An lisis de resultados a

La diferencia entre los resultados de la versi n con hilos y la de MPI es deso preciable cuando la cantidad de variables es grande y cuando la cantidad de hilos es peque a. Sin embargo cuando se utilizan cantidades de variables peque as la n n ventaja de la versi n con hilos aumenta, sobre todo porque no invierte tiempo en o comunicaciones. La paralelizaci n del algoritmo de Davis-Putnam por medio de la divisi n del o o arbol de b squeda mostr una disminuci n importante en el tiempo de ejecuci n u o o o con respecto a la versi n secuencial. Aunque esto es para problemas sucienteo mente grandes, puesto que para problemas con pocas variables resulta m s costoso a el tiempo invertido en la paralelizaci n que los benecios de este. o Tambi n la elecci n de la heurstica de selecci n de variables juega un pae o o pel muy importante en el algoritmo, por ello se est centrando el estudio de una a combinaci n de las diferentes heursticas estudiadas, con el n de minimizar el o tiempo de ejecuci n y maximizar la cantidad de variables que puedan resolverse o en un tiempo razonable.

Figura 5.6: Comparaci n de nuestro programa con Satzs utilizando archivos de pruebas o con 150 variables y 520 cl usulas, todas ellas satisfactibles. a

5.5. COMPARACION CON OTRAS IMPLEMENTACIONES

65

Figura 5.7: Resultados usando el m todo MOMS para selecci n de variables utilizando 2 e o hilos con una instancia de 20 variables.

5.5.

Comparaci n con otras implementaciones o

De otras implementaciones con las que se pudo contar con el c digo fuente, o se compararon con ZRes[6], Small-Satz[34], CalcRes[5] y Satz[22]. o Hay que aclarar que en el cuadro5.5 se presentan las comparaci n con las implementaciones con las que se tuvieron resultados favorables con respecto al tiempo total de c mputo. o ZRes ZRes es una implementaci n del algoritmo de Davis y Putnam tal y como o fue planeado en 1960. ZRes usa ZBDD como la estructura de datos para representar en conjunto de cl usulas, que forman la instancia a procesar. El a paquete usado para manipular ZBDD usa el paquete CUDD (un paquete de BDD), dise ado por Fabio Somezi. n ZRes fue creado por Laurent Simon y Philippe Chatalic en la Universidad de Pars, en el LRI (Laboratoire de Recherche en Informatique), en el a o n 2000. Small-Satz Small-Satz fue escrito por Peter G. Stock en 1999, basado en la implementaci n de Satzs escrita por Chu Min Li. Es una modicaci n de o o Satzs, en la que se han eliminado los descubrimientos hechos por Chu Min Li y los avances y modicaciones que contiene Satzs basado en otros algoritmos. Solo se encuentra la versi n del algoritmo DLL, junto con las o heuristicas y la estructura original de Satzs.

66

CAPITULO 5. RESULTADOS

ab les

su las

Sa tz

#c

benchmark uf20-01.cnf uuf20-01.cnf uf50-01.cnf uuf50-01.cnf uf50-0100.cnf uuf50-0100.cnf uf75-01.cnf uuf75-01.cnf uf75-0100.cnf uuf75-0100.cnf uf75-0100.cnf uuf75-0100.cnf uf100-01.cnf uuf100-01.cnf uf125-01.cnf uuf125-01.cnf uf150-01.cnf uuf150-01.cnf uf175-01.cnf uuf175-01.cnf

20 20 50 50 50 50 75 75 75 75 75 75 100 100 125 125 150 150 175 175

91 91 218 218 218 218 325 325 325 325 325 325 430 430 538 538 645 645 753 753

5 5 5 5 . . . 5 . 5 . . . 5 . . 5 . 5 5

. . . . . . . 0.071 . 0.040 . . . 2.250 . . 4.470 . 258.750 .

sm

0.05 1.24 37.56 602.45 . . . . . . . . . . . . . . . .

0.50 0.50 > 1800 >1800 >1800 >1800 . . . . . . . . . . . . . .

Cuadro 5.1: Comparaci n con otras implementaciones o

sec ue nc ial

rue ba s

Ca lcR

#v ari

all -

lau

zre s

#p

es

0.00 0.00 0.00 0.00 . . . 0.060 . 0.190 . . . 0.890 . . 1.450 . 38.110 83.670

5.5. COMPARACION CON OTRAS IMPLEMENTACIONES

67

CalcRes Es una implementaci n del algoritmo original de Davis-Putnam, tal y o como fue escrito en 1960. A diferencia del algoritmo de Davis, Logeman y Loveland propuesto dos a os despu s este algoritmo elimina cada varian e ble una a una. Esta escrito en el lenguaje Objective Caml y fue dise ado n por Laurent Simonde la Universidad de Pars, en el LRI (Laboratoire de Recherche en Informatique), en el a o 1999. n La caracteristica de CalcRes es que usa arboles Trie1 como estructura de datos, para manipular el conjunto de cl usulas; adem s utiliza una heurstica a a din mica para la selecci n de variables. a o Satz Uno de los mejores programas para resolver el problema SAT que implementan el algoritmo DPLL es Satz. Usa MOMS como heurstica de selec ci n de variables, elige una literal l y ejecuta la regla de literal unitaria por o cada una de esas de esas literales, logrando con estos la ejecuci n de propao gaciones unitarias por cada literal. Las literales obtienen un peso mayor si despu s de la propagaci n unitaria e o la f rmula es m s peque a comparada con el resultado de las otras literao a n les. Esto optimiza en gran medida la heurstica ya que las variables elegidas tienen un buen desempe o en las primeras decisiones, aquellas que se enn cuentran cerca de la raz. Las instancias probadas al igual que las usadas anteriormente fueron hechas por DIMACS y est n disponibles en su p gina web. Las implementaciones antea a riores son secuenciales, son las implementaciones con las que el algoritmo modicado propuesto presenta ciertas ventajas. Todas las versiones est n escritas en ANSI C, utilizando solo el conjunto de a funciones matem ticas, ninguna requiere de un software especial, excepto por a ZRes que para compilar necesita el paquete CUDD. Pueden ejecutarse sin ning n u problema en cualquier equipo ejecutando Linux. Como se observa ZRes es que presenta el desempe o m s bajo, esto debido n a al manejo que tiene que realizar con la estructura de datos que representa a la instancia. ZRes propone una mejora en cuanto a la estructura de datos para manejar la instancia, mientras que Small-Satz trata de mejorar por medio de las heursticas. El algoritmo secuencial presentado trata de mejorar en los dos aspectos, por medio de la estructura de datos empleada, que en este caso son tres, con el objetivo
1

Un arbol ordenado como estructura de datos

68

CAPITULO 5. RESULTADOS

de tener al alcance los datos evitando el procesamiento empleado en la b squeda u de estos despu s de procesar las cl usulas y variables. e a Tambi n analizando las ventajas que nos pueden dar determinadas heursticas e de selecci n de variables con algunas instancia, por ejemplo aquellas que son o generadas aleatoriamente, o las que provienen de un problema especico, o las que tienen ciertas restricciones como las que provienen de las instancias k-CNF. Lo anterior en el caso de la versi n secuencial, en el caso de las versiones o paralelas se pretende adem s de tener las ventajas anteriores, aprovechando el a paralelismo para manejar distintas heursticas.

Captulo 6 Conclusiones y trabajo futuro


La paralelizaci n del algoritmo de Davis-Putnam por medio de la divisi n del o o arbol de b squeda mostr una disminuci n importante en el tiempo de ejecuci n u o o o con respecto a la versi n secuencial. Aunque esto es para problemas sucienteo mente grandes, puesto que para problemas con pocas variables resulta m s costoso a el tiempo invertido en la paralelizaci n que los benecios de este. o Se prob que un sistema no muy complejo puede dar muy buenos resultados; o con la utilizaci n de varias representaciones de las instancia se logro disminuir o el tiempo de b squeda con algunas heursticas, todo esto con la desventaja de la u utilizaci n de m s memoria. o a Se implementaron los algoritmos de forma modular, esto aunado a estructuras de datos sencillas, permite una modicaci n m s f cil del sistema. Todos esto o a a posibilita la escalabilidad de los programas, por lo que se pueden agregar algunas otras t cnicas recientes con pocos cambios. e Tambi n la elecci n de la heurstica de selecci n de variables juega un pae o o pel muy importante en el algoritmo, por ello se est centrando el estudio de una a combinaci n de las diferentes heursticas estudiadas, con el n de minimizar el o tiempo de ejecuci n y maximizar la cantidad de variables que puedan resolverse o en un tiempo razonable. Se est trabajando en otros m todos de elecci n de literales y algunas t cnia e o e cas que nos permitan deducir mediante un preprocesamiento, el benecio o no que nos pueda traer el recorrer una ramicaci n del arbol de b squeda. Tratando o u con lo anterior de reducir nuestro campo de b squeda, para de esta forma reducir u sustancialmente el tiempo de computo nal. Sin embargo el trabajo demuestra que existen heursticas que pueden procesar instancias con una gran cantidad de variables y cl usulas en un tiempo razonaa 69

70

CAPITULO 6. CONCLUSIONES Y TRABAJO FUTURO

ble, aun cuando los resultados no mejoren sustancialmente con respecto a otros programas.

6.1.

Trabajo futuro

Como trabajo futuro se pueden agregar otras heursticas para la selecci n de o variables, se pueden combinar las ventajas que ofrecen las diversos m todos. Reae lizar un estudio m s profundo en donde se muestre el impacto de la selecci n de a o variables en distintos tipos de instancias. Se puede realizar una modicaci n a los algoritmos para lograr la tolerancia a o fallos, dado que en este momento si existe alg n problema con uno de los hilos o u procesos, el sistema no es capaz de recuperarse. Esto es importante debido a que generalmente la respuesta se obtiene despu s de un tiempo de computo considee rable. Es posible tambi n modicar la versi n del algoritmo iterativo para que acepte e o backtracking no cronol gico o backjumping o reinicios. o

Ap ndice A e Uso del sistema


A.1.
1

Secuencial

>s e c u e n c i a l h=n h2=n o r d e n =e o r d e n =d f = a r c h i v o r e s = a r c h i v o Las 0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 :

: : : : : :

Numero de l a h e u r i s t i c a Segunda h e u r i s t i c a s i s e e l i g e l a 6 o 9 Eleccion e s t a t i c a Eleccion dinamica Abre e l a r c h i v o que c o n t i e n e l a i n s t a n c i a Guarda e l r e s u l t a d o en a r c h i v o

11

13

15

17

19

h e u r i s t i c a s son : Secuencial Aleatorio MOMS [ p r e d e t e r m i n a d o ] UP MAXO MAMS SUP MOMS BAL Todos en c i c l o Cuadro A.1: Opciones de la versi n secuencial o

71

72

APENDICE A. USO DEL SISTEMA

A.2.
1

Hilos

11

>h i l o s Uso : h i l o s n= h=n h2=n o r d e n =e o r d e n =d modo=d modo= i f = a r c h i v o r e s = a r c h i v o Las 0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 :

archivo hilos [ opciones ] : Numero de h i l o s : Numero de l a h e u r i s t i c a : Segunda h e u r i s t i c a s i s e e l i g e l a 6 o 9 : Eleccion e s t a t i c a : Eleccion dinamica : D i v i d e e l a r b o l de b u s q u e d a : Misma i n s t a n c i a con d i f e r e n t e s h e u r i s t i c a s : Abre e l a r c h i v o que c o n t i e n e l a i n s t a n c i a : Guarda e l r e s u l t a d o en a r c h i v o

13

15

17

19

21

23

h e u r i s t i c a s son : Secuencial Aleatorio MOMS [ p r e d e t e r m i n a d o ] UP MAXO MAMS SUP MOMS BAL Todos en c i c l o Cuadro A.2: Opciones de la versi n con hilos o

A.3. MPI

73

A.3.
1

MPI

>mpi Uso : mpi a r c h i v o h i l o s [ o p c i o n e s ] h=n : Numero de l a h e u r i s t i c a h2=n : Segunda h e u r i s t i c a s i s e e l i g e l a 6 o 9 o r d e n =e : Eleccion e s t a t i c a o r d e n =d : Eleccion dinamica modo=d : D i v i d e e l a r b o l de b u s q u e d a modo= i : Misma i n s t a n c i a con d i f e r e n t e s h e u r i s t i c a s f = a r c h i v o : Abre e l a r c h i v o que c o n t i e n e l a i n s t a n c i a r e s = a r c h i v o : Guarda e l r e s u l t a d o en a r c h i v o Las 0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : h e u r i s t i c a s son : Secuencial Aleatorio MOMS [ p r e d e t e r m i n a d o ] UP MAXO MAMS SUP MOMS BAL Todos en c i c l o Cuadro A.3: Opciones de la versi n en MPI o

11

13

15

17

19

21

74

APENDICE A. USO DEL SISTEMA

Bibliografa
[1] Cook S. A. The complexity of theorem-proving procedures. In Proceedings of the 3rd Annual ACM Symposium on the Theory of Computing, pages 151 158, 1971. [2] Fadi A. Aloul, Arathi Ramani, Igor L. Markov, and Karem A. Sakallah. Solving difcult instances of boolean satisability in the presence of symmetry. IEEE Transactions on CAD, 22(9):11171137, September 2003. [3] Gilles Audemard, Daniel Le Berre, Olivier Roussel, In s Lynce, and Jo o e a Marques-Silva. OpenSAT: An open source SAT software project. [4] Peter Barth. A Davis-Putnam based enumeration algorithm for linear pseudo-Boolean optimization. Research Report MPI-I-95-2-003, MaxPlanck-Institut f r Informatik, Im Stadtwald, D-66123 Saarbr cken, Geru u many, January 1995. [5] P. Chatalic and L. Simon. Davis and putnam 40 years later: a rst experimentation, 2000. 5.5 [6] P. Chatalic and L. Simon. ZRes: The old Davis-Putnam procedure meets ZBDDs. In David McAllester, editor, 17th International Conference on Automated Deduction (CADE17), number 1831, pages 449454, 2000. 5.5 [7] Wen-Tsuen Chen and Lung-Lung Liu. A parallel approach for theorem proving in propositional logic. Information Sciences, 41(1):6176, 1987. 2 [8] W. Chrabakh and R. Wolski. GrADSAT: A parallel SAT solver for the grid. Technical Report Number 2003-05, University of California, Santa Barbara, Febrero 2003. 75

76

BIBLIOGRAFIA

[9] Stephen A. Cook and David G Mitchell. Finding hard instances of the satisability problem: A survey. In Du, Gu, and Pardalos, editors, Satisability Problem: Theory and Applications, volume 35, pages 117. American Mathematical Society, 1997. [10] R. Cowen and K. Wyatt. Breakup: A preprocessing algorithm for satisability testing of CNF formulas. Notre Dame J. Formal Logic 34, pages 602 606, 1993. [11] Martin Davis, George Logemann, and Donald Loveland. A machine program for theorem-proving. Commun. ACM, 5(7):394397, 1962. 1.2.1, 2, 2.1.1, 2.1.2 [12] Martin Davis and Hilary Putnam. A computing procedure for quantication theory. J. ACM, 7(3):201215, 1960. 1.2.1, 1, 3 [13] DIMACS. Satisability: Suggested format, mayo 1993. 4.1 [14] Franco and Ho. Probabilistic performance of a heuristic for the satisability problem. DAMATH: Discrete Applied Mathematics and Combinatorial Operations Research and Computer Science, 22, 1988. [15] Alex S. Fukunaga. Variable-selection heuristics in local search for SAT. In AAAI/IAAI, pages 275280, 1997. [16] J. Gu, P. Purdom, J. Franco, and B. Wah. Algorithms for the satisability (SAT) problem: A survey, 1996. [17] Marc Herbstritt. Improving propositional satisability algorithms by dynamic selection of branching rules, 2001. [18] John N. Hooker and V. Vinay. Branching rules for satisability. Journal of Automated Reasoning, 15(3):359383, 1995. [19] H. Hoos and T. Sttzle. SATLIB: An online resource for research on SAT, 2000. [20] Paul Walton Purdom Jr. Average time for the full pure literal rule. Information Sciences, 78(3-4):269291, 1994. [21] Elias Koutsoupias and Christos H. Papadimitriou. On the greedy algorithm for satisability. Information Processing Letters, 43(1):5355, 1992. 3.1

BIBLIOGRAFIA

77

[22] Chu Min Li and Anbulagan. Heuristics based on unit propagation for satisability problems. In IJCAI (1), pages 366371, 1997. 5.5 [23] Raymundus Lullus. Ars generalis ultima. Barcelona: Pere Posa, 1501. 1 [24] Crawford J. M., Auton L. D. P., Boufkhad Y., and Carlier J. Experimental results on the crossover point in satisability problems. DIMACS, Rutgers University, New Brunswick, NJ 08903, 1993. [25] Li C. M and Anbulagan. Heuristics based on unit propagation for satisability problems. In Proceedings of International Joint Conference on Articial Intelligence (IJCAI), pages 366371, 1997. [26] David G. Mitchell, Bart Selman, and Hector J. Levesque. Hard and easy distributions for SAT problems. In Paul Rosenbloom and Peter Szolovits, editors, Proceedings of the Tenth National Conference on Articial Intelligence, pages 459465, Menlo Park, California, 1992. AAAI Press. 3.1 [27] Guillermo Morales-Luna. L gica matem tica: Un enfoque computacional. o a CINVESTAV, diciembre 2002. [28] Dubois O., Andre P., Boufkhad Y., and Carlier J. Can a very simple algorith be efcient for solving the SAT problem? DIMACS, Rutgers University, New Brunswick, NJ 08903, 1993. [29] Dechter R. and Rish I. Directional resolution: The DavisPutnam procedure. In Proceedings of KR-94, 1994. [30] J. W. Rosenthal, J. W. Plotkin, and J. Franco. The probability of pure literals. Journal of Logic and Computation, 9(4):501513, 1999. [31] Bart Selman, David G. Mitchell, and Hector J. Levesque. Generating hard satisability problems. Articial Intelligence, 81(1-2):1729, 1996. [32] Carsten Sinz, Wolfgang Blochinger, and Wolfgang K chlin. PaSAT - parau llel SAT-checking with lemma exchange: Implementation and applications. In H. Kautz and B. Selman, editors, LICS 2001 Workshop on Theory and Applications of Satisability Testing (SAT 2001), volume 9 of Electronic Notes in Discrete Mathematics, Boston, MA, USA, 2001. Elsevier Science Publishers. 1.3

78

BIBLIOGRAFIA

[33] M. Stickel and H. Zhang. Implementing the Davis-Putnam method. Journal of Automated Reasoning, (24):277296, 2000. [34] Peter G. Stock. Solving non-boolean satisability problems with the DavisPutnam method. Bsc dissertation, Department of Computer Science, University of York, marzo 2000. 5.5 [35] Moskewicz M. W., Madigan C. F, Zhao Y., Zhang L., and Malik S. Chaff: Engineering an efcient SAT solver. In Design Automation Conference, pages 530535, 2001. [36] Makoto Yokoo. Weak-commitment search for solving constraint satisfaction problems. In Proceedings of the 12th National Conference on Articial Intelligence (AAAI-94); Vol. 1, pages 313318, Seattle, WA, USA, July 31 August 4 1994. AAAI Press, 1994.

También podría gustarte