Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Implementación de un Generador de Casos de Prueba paraSAT a Través de Hipergrafos
por
Juan Segura Salazar
Sometida al Programa de Graduados en Informáticaen Cumplimiento Parcial de los Requerimientos para el Grado de
Maestro en Ciencias de la Computación
ITESM CAMPUS MORELOS Noviembre 2000
Aprobada porDr. José Torres Jiménez
Investigador ITESM Campus Morelos, Programa de Graduados en InformáticaAsesor de Tesis
Revisada porDr. Juan Fraustro Solís
Investigador ITESM Campus Morelos, Programa de Graduados en InformáticaRevisor de Tesis
Revisada porDr. Carlos Gomez-Mont Avalos
Catedrático ITESM Campus MorelosRevisor de Tesis
Implementación de un Generador de Casos de Prueba paraSAT a Través de Hipergrafos
por
Juan Segura Salazar
Sometida al Programa de Graduados en Informáticaen Cumplimiento Parcial de los Requerimientos para el Grado de
Maestro en Ciencias de la Computación
ITESM CAMPUS MORELOS Noviembre 2000
Aprobada porDr. José Torres Jiménez
Investigador ITESM Campus Morelos, Programa de Graduados en InformáticaAsesor de Tesis
Revisada porDr. Juan Fraustro Solís
Investigador ITESM Campus Morelos, Programa de Graduados en InformáticaRevisor de Tesis
Revisada porDr. Carlos Gomez-Mont Avalos
Catedrático ITESM Campus MorelosRevisor de Tesis
Implementación de un Generador de Casos de Prueba para SAT a Través de
Hipergrafos
por
Juan Segura Salazar
Sometida al Programa de Graduados en Informáticaen Noviembre de 2000, en Cumplimiento Parcial de los
Requerimientos para el Grado deMaestro en Ciencias de la Computación
Resumen
Satisfactibilidad proposicional es el problema de determinar, dada una fórmula de cálculoproposicional en forma FNC (Fórmula Normal Conjuntiva), si existe una asignación de valoresde verdad por los cuales la fórmula se hace verdadera.
EL problema de SAT es uno de los problemas de optimización combinatoria más importantepor ser el primer problema NP-Completo.
Para entender la complejidad de SAT y la evaluación de algoritmos para resolver el problemade SAT es de especial interés encontrar un conjunto de instancias duras. Para encontrar eseconjunto de instancias duras, se deben considerar varios puntos tales como el desempeño delos algoritmos más populares de SAT en una serie de problemas aleatorios duros; la teoríadel caso promedio de complejidad; y finalmente, conocer las limitantes para ciertas clases dealgoritmos. Como consecuencia, al encontrar caminos para generar un conjunto de problemasduros, podemos llegar a tratar la complejidad de los mismos.
En esta tesis se presenta la generación de casos de prueba SAT por medio de hipergrafos.Para validar el trabajo se evaluaron y compararon las instancias generadas con uno de losmétodos completos más utilizados: Davis-Putnam. Dados los resultados, se concluye que lageneración de instancias por medio de grafos produce casos de estudio duros y mejor definidospara la evaluación de algoritmos de solución.
índice General
1 Introducción 1
2 El Problema SAT. 3
2.1 Teoría de iVP-Completez 3
2.2 SAT 6
2.3 Métodos de Solución 8
2.4 Elementos de SAT 10
2.5 Análisis de los Elementos del Problema SAT 10
3 Algoritmos de Solución del Problema SAT. 12
3.1 Davis-Putnam 12
3.2 Davis-Putnam Mejorado 14
4 Generar instancias del problema SAT. 15
4.1 Casos de estudio 16
4.1.1 Selman 16
4.1.2 Pretolani 16
4.1.3 Dubois 17
5 Grafos. 18
5.1 Historia 18
5.2 Definición de un Grafo 26
5.3 Definición de Hipergrafo 29
iii
6 Generador de Instancias de SAT basado en Hipergrafos. 31
6.1 Representación del problema SAT por medio de Hipergrafos 31
6.2 Los Grafos y la Cristalografía 37
6.2.1 El Grupo p\ 38
6.2.2 Hipergrafos base formados por segmentos de grupo de una sola capa . . . 40
6.2.3 Hipergrafos base formados por segmentos de grupo de varias capas . . . . 49
6.3 Uso de los hipergrafos base para generar instancias SAT 56
6.3.1 Método para acomodar las etiquetas en los hipergrafos base 56
6.3.2 Método para generar los signos de las cláusulas 56
6.3.3 Generador de instancias SAT por medio de hipergrafos: GenGraf 56
7 Resultados. 59
7.1 Donde se encuentran los Casos Duros para el Problema SAT 59
7.2 Casos de Estudio 62
7.3 Resultados de Selman, Pretolani y Dubois 62
7.4 Resultados de GenGraf 72
7.5 GenGraf vs Selman vs Petrolani vs Dubois 76
8 Conclusiones e Investigaciones Futuras 82
8.1 Conclusiones 82
8.2 Líneas de Investigación Futuras 83
IV
índice de Tablas
2.1 Relaciones de signos entre parejas de variables 11
2.2 Relaciones de signos entre tercias de variables 11
6.1 Asignación de relaciones 57
índice de Figuras
2-1 La Clase NP 4
2-2 Representación de SAT en el espacio 9
3-1 Procedimiento DP 13
4-1 Espacio de instancias para una n y una m dadas 16
5-1 Un parque en Konigsberg, 1736 19
5-2 El grafo del Problema del Puente Konigsberg 20
5-3 Una red N, está basada en el grafo G, y un árbol de expansión T 21
5-4 Los más pequeños hidrocarbonos saturados 21
5-5 "Alrededor del Mundo" 22
5-6 Un mapa y su correspondiente grafo 24
5-7 Ejemplo de Grafo 26
5-8 Multigrafo 27
5-9 Grafo Múltiple 28
5-10 Grafo dirigido 29
5-11 Hipergrafo con k=3 30
6-1 Instancia 1-SAT 32
6-2 Cláusula 2-SAT 32
6-3 Cláusula 3-SAT 33
6-4 Instancia 2-SAT 33
6-5 Instancia 3-SAT 34
v i
6-6 Cláusula 3-SAT representada por hipergrafos 35
6-7 Representación de cláusulas 3-SAT con signo 36
6-8 Instancia 3-SAT representada por multihipergrafo 37
6-9 Grupo p l 39
6-10 Grupo pl segmentado 39
6-11 Grupo segmentado de una sola capa pls 40
6-12 Ecuación para formar hiperarcos en triángulos simples 41
6-13 Hipergrafo base con triángulos simples de una sola capa 41
6-14 Ecuación para formar hiperarcos en triángulos simples conectados 42
6-15 Hipergrafo base conectado de triángulos simples con una sola capa 43
6-16 Hipergrafo base conectado con triángulos simples de una sola capa. Otra vista . 43
6-17 Ecuación para formar hiperarcos en triángulos dobles para n impar 44
6-18 Hipergrafo base de triángulos dobles con una sola capa y n impar 44
6-19 Ecuación para formar hiperarcos en triángulos dobles para n par 45
6-20 Hipergrafo base de triángulos dobles con una sola capa y n par 46
6-21 Ecuación para formar hiperarcos en triángulos dobles conectados para n impar . 46
6-22 Hipergrafo base conectado con triángulos dobles de una sola capa y n impar . . . 47
6-23 Ecuación para formar hiperarcos en triángulos dobles conectados para n par . . . 48
6-24 Hipergrafo base conectado con triángulos dobles de una sola capa n par 48
6-25 Ecuación para formar hiperarcos en triángulos dobles doblemente conectados
para n par 49
6-26 Hipergrafo base doblemente conectado con triángulos dobles de una sola capa n
par 50
6-27 Grupo p ls segmentado para varias capas 51
6-28 Ecuación para formar hiperarcos en mallas simples 52
6-29 Ecuación para formar hiperarcos en mallas simples conectadas 52
6-30 Hipergrafo base de Malla simple 53
6-31 Hipergrafo base de Malla simple con conexión 53
6-32 Ecuación para formar hiperarcos en mallas dobles 54
6-33 Ecuación para formar hiperarcos en mallas dobles conectadas 54
vii
6-34 Malla doble sin conectar 54
6-35 Malla doble conectada 55
6-36 Posibles formas de etiquetar un hipergrafo base de tres nodos 57
6-37 Hiperarco base desarrollado en 8 hiperarcos con signo 58
6-38 Algoritmo GenGraf 58
7-1 Resultados instancias SAT Selman DP-Mejorado 63
7-2 Resultados instancias SAT Selman DP 64
7-3 Resultados instancias SAT Pretolani DP-Mejorado 65
7-4 Resultados instancias SAT Pretolani DP 66
7-5 Resultados instancias SAT Dubois DP-Mejorado 67
7-6 Resultados instancias SAT Dubois DP 68
7-7 Resultados instancias SAT Selman DP-Mejorado vs DP 69
7-8 Resultados instancias SAT Pretolani DP-Mejorado vs DP 70
7-9 Resultados instancias SAT Dubois DP-Mejorado vs DP 71
7-10 Resultados instancias SAT GenGraf Tsimple DP-Mejorado 72
7-11 Resultados instancias SAT GenGraf Tsimple DP 73
7-12 Resultados instancias SAT GenGraf Tdoble DP-Mejorado 74
7-13 Resultados instancias SAT GenGraf Tdoble DP 75
7-14 Resultados instancias SAT GenGraf Tsimple DP-Mejorado vs DP 76
7-15 Resultados instancias SAT GenGraf Tdoble DP-Mejorado vs DP 77
7-16 Resultados instancias SAT Selman vs Pretolani vs Dubois DP-Mejorado 78
7-17 Resultados instancias SAT Selman vs Pretolani vs Dubois DP 79
7-18 Resultados instancias SAT GenGraf Tsimple vs GenGraf Tdoble vs Selman vs
Pretolani vs Dubois DP-Mejorado 80
7-19 Resultados instancias SAT GenGraf Tdoble vs GenGraf Tdoble vs Selman vs
Pretolani vs Dubois DP-Mejorado 81
viii
Dedicatorias
A Dios, por permitirme vivir y seguir adelante
A Ginaha, por todo lo que significa
A mi padre y a mi madre, los guías de mi vida
A la familia Hernández, por su incondicional apoyo
A mis hermanas, las luces de mi familia
IX
Agradecimientos
Quisiera agradecer de manera muy especial a mi asesor de tesis el Dr. José Torres Jiménez
por ser mi guía espiritual durante el desarrollo de la presente tesis, por ayudarme a dar siempre
lo mejor de mi. Simplemente el mejor. También quisiera agradecer a los revisores de mi trabajo
de tesis Dr. Juan Frausto Solís y Dr. Carlos Gomez-Mont Avalos por sus valiosos comentarios
que enriquecieron este trabajo.
A todo el equipo del Diario de Morelos, en especial al C.P. Jorge Reynoso Mangino y C.P.
María Teresa Sánchez de Rodríguez, por el apoyo que me brindaron durante mis estudios.
A todos los compañeros y amigos en el tec.
A Beto y Asaid por estar ahí cuando los necesite.
A Ginaha, porque sin ella el objetivo jamás se hubiera logrado, por su fortaleza y apoyo
durante las horas dedicadas, por todo lo que ella sabe. Gracias....
Capítulo 1
Introducción
Todas las relaciones existentes en el contexto de lo cotidiano pueden ser expresadas en el ámbito
de la lógica. Problemas diarios, por ejemplo el del mejor camino para dirigirse al trabajo, pueden
ser expresados y resueltos en este plano.
El problema de SAT es el primer problema NP-Completo [Coo71], y todos los problemas del
conjunto de NP-Completos pueden ser transformados al problema SAT [GRM91]. Si logramos
resolver de una forma eficiente los problemas SAT, entonces podemos convertir los demás prob-
lemas del conjunto de NP-Completos en el problema SAT, resolverlos, y regresarlos a su forma
original con la solución del problema SAT.
Encontrar un conjunto de instancias duras es de sumo interés para entender la complejidad
del problema SAT y para la evaluación de algoritmos de SAT. Con relación a esto, se debe
considerar lo siguiente: el desempeño de los algoritmos más populares del problema SAT en
una serie de problemas aleatorios duros; la teoría del caso promedio de complejidad; se deben
conocer las limitantes para ciertas clases de algoritmos; encontrar la puerta de entrada al
fenómeno y el problema de generar instancias duras.
Lo que esta tesis propone es implementar un generador de casos de prueba duros.
La presente tesis está estructurada en 8 capítulos que a continuación se describen:
• Capítulo 2. Define la importancia del problema SAT, su descripción y los elementos que
lo componen.
• Capítulo 3. Se describe el algoritmo de solución Davis-Putnam. Plantea la imple-
mentación del mencionado algoritmo y una mejora al mismo.
• Capítulo 4. Se realiza un estudio de tres generadores de instancias SAT (Selman,
Petrolani, Dubois).
• Capítulo 5. Se definen los conceptos de Grafo e Hipergrafo.
• Capítulo 6. Describe la implementación de GenGraf: un nuevo método para generar
instancias de SAT por medio de Hipergrafos.
• Capítulo 7. Discute los resultados alcanzados con GenGraf, así como los resultados
obtenidos con Davis-Putnam y Davis-Putnam Mejorado.
• Capítulo 8. Presenta las conclusiones obtenidas de este trabajo de tesis, así como las
posibles líneas de investigación futuras.
Capítulo 2
El Problema SAT,
En este capítulo se expondrá el concepto del problema SAT y su importancia, así como las
relaciones entre sus elementos.
2.1 Teoría de JVP-Completez.
La teoría de la iVP-Completez es seguramente el desarrollo más importante de la Teoría de
complejidad algorítmica. La clase NP consta de todos los problemas resolubles en tiempo
polinomial por una máquina de Turing no determinística. La primera vez que se definió una
clase equivalente a ésta fue en 1962 por J. Bennet. Bajo el nombre de "relaciones rudimentarias
positivas extendidas". Bennet definió una clase equivalente a NP utilizando cuantificadores
lógicos en lugar de máquinas de computación. En 1971, Cook caracterizó esta clase como la
ahora familiar clase NP, utilizando el término como ampliación de la clase de Coham [Coo71].
En 1972 Karp lo nombró como actualmente se le conoce: clase NP. De forma independiente al
desarrollo formal, Edmonds habló en 1965 de problemas con una 'buena caracterización', una
noción que es esencialmente equivalente a NP. La primera tarea computacional que muestra
problemas iVP-Completos fue hecha por Cook (1971), esto fue Satisfactibilidad proposicional
o el problema SAT: dada una fórmula de cálculo proposicional, decidir si existe una asignación
de valores de verdad para sus variables que hagan la fórmula verdadera de acuerdo a las reglas
usuales de interpretación [BSL95].
Un año mas tarde, Karp encuentra 21 problemas iVP-Completos, lo cual mostraba la im-
NP
NP-Completos
Figura 2-1: La Clase NP
portancia de la materia. Independientemente, y ligeramente después, L. Levin (1973), definió
una noción similar y encontró seis problemas más que eran iVP-Completos.
Los problemas de la clase P son aquellos para los que existen algoritmos para solucionarlos
en tiempo polinomial. Los problemas de la clase NP se caracterizan porque no es conocido
un algoritmo determínistico con orden polinomial capaz de resolverlos [PS82] [GJ79]. La clase
NP incluye una gran cantidad de problemas prácticos que aparecen en la actividad empresarial
e industrial [GRM91]. Los problemas iVP-Completos son los "problemas más duros en NP".
Se define como sigue: Si cualquier problema individual TVP-Completo puede ser resuelto en
tiempo polinomial por una máquina de Turing no-determinística, entonces todos los problemas
en NP pueden ser solucionados. Si cualquier problema en NP es intratable, entonces también
lo son todos los problemas ./VP-completos. Un problema iVP-Completo ir, por lo tanto, tiene
la propiedad mencionada : Si P / NP, entonces TT € NP — P. Más precisamente, TT e P si y
sólo si P = NP.
Asumiendo que P ^ NP podemos definir mejor el contexto NP como se muestra en la
figura 2-1
Note que NP no está simplemente particionado en P y iVP-completo. Si P difiere de NP
entonces deben existir problemas en NP que no son solucionables en tiempo polinomial ni son
JVP-completos.
La noción de ./VP-Completez se aplica a conjuntos, y una demostración de que un conjunto
es iVP-completo se interpreta como una demostración de que es intratable. Sin embargo, existe
un buen número de funciones aparentemente intratables para las que ninguna demostración de
./VP-Completez parece ser relevante. L. Valiant (1979) definió la noción de iVP-Completez para
recoger estos casos. Demostrar que una función es iVP-completa equivale a demostrar que es
aparentemente intratable para ser calculada, de la misma forma que demostrar que un conjunto
es iVP-completo equivale a demostrar que aparentemente es intratable para ser reconocido; de
hecho, si una función P-completa es calculable en tiempo polinomial entonces P = NP.
Valiant encontró muchos ejemplos de funciones iVP-completas, pero quizás el más intere-
sante sea el de la permanente de una matriz de enteros [GRM91]. La permanente tiene una
definición formalmente similar al de la determinante, pero mientras que el determinante es fácil
de calcular por el método de Gauss, los intentos de los últimos 100 años de encontrar una
forma eficiente para calcular la permanente han fracasado. Valiant aportó la primera razón
convincente del por qué de estos fracasos cuando probó que la permanente es un problema
iVP-completo.
Una vez que se ha probado que un problema 7r es iVP-Completo, el procedimiento para pro-
bar problemas adicionales iVP-Completos se simplifica significativamente. Dado un problema TT
que pertenece a NP, todo lo que necesitamos hacer es mostrar que un problema iVP-Completo
•K, puede ser transformado a n. Por lo tanto, el proceso de prueba de iVP-Completez para un
problema ?r consistirá de los siguientes pasos:
1. Mostrar que ir está en NP.
2. Seleccionar un problema iVP-Completo Tr'ya conocido.
3. Construir una transformación / de ?r'a ir.
4. Probar que / es una transformación polinomial.
Por ejemplo, para demostrar que un problema es iVP-completo se convierte el problema en
3-SAT, dado que 3-SAT lo es.
Seis problemas clásicos son ./VP-completos: el problema SAT (reduciendo SAT a 3-SAT); el
problema tridimensional matching -3DM- ( reduciendo 3DM a 3-SAT ); el problema cobertura
de vértices -CV- ( reduciendo CV a 3-SAT ); el problema de la partición ( reduciendo partición
a 3DM ); el problema del circuito Hamiltoniano ( reduciendo circuito Hamiltoniano a CV ); y
el problema del clique ( reduciendo clique a CV) [GRM91].
Al demostrar que estos problemas son iVP-completos lo que se pretende es ofrecer una
gama suficiente de problemas iVP-completos, que puedan ser utilizados para demostrar que
otros también lo son.
2.2 SAT
EL problema SAT es uno de los problemas de optimización combinatoria más importante por
ser el primero y uno de los más simples de los muchos problemas que se han demostrado ser
iVP-Completos [GRM91].
Satisfactibilidad proposicional es el problema de determinar, dada una fórmula de cálculo
proposicional en forma FNC (Fórmula Normal Conjuntiva), si existe una asignación de valores
de verdad para los cuales la fórmula se hace verdadera.
SAT es la abreviatura de Satisfactibilidad, refiriéndose al problema de la lógica proposicional
que así se llama y que consiste en determinar los valores de verdad de las literales Xj de una
forma normal conjuntiva (FNC) F = FlvF2v...vFn, donde cada Fi denomina una cláusula y
es una disyunción de literales Xj. Cada literal Xj es también conocida como una proposición.
Dado que se pudiera plantear un problema similar en Lógica de Predicados ó en otra lógica, el
problema anterior se llama Problema de Satisfactibilidad de Lógica Proposicional; sin embargo,
a menos que se especifique otra cosa, cuando se dice SAT se entiende que se trata del problema
SAT de lógica proposicional y no de otro.
Las literales Xj aparecen con signos negativos o sin ellos.
EJEMPLO DE UN PROBLEMA SAT: (~ PvRv ~ T)k(Pv ~ RvS)
Las cláusulas Fi pueden tener diferente número de literales dependiendo del problema SAT
de que se trate. Para distinguir entre el número de literales en la instancia, se usa a veces la
siguiente denominación:
2 -Cláusula: Cláusula con dos literales.
3 -Cláusula: Cláusula con tres literales.
k -Cláusula: Cláusula con k literales.
De esta forma, se tienen instancias de problemas SAT denominados como sigue:
2 -SAT: Sólo se permiten cláusulas con dos literales.
3 -SAT: Sólo se permiten cláusulas con tres literales.
k -SAT: Sólo se permiten cláusulas con k literales.
3 -SAT: Es la instancia del problema k-SAT el cual es iVP-Completo.
La estructura simple del problema 3-SAT lo hace uno de los problemas más ampliamente
utilizados para probar otros resultados de iVP-Completez [GRM91].
Prueba: Sea una instancia SAT dada. Mostraremos cómo transformar rápidamente una
instancia 3-SAT que sea satisfactible si y sólo si el problema SAT original fue satisfactible.
Más precisamente, vamos a reemplazar cláusulas que contienen más de tres literales con
colecciones de cláusulas que contienen exactamente tres literales y que tienen la misma satis-
factibilidad que el original. De hecho, suponga que nuestra instancia SAT contiene la cláusula
{xux2,...,xk}(k >4}.
Entonces esta cláusula será reemplazada por k-2 nuevas cláusulas, utilizando fc-3 nuevas
variables, zj(j = 1,..., k — 3). Las k-2 nuevas cláusulas son:
Si x\,..,x*k' es una asignación de valores de verdad para las x*s por la cual la cláusula
,x2, ...,xk}(k > 4) es verdadera, entonces existen asignaciones z*, ...,zj£_3 de valores de ver-
dad paralas z*s tal que todas las cláusulas {xi,x2,z\}, {x3,~ z\,z2}, {#4,~ ¿2,2:3},..., {xk-i,xk,'
Zfc_3J son simultáneamente satisfechas por (x*,z*). Contrariamente, si (x*,z*) es alguna asig-
nación que satisface todas las cláusulas {xi,x2,zi}, {x$,~ z\,z%}, { 4, ~ 22,23},..., {xk-i,xk,~
Zh-3}, entonces x* sola satisface {xl,x2, ...,xk}(k > 4).
Para probar esto, primero suponga que {xl,x2, ...,xk}(k > 4) es satisfecha por alguna
asignación x*. Entonces una, al menos, de las k literales x\,..,xk, digamos xr, tiene el val-
or 'verdadero'. Entonces podemos satisfacer todas las k — 2 de las cláusulas transformadas
{xi,X2,zi},{x3,~ zi,z2},{x4,~ Z2,Z3},...,{xk-i,xk,~ zk_3} asignando z* := 'verdadero' para
s < r — 2 y z* = 'falso' para s > r — 2. Es fácil ver que cada una de las k — 2 nuevas cláusulas
son satisfechas.
Contrariamente, suponga que todas las nuevas cláusulas son satisfechas por algunas asigna-
ciones de valores de verdad a ser x's y las z's. Mostraremos que al menos una de las x's debe
ser 'verdadero', así que la cláusula original será satisfecha.
Suponga por el contrario, que todas las z's son falsas. Dado que en las nuevas cláusulas
ninguna de las x's está negada, el hecho de que las nuevas cláusulas sean satisfechas nos dice
que pueden permanecer satisfechas sin ninguna de las x's . Por lo tanto, las cláusulas {z\}, {~
z\iz<i\-, {~ Z2,z%},..., {~ Zfc_4, .Zfc-3}, {~ Zfc_3}son satisfechas por los valores de z's. Si podemos
recorrer la lista de izquierda a derecha, nos regresaría que Z\ es verdadera, 22 e s verdadera, y
finalmente, que Zk-z es verdadera, y z^-z también es falsa, una contradicción que establece la
solución del problema.
Las transformaciones arriba mencionadas pueden ser llevadas a cabo en tiempo polinomial
[GRM91].
El problema 3-SAT es de especial interés: 3 es el valor más pequeño de k para el cual fc-SAT
es NP-Completo, mientras 2-SAT es solucionable en tiempo linea [SE76] [BA79].
El problema SAT se considera central en el estudio de la complejidad computacional. Mu-
chos problemas prácticos son TVP-Completos, esto implica que pueden ser eficientemente trans-
formados a 3-SAT [GJ79], o tener problemas componentes que pueden serlo. Por lo tanto,
un buen algoritmo SAT podría tener considerable utilidad. Dado que actualmente no existe
un algoritmo de tiempo polinomial para resolver instancias 3-SAT, las instancias duras carac-
terizan las limitaciones de los algoritmos de solución existentes, y señalan dónde se necesita
investigación adicional.
Una clase del problema SAT que vale la pena mencionar es Horn-SAT. Este fue definido
por Horn y se fundamenta en instancias donde cada cláusula tiene al menos una variable no
negada. Horn-SAT es solucionable en tiempo lineal [WFD84]. Muchos de los problemas pueden
ser convertidos a Horn-SAT, renombrando variables y generalizándolas.
2.3 Métodos de Solución
Los algoritmos para resolver instancias del problema SAT se clasifican en: completos e incom-
pletos. Los algoritmos completos evalúan cada posible solución. Los algoritmos incompletos no
realizan una búsqueda exhaustiva de cada posible solución por lo que no aseguran encontrar una
solución, si ésta existe. La principal ventaja de los algoritmos incompletos es que usualmente
Figura 2-2: Representación de SAT en el espacio.
son más rápidos que los completos. Davis-Putnam ( Regla de una literal ) es un algoritmo
completo considerado como uno de los mejores para resolver instancias de SAT [CAS91].
Un problema SAT tiene un espacio de soluciones finitas, con cardinalidad 2n. Tracemos
un espacio de las posibles soluciones de una instancia del problema SAT, en donde cada punto
negro representa la evaluación de una instancia SAT con resultado negativo ( insatisfactible )
y cada punto blanco representa la evaluación de una instancia SAT con resultado positivo (
satisfactible ). Cuando encontramos un punto blanco sabemos que el problema es satisfactible,
y para probar que es insatisfactible debemos revisar todos los puntos y no encontrar uno blanco.
Cada punto puede encontrarse conectado a otros, o a todos, por medio de reglas de transición.
El propósito de un algoritmo es encontrar un camino hacia un punto blanco de la manera más
rápida posible, o en su caso, mostrar que no existen puntos blancos. Las reglas de transición
están implícitamente definidas para cada algoritmo de solución del problema SAT.
Dado esto, podemos sugerir que existen para cada uno de los algoritmos instancias duras,
que para otros no serían tan duras. La figura 2-2 representa la búsqueda de estos puntos.
En el algoritmo de solución de Davis-Putnam las variables son eliminadas una por una desde
la fórmula, generando en muchos casos todas las posibles soluciones [MD60].
2.4 Elementos de SAT.
En el problema de SAT podemos encontrar tres elementos:
1. Un conjunto de n variables: X\,X2,X$, ....Xm
2. Un conjunto de literales. Las literales son variables las cuales toman valores positivos o
negativos.
3. Un conjunto de m cláusulas. Cada cláusula C está formada por k literales conectadas por
v (or) de la forma XivX2vX3V....Xk donde k es el numero máximo de literales en una cláusula
dada.
El objetivo de los algoritmos de solución para el problema SAT, es encontrar al menos una
asignación de valores de verdad a las variables que haga verdadera la instancia de SAT.
La información básica presentada en el punto anterior, puede ser combinada para generar
más información, como lo explicamos en el siguiente punto. Aunado a esto, con i écnicas de
visualización y desarrollo de las misma, podríamos crear explicaciones para estas instancias.
La necesidad de clasificar cada instancia de SAT nace de su complejidad y de la situación de
conocer métodos que resuelven ciertas instancias en tiempos aceptables, pero otras instancias
no.
2.5 Análisis de los Elementos del Problema SAT.
Mezclando los elementos descritos anteriormente definimos lo siguiente:
1. Frecuencia de la relación entre parejas de variable. Definimos FR2(X,Y) = í2, donde la
relación entre la variable X y la variable Y existe ¿2 veces.
2. Relaciones de signos entre parejas de variables. Una pareja de variables (X, Y) tiene
relaciones entre signos (bX,aY) donde 6 = {+,—} y a = {+,—}. Por lo tanto, nos quedan
4 relaciones de signo (++,—,H—,—(-) entre parejas de variables. La tabla 2.1 muestra estas
relaciones.
10
Variable 1AA~A~A
Variable 2B~BB~B
Relaciones
+++--+
Tabla 2.1: Relaciones de signos entre parejas de variables.
Variable 1AAA~A~ A~AA~ A
Variable 2BB~B~B~BB~BB
Variable 3C~C
~c~cccc~c
Relaciones+ + ++ + -^
h- + +-1 1-- + -
Tabla 2.2: Relaciones de signos entre tercias de variables.
3. Extendiendo la relación anterior, definimos las repeticiones de las relaciones de signos
entre parejas de variables con la función Signo2(X,Y,id) — r, donde id puede ser cualquiera
de las relaciones del punto anterior, y X, Y son dos variables cualesquiera. Esto es, la relación
id entre la variable X y Y se repite r veces.
4. Frecuencia de la relación entre tercias de variables. Definimos FR3(X, Y, Z) = ¿3, donde
la relación entre la variable X, la variable y y la variable Z existe í3 veces.
5. Relaciones de signos entre tercias de variables. Una tercia de variables (X, Y) tiene
relaciones entre signos (bX, aY, sZ) donde b = {+, - } , a = {+, - } y s = {+, - } Por lo tanto,
nos quedan 8 relaciones de signo (+ + +, + + - , H—, - , H—, + + - , H 1-, - + - ) entre tercias
de variables. La tabla 2.2 muestra estas relaciones.
Resumiendo, en este capítulo se presentó la definición de los problemas NP-Completos,
así como la teoría de la iVP-Completez. Se definió el problema SAT y su importancia en el
contexto computacional. Se fundamentó el estudio del problema 3-SAT, así como las partes
que lo componen. Se analizaron sus elementos y se definieron nuevas funciones.
11
Capítulo 3
Algoritmos de Solución del
Problema SAT.
En este capítulo se muestra el algoritmo de solución de Davis-Putnam y se definie una nueva
heurística para escoger la variable a propagar.
3.1 Davis-Putnam.
Durante mucho tiempo, el problema SAT fue abordado con un enfoque de demostración de
teoremas con algoritmos tipo Resolución. Dentro de estos enfoques sobresale el método de
Davis-Putnam [MD60]. Estos autores establecieron varias reglas útiles en la demostración
automática de Teoremas, mismas que son estudiadas en la Lógica Proposicional. Dentro de las
reglas de Davis-Putnam, se tienen particularmente dos que llaman la atención:
1) La regla de una literal (R1L)
2) La regla de Partición (RP)- Los problemas de SAT fueron abordados primero con R1L y
luego por RP.
El procedimiento DP [MD60] es esquematizado en la figura 3-1. Toma como entradas un
conjunto de cláusulas ^ sobre un conjunto de variables V, y regresa ya sea "satisfactible" o "no-
satisfactible". Desarrolla una búsqueda en profundidad en el espacio de todas las asignaciones de
verdad posibles, asignando incrementalmente valores a una variable y simplificando la fórmula.
Si al asignar a una variable un valor se produce una cláusula vacía, hace backtraking (cambiando
12
Algoritmo DP( ) :
Si X está vacío, regresar "satisfactiblé".Si 2 contiene una cláusula vacía, regresar "no-satisfactible".(Regla de Cláusula-Unitaria) Si X contiene una cláusulaunitaria c, asignar a la variable mencionada el valor deverdad que satisface c, y regresar el resultado de llamar DP( )en la fórmula simplificada.(Regla de Partición) Seleccionar de V una variable x a la cualno se le ha asignado un valor de verdad. Asignarle un valor deverdad, y llamar a DP( ) en la fórmula simplificada. Si estellamado regresa verdadero, entonces regresar "satisfactiblé"'.De otra manera, asignar a x el valor opuesto, y regresar elresultado de llamar a DP( ) en la fórmula simplificada.
Figura 3-1: Procedimiento DP
una asignación hecha previamente). El desempeño de este algoritmo se mejora mucho utilizando
propagación unitaria : Cuando una cláusula unitaria ( una que contenga una sola literal ) se
produce, a la variable en esa cláusula se le asigna el valor de verdad que la haga verdadera. La
fórmula entonces se simplifica y se continúa el proceso. Este proceso de propagación puede ser
ejecutado en tiempo lineal. DP combinado con propagación unitaria es uno de los métodos más
ampliamente utilizados para resolver el problema SAT.
Dado un conjunto de cláusulas J^ definidas sobre un conjunto de variables V , se define al
algoritmo de DP en la figura 3-1.
El algoritmo de solución utilizado para la evaluación de las instancias es el Davis-Putnam.
Se seleccionó el anterior algoritmo por las siguientes razones: por ser equivalente a un caso
particular de solución [BSL92]; por ser el más ampliamente utilizado como método general de
razonamiento en inteligencia artificial y finalmente, por ser uno de los métodos más utilizados
para las pruebas de SAT.
Una posible heurística utilizada para seleccionar la variable a propagar es el orden lexicográ-
fico: se escoge la variable 1, después la variable 2 y así sucesivamente. Esta heurística es una
13
referencia a [BSL95].
3.2 Davis-Putnam Mejorado.
Otra posible heurística para seleccionar la variable es utilizar la frecuencia de signo de cada
una de ellas. De esta forma, sacamos la frecuencia de cada variable con su signo positivo, y la
frecuencia con su signo negativo ( esto se puede realizar en un tiempo lineal ), y escogemos la
variable con mayor frecuencia con cierto signo, procediendo a propagarla, y así sucesivamente
con cada una de ellas. Esto será denominado DP-Mejorado.
14
Capítulo 4
Generar instancias del problema
SAT.
En este capitulo se expone el concepto de una instancia SAT, asi como los generadores de
instancias SAT de Selman, Pretolani y Dubois.
El proceso de generar instancias del problema SAT es similar a un proceso de muestreo
sobre un espacio de I m I * 2k « (™) * 2fc
Representemos este espacio por una serie de puntos. Los puntos representan instancias que
pueden ser creadas con una n y una m especifica. La heurística de cada generador escoge entre
estos puntos. Esto se muestra en la figura 4-1.
Existen varios tipos de generadores de prueba SAT [BSL95] [Gen94] [MU99] [HW97] [094]
[IPGW98], de los cuales fueron escogidos los generadores de Selman, Pretolani y Dubois por
su disponibilidad. A su vez, las instancias generadas son probadas por el algoritmo de Davis-
Putnam, por ser completo [Gol79] y por ser utilizado en los trabajos más recientes, como punto
de comparación.
Con respecto a la medición del método de Davis-Putnam, se optó por medirlo en base al
número de llamadas recursivas, por ser un valor representativo del algoritmo Davis-Putnam.
A su vez, se escogió la mediana en lugar del promedio porque los promedios del número de
llamadas son muy influenciables por un número muy pequeño de instancias que generan valores
extremadamente grandes. Aunque eso ocurra muy raramente, estos valores son lo suficiente-
15
600454
Figura 4-1: Espacio de instancias para una n y una m dadas.
mente grandes para hacer la variación tal que el promedio se hace grande, y nuestro interés es
que el grueso de instancias de la distribución sean la mayoría, no los casos inusuales o extremos.
Como la mediana es más robusta en la presencia de tales extremos [BSL92], parece ser una
estadística más informativa para los propósitos de esta tesis.
4.1 Casos de estudio.
4.1.1 Selman.
Selman creó un generador de instancias llamado Random k-SAT [Sel94]. Para un número de
variables n, y un número de cláusulas m dadas, una instancia 3-SAT es producida escogiendo
aleatoreamente (con distribución uniforme) tres variables distintas del conjunto de n disponibles,
y negando cada una con probabilidad 0.5. Note que este generador puede duplicar cláusulas en
una instancia SAT.
4.1.2 Pretolani.
El generador de instancias SAT Pretolani basa su operación en la generación de números
aleatoreos usando el método congruencial lineal con constantes predefinidas por él. Genera
16
de manera iterativa cláusulas de k literales (diferentes) y asigna con una probabilidad de 0.5 el
signo de cada una de ellas.
La semilla es la que se desarrolla conforme a estos números. En la prueba la semilla se
fue cambiando para cada una de las series. Una de las características notorias del generador
de Pretolani es que si no se cambia la semilla y se producen instancias variando m, la nueva
instancia produciría el mismo problema d e m - 1 pero agregando una cláusula.
4.1.3 Dubois.
El generador instancias de problemas SAT Dubois es el método congruencial con sus propias
constantes. Se utiliza una semilla para producir las variables aleatorias. Los signos se escogen
con una probabilidad de 0.5. Para cada instancia se generó una semilla distinta, y n y m fueron
variadas como en los casos anteriores.
17
Capítulo 5
Grafos.
En este capítulo se muestra la imortancia y el desarrollo de los grafos, asi como la definión de
hipergrafos.
5.1 Historia.
No es coincidencia que la teoría de grafos haya sido descubierta independientemente varias
veces, dado que ha sido propiamente relacionada con un área de las matemáticas aplicadas. De
hecho, una de las referencias más antiguas que se encontró de la teoría de grafos ocurre en los
trabajos de Euler, y aunque el problema original que estaba considerando puede ser visto como
un frivolo acertijo, sí surgió del mundo de la Física. Subsecuentes redescubrimientos de la teoría
de grafos hechos por Kirchhoff y Cayley también tuvieron sus raíces en el mundo de la Química
Orgánica. Las investigaciones de Kirchhoff en redes eléctricas provocaron en su desarrollo
de conceptos básicos y teoremas concernientes a árboles en grafos, mientras Cayley consideró
árboles surgiendo de la enumeración de isómeros orgánicos químicos. Otro acercamiento de
acertijo a los grafos, fue propuesto por Hamilton. Después de esto, la celebrada Conjetura de
Cuatro Colores llegó a ser importante y ha sido notorio desde entonces. En el presente siglo se
han hecho varios descubrimientos de la teoría de grafos los cuales se mencionan brevemente en
orden cronológico.
Euler (1707-1782) se reconoce como el padre de la teoría de grafos así como de la topología
cuando en 1736 estableció el famoso problema, sin solución en esos días, llamado Problema de
18
Figura 5-1: Un parque en Kónigsberg, 1736.
los Puentes de Kónigsberg (Kónigsberg Bridge Problem). Había dos islas a las orillas del río
Pregel conectadas por siete puentes como se muestra en la figura 5-1. El problema era empezar
en cualquiera de las cuatro áreas de tierra, caminar a través de cada puente exactamente una
vez y regresar al punto inicial. Uno puede intentar resolver este problema empíricamente, pero
ninguno de los intentos será exitoso [Har96] .
Para probar que el problema no es solucionable, Euler reemplazó las áreas de tierra por
un punto y cada puente por una línea uniendo los correspondientes puntos, de esta manera,
construyó un "grafo dual". Este grafo se muestra en la figura 5-2 donde los puntos están
etiquetados de manera que correspondan a las cuatro áreas de tierra de la figura 5-1. Mostrar
que el problema es irresoluble es equivalente a mostrar que el grafo de la figura 5-2 no puede
ser recorrido de manera que se pase por cada punto una sola vez.
Un grafo recorrible es aquel grafo que toca todos los puntos, y pasa una sola vez por cada
uno.
En lugar de tratar esta situación específica, Euler generalizó el problema y desarrolló un
criterio para determinar si un grafo es recorrible; es decir, que es un grafo conexo y cada punto
es incidente con un número de líneas par.
Kirchhoff desarrolló la teoría de árboles en 1847 para desarrollar un sistema de ecuaciones
19
Figura 5-2: El grafo del Problema del Puente Konigsberg
lineales simultáneas el cual define la corriente en cada rama y alrededor de cada circuito de
una red eléctrica. Aunque siendo físico, pensó como un matemático cuando él sustrajo una red
eléctrica con sus resistencias, condensadores, inductancias, etc.. Y la reemplazó por su corre-
spondiente estructura combinatorial consistiendo sólo de puntos y líneas sin ninguna indicación
del tipo de elemento eléctrico representado por líneas individuales. Es decir, Kirchhoff reem-
plazó una red eléctrica por su grafo subyacente y mostró que no es necesario considerar cada
ciclo en el grafo de una red eléctrica separadamente para solucionar un sistema de ecuaciones.
Una red eléctrica ideada N, su grafo subyacente G, y su árbol de expansión T se muestran en
la figura 5-3
Isómeros Químicos.
En 1857, Cayley [Car57] descubrió una clase importante de grafos llamados árboles con-
siderando los cambios de variables en el cálculo diferencial. Más tarde, él se comprometió a
enumerar los isómeros de los hidrocarburos saturados CnH2n+2, con un número dado de átomos
de carbono n, como se muestra en la figura 5-4
Cayley generalizó el problema de manera que se enfocó a encontrar el número de árboles
que se pueden formar con p puntos obteniendo la fórmula p7*"2 [Car57]. Posteriormente Jordán
20
N:
G: T:
Figura 5-3: Una red N, está basada en el grafo G, y un árbol de expansión T
H
IH C H
IH
Methane Ethane Propane Butane Isobutane
Figura 5-4: Los más pequeños hidrocarbonos saturados
21
Figura 5-5: "Alrededor del Mundo"
(1869) independientemente descubrió los árboles en un contexto puramente matemático, y
Silvestre (1882) escribió que Jordán lo hizo " sin tener ninguna sospecha de su relación en la
doctrina matemática moderna".
Un juego inventado por Sir William Hamilton [Bal47] en 1859 utiliza un dodecaedro sólido
regular cuyos 20 vértices están etiquetados con los nombres de sitios famosos. El jugador es
retado a viajar "alrededor del mundo" encontrando un circuito cerrado el cual pasa a través
de cada vértice exactamente una vez. Hamilton vendió su idea a un fabricante de juegos en 25
guineas; esto fue un movimiento prudente dado que el juego no fue un éxito financiero.
En términos gráficos, el objeto del juego es encontrar un circuito en el grafo del dodecaedro,
mostrado en la figura 5-5
La Conjetura de los Cuatro Colores.
El más famoso problema irresoluble en la teoría de grafos es la famosa Conjetura de los
Cuatro Colores. Este problema puede ser explicado en cinco minutos por un matemático a un
hombre común. Al final de la explicación, ambos entenderán el problema, pero ninguno será
capaz de resolverlo. Este problema se describe en[May65].
La conjetura enuncia que cualquier mapa en un plano en la superficie de una esfera puede
ser coloreado con sólo cuatro colores de manera que dos países adyacentes no tengan el mismo
color. Cada país debe consistir de una sola región conectada, y países adyacentes son aquellos
22
que tienen una línea límite (no únicamente un sólo punto) en común. La conjetura ha actuado
como catalizador en la rama de las matemáticas conocidas como topología combinatoria y está
cercanamente relacionada a la teoría de grafos. Más de la mitad de un siglo de trabajo de
matemáticos ha producido pruebas para casos especiales. El consenso es que la conjetura es
correcta pero poco probable de ser probada en general. Parece destinado a retenerse por algún
tiempo la distinción de ser el más simple y fascinante problema irresoluble de las matemáticas.
La Conjetura de Cuatro Colores tiene una historia interesante, pero su origen permanece
algo vago. Ha habido reportes de que Mobius estaba familiarizado con este problema en 1840,
pero sólo es definitivo que el problema fue comunicado a De Morgan por Guthrie alrededor de
1850. La primera de muchas "pruebas" erróneas de la conjetura fue dada en 1879 por Kempe
[Kem79]. Heawood [Hea90] encontró un error en 1890, él mostró sin embargo, que la conjetura
se hace verdadera cuando "cuatro" se reemplaza por "cinco" . Un ejemplo contrario, si se
encuentra, será necesariamente extremadamente grande y complicado, para que la conjetura
fuera probada más recientemente por Ore y Stemple [Ore69] para todos los mapas con menos
de 40 países.
La Conjetura de Cuatro Colores es un problema en la teoría de grafos porque cada mapa
produce un grafo en el cual los países (incluyendo la región exterior) son los puntos, y dos
puntos están unidos por una línea cuando los correspondientes países son adyacentes. Tal
grafo obviamente puede ser dibujado en el plano sin líneas que se intercepten. Por lo tanto,
sí es posible colorear los puntos de cada grafo plano con cuatro o menos colores así que los
puntos adyacentes tienen diferentes colores, entonces la Conjetura de Cuatro Colores habrá
sido aprobada.
La Teoría de Grafos en el Siglo XX.
El psicólogo Lewin [Lew36] propuso en 1936 que el "espacio de vida" de un individuo
está representado por un mapa planar. En tal mapa, las regiones representarían las varias
actividades de una persona, tal como su medio ambiente de trabajo, su casa, y sus hobbies. Se
señaló que Lewin estaba de hecho tratando con grafos, como se muestra en la figura 5-6 Este
punto de vista condujo a los sicólogos en el Centro de Investigación para Dinámica de Grupos
a otra interpretación sicológica de grafos, en la cual la gente es representada por puntos, y
las relaciones interpersonales por líneas. Tales relaciones incluyen amor, odio, comunicación, y
23
L
Figura 5-6: Un mapa y su correspondiente grafo
poder. De hecho, fue precisamente ese enfoque que condujo al autor al redescubrimiento de la
teoría de grafos.
El mundo de la física teórica descubrió la teoría de grafos en más de una vez. En el estudio
de la mecánica estadística por Uhlenbeck [Uhl60], los puntos significan moléculas y dos puntos
adyacentes indican la interacción más cercana de vecindad de alguna clase física, por ejemplo,
atracción magnética o repulsión. En una interpretación similar hecha por Lee y Yang [LY59],
los puntos significan cubos pequeños en un espacio euclidiano, donde cada cubo puede o no
estar ocupado por una molécula. Entonces dos puntos son adyacentes cuando ambos espacios
están ocupados. Otro aspecto de la Física emplea teoría de grafos como recurso ilustrador.
Feynmann [Fey49] propuso un diagrama en el cual los puntos representan partículas físicas y
las líneas representan trayectorias de las partículas después de las colisiones.
El estudio de las cadenas de Markov en la teoría de probabilidad, Feller [Fal57] involucra
grafos directos en el sentido de que los eventos están representados por puntos, y una línea
dirigida de un punto a otro indica una probabilidad positiva de sucesión directa de estos dos
eventos. Esto se encuentra explícito en el libro [Har65] en el cual una cadena Markov se define
como una red con la suma de los valores de las líneas dirigidas de cada punto igual a 1. Una
representación similar de un grafo dirigido surge en esa parte del análisis numérico involucrando
la matriz inversa y el cálculo de eigenvalores. Los ejemplos los proporciona Varga [Var62]. Se
proporciona una matriz cuadrada, preferentemente esparcida, y un grafo dirigido es asociado
24
con ella, en la siguiente manera: Los puntos denotan el índice de filas y columnas de la matriz
dada, y se tiene una línea dirigida del punto i al punto j cuando la entrada i,j de la matriz es
no-cero. La similitud entre este acercamiento y el de las cadenas de Markov es inmediata.
El crecimiento rápido de los campos de programación lineal y búsqueda operacional también
han hecho uso del enfoque de la teoría de grafos por el estudio de flechas en redes. Los libros
escritos por Ford y Fulkerson [For62], Vajda [Vaj61], y Berge y Ghouila-Houri [Ber65] involucran
teoría de grafos en esta manera. Los puntos de un grafo indican ubicaciones físicas donde ciertos
bienes pueden ser almacenados o embarcados, y una línea dirigida de un punto a otro, junto con
un número positivo asignado a esta línea, significa un canal para la transmisión de bienes y una
capacidad dando la máxima cantidad posible que puede ser embarcada en un mismo tiempo.
Dentro de las matemáticas puras, la teoría de grafos es estudiada en el libro pionero en
topología escrito por Veblen [Veb22]. Se define un complejo simplicial el cual consiste de
una colección V de "puntos" ( formando células: dos puntos son una célula.... h puntos son
(h — 1) células ) junto con una colección preescrita S de subconjuntos no-vacíos de V, llamados
"simplejos", satisfaciendo las siguientes dos condiciones:
1. Cada punto es un simplejo.
2. Cada subconjunto no-vacío de un simplejo es también un simplejo.
La dimensión de un simplejo es una menos que el número de puntos en él; un complejo es la
dimensión máxima de cualquier simplejo en él. En estos términos, un grafo puede ser definido
como un simplejo de dimensión 1 ó 0. Llamamos línea a un simplejo dimensión 1, y note que
un complejo es dimensión 0, si y sólo si consiste en una colección de puntos, pero ninguna línea
u otros simplejos dimensionales mayores. Aparte de estos "totalmente desconectados" grafos,
cada grafo es un complejo dimensión 1. Es por esta razón que el subtítulo del primer libro
escrito sobre teoría de grafos [Kon50] es " Kombinatorische Topologie der Streckenkomplexe".
Es precisamente porque el uso tradicional de las palabras punto y línea como términos
indefinidos en sistemas de axiomas para estructuras geométricas que hemos escogido usar esta
terminología.
25
Figura 5-7: Ejemplo de Grafo
5.2 Definición de un Grafo.
Un grafo G es definido usualmente como G — (V, E), donde V es un conjunto finito diferente de
vacío cuyos elementos se llaman nodos (V = {i\i = 1,...,N} ), E tiene como elemento a pares
de nodos llamados arcos ( E = {(i, j)\i G V y j € V} ). La figura 5-7 muestra el ejemplo de un
grafo.
El grado d(v), de un nodo v es el número de arcos con las cuales éste es incidente. Dos
nodos son adyacentes si hay incidencia en un arco común [SteOO]. El conjunto de vecinos, N(v),
de un nodo v es el conjunto de nodos que se encuentran adyacentes a él. El grado de un nodo
es también la cardinalidad de su conjunto vecino.
Un recorrido es una secuencia alternada de vértices y nodos, con cada nodo siendo incidente
a los vértices inmediatamente precediendo y sucediendo en la secuencia. Un camino es un
recorrido sin nodos repetidos. Una trayectoria es un camino sin vértices repetidos. Un camino
es cerrado si el vértice inicial es también el vértice terminal. Un ciclo es un recorrido cerrado con
al menos una orilla y sin vértices repetidos excepto que el vértice inicial sea el vértice terminal.
La longitud de un camino es el número de arcos en la secuencia que define un camino. Por lo
tanto, la longitud de una trayectoria o un ciclo es también el número de arcos en la trayectoria
o en el círculo. Si u y v son nodos, la distancia desde u hasta v, escrita d(u,v) es la mínima
26
Figura 5-8: Multigrafo
longitud de cualquier trayectoria desde u hasta v. En un grafo no-dirigido esto es obviamente un
métrico. La excentricidad, e(u), de un nodo u es el valor máximo de d(u,v), donde se permite
que v se extienda por todos los nodos del grafo.
El radio de un grafo G, rad(G), es el valor mínimo de e(u), para cualquier nodo U, y el
diámetro, diam(G), es el correspondiente valor máximo. Debería ser obvio que diam{G) <=
2rad(G).
Para un conjunto de nodos X, usamos G[X] para denotar el subgrafo inducido de G cuyo
conjunto nodos es X y cuyo conjunto arcos es el subconjunto de E(G) consistente de aquellos
arcos con ambas puntas en X. Para un conjunto S de nodos, usamos G[S] para denotar los
nodos de un subgrafo inducido de G cuyo conjunto de nodos es 5 y cuyo conjunto de arcos es el
subconjunto de V(G) consistente de dos nodos incidentes con cualquier nodo en S. Si Y es un
subconjunto de V(G), escribimos G — Y para el subgrafo G[V(G) — Y]. Un grafo es completo,
o un clique si cada par de nodos son adyacentes. Escribimos Km para grafos completos en m
nodos.
Un grafo no-nulo es conexo si, para cada par de nodos, existe un camino cuyos extremos son
los nodos dados. Escribamos u —y v si es una trayectoria de u a v. Entonces —» es una relación de
27
Figura 5-9: Grafo Múltiple
equivalencia. Las clases de equivalencia bajo —> son los conjuntos de nodos de los componentes
conexos de G. Un grafo conexo es por lo tanto un grafo con exactamente un componente
conectado. Un grafo no-completo G está fc-conectado si para cada subconjunto propio Y de
V(G) con menos que k elementos, G — Y está conectado. Un grafo G tiene conectividad k si G
está A;-conectado pero no (k + l)-conectado. Un grafo completo de k + 1 vértices se define que
tiene conectividad K.
Otros tipos de grafos.
Si el conjunto de arcos o el conjunto de nodos es infinito, decimos que el grafo es infinito.
No siempre existe una forma obvia para generalizar un parámetro finito para un grafo infinito.
Un lazo es un arco con ambos extremos el mismo nodo. Una arco múltiple es una colección
de arcos no-vacíos entre un par de nodos. Un grafo al que se le permite contener lazos y vértices
múltiples se llama grafo múltiple, este se muestra en la figura 5-9.
Una arco dirigido vw es un arco con dirección de i; a w. Uno podría pensar en un arco
dirigido como un par ordenado, y un arco no-dirigido como un par no-ordenado. Un digon es
un ciclo dirigido de longitud dos. Un hiperarco es un arco que conecta un número arbitrario de
nodos ( pensar en un hiperarco como un subconjunto del conjunto de nodos ).
Un grafo es dirigido si cada arco está dirigido, la figura 5-10 ejemplifica esta definición. Si
reemplazamos cada arco dirigido de un grafo dirigido H con la correspondiente arco no-dirigido,
28
-x (1,2) / - x
J
(3,2V(1,3) \ . / / (23)
Figura 5-10: Grafo dirigido
el grafo resultante es el grafo fundamental de G. Un grafo orientado M es un grafo dirigido
cuyo grafo fundamental es simple. Esto es si M no tiene lazos, ni vértices múltiples, ni signos.
5.3 Definición de Hipergrafo.
Un hipergrafo es un grafo con hiperarcos. Alternativamente, un hipergrafo es un conjunto
de nodos V junto con una colección de subconjuntos (los hiperarcos) del conjunto de nodos.
Un hipergrafo es /c-uniforme si cada arco conecta exactamente k nodos. Como con los grafos
infinitos, la generalización de un parámetro pudiera no ser obvia. Por ejemplo, el m-coloreo de
un grafo involucra asignar colores a los arcos de tal forma que cada arco tenga exactamente
dos colores. Para un hipergrafo, podríamos pedir que cada hiperarco contenga al menos dos
colores, o que cada hiperarco tenga todos sus nodos de diferente color.
29
Figura 5-11: Hipergrafo con k=3
30
Capítulo 6
Generador de Instancias de SAT
basado en Hipergrafos.
En este capítulo se mostrará la forma de representar las instancias SAT por medio de multihiper-
grafos y una definición formal de un generador de instancias SAT basado en multihipergrafos:
GenGraf.
6.1 Representación del problema SAT por medio de Hiper-
grafos.
Un posible enfoque para representar una cláusula de una instancia SAT por medio de grafos,
sería el tomar los nodos como variables y los arcos como las disyunciones.
Por ejemplo, un problema SAT con k = 1 sería representado únicamente por nodos en el
espacio, como se muestra en la figura 6-1.
Las cláusulas para problemas 2-SAT, están formadas por dos nodos y un arco ( la figura
6-2 muestra una cláusula de 2-SAT). Las cláusulas para 3-SAT están formadas por tres nodos
y tres arcos ( la figura 6-3 muestra una cláusula de 3-SAT). Por lo tanto, para fc-SAT, donde
0 <= k < 3, tendríamos k nodos y k — 1 arcos por cláusula y para k >= 3, tendríamos k nodos
y k arcos por cláusula.
Hasta este punto hemos representado cláusulas de SAT en grafos, pero ¿ qué pasa con las
31
Figura 6-1: Instancia 1-SAT
Figura 6-2: Cláusula 2-SAT
32
Figura 6-3: Cláusula 3-SAT
Figura 6-4: Instancia 2-SAT
33
Figura 6-5: Instancia 3-SAT
representaciones de instancias completas? Un primer acercamiento nos llevaría a las representa-
ciones de instancias de 2-SAT en la figura 6-4 y de instancias 3-SAT en la figura 6-5
Analicemos en este punto las representaciones de instancias 2-SAT y 3-SAT dados en las
figura 6-4 y en la figura 6-5. Como antes definido, las cláusulas 2-SAT están formadas por dos
nodos y un arco, y las cláusulas 3-SAT están formadas por tres nodos y tres arcos ( formando
triángulos). La interpretación de la instancia de la figura 6-4 es un problema 2-SAT con siete
cláusulas ((AB)(AD)(DE)(DG)(EH)(GH)(EB)), pero también podría ser una instancia 4-
SAT con dos cláusulas ((ABED)(DEGH)). La figura 6-5 es una instancia 3-SAT con cuatro
cláusulas ((ABC)(DCA)(DEC)(ECB)). Otra interpretación de la misma es una instancia
2-SAT con ocho cláusulas ((AB)(AD)(AC)(DC)(DE)(EB)(BC)(EC)). Esto indica que la
representación del problema SAT usando grafos es ambigua.
Esto nos lleva a otro enfoque para representar cláusulas de SAT utilizando otro tipo de
grafos: hipergrafos. Uno de los primeros en utilizar hipergrafos para el problema de SAT fue
Gallo [GG92]. Representamos una instancia fc-SAT por medio de un fc-hipergrafo, un grafo
con hiperarcos de valor k, y cada una de sus cláusulas estarían formadas por k nodos con un
hiperarco de valor k. Una instancia 2-SAT se representa con un 2-hipergrafo, dos nodos con
un hiperarco de valor 2 representan una cláusula; una instancia 3-SAT se representa con un
34
Figura 6-6: Cláusula 3-SAT representada por hipergrafos
3-hipergrafo, tres nodos con un hiperarco de valor 3 representan una cláusula.
Pasemos a las instancias con n variables, m cláusulas y A; de longitud por cláusulas. Estas
formarían un fc-hipergrafo, con n nodos y m hiperarcos.
En la figura 6-6 se muestra una representación por medio de hipergrafos de una cláusula 3-
SAT. Con este enfoque, la ambigüedad identificada en la representación por medio de grafos es
eliminada, y las instancias SAT de las figuras 6-4 y 6-5 serán instancias 2-SAT ( 2-hipergrafos).
Hasta el momento hemos definido cláusulas omitiendo la representación de los signos para
cada una de las variables involucradas en la cláusula. Para esto, se define que cuando la
variable sea negativa se aumentará un punto entre el nodo y la punta del hiperarco que señala
esta variable en la relación. Por ejemplo, en la cláusula 3-SAT de la figura 6-6 (AEC) tiene
combinaciones de signos como (A ~ CE) y (~ A ~ CE) y sus representaciones se muestran en
la figura 6-7.
Para una cláusula 3-SAT existen ocho combinaciones de signos(+++, -H—, H—, —, —h, —+
+, 1 , H h) posibles que parten de lo que llamaremos una cláusula base ( cuando la
combinación de signos del hiperarco es de + + +, o sea que no contiene ningún punto entre las
puntas del hiperarco y los nodos) y representan una cláusula dentro de una instancia 3-SAT.
Ahora, dentro de una instancia SAT pueden existir dos o más cláusulas con las mismas
variables pero diferente combinación de signos; por lo que puede existir en el hipergrafo 3 nodos
35
Figura 6-7: Representación de cláusulas 3-SAT con signo.
36
Figura 6-8: Instancia 3-SAT representada por multihipergrafo
que se encuentren conectados por más de un hiperarco. Este concepto lo definimos como multi-
hipergrafo: hipergrafos que pueden contener hiperarcos que conectan a los mismos nodos. Para
la definición específica de instancias SAT estos hiperarcos deben ser diferentes en combinación
de signos ( puntos entre los nodos y las puntas de los hiperarcos ) distintos. La figura 6-8
muestra una instancia de 3-SAT con dos cláusulas representada por un multihipergrafo.
6.2 Los Grafos y la Cristalografía.
Todos hemos observado un tablero de ajedrez, y nos hemos dado cuenta de su simetría. Una
repetición de líneas paralelas formadas por un cuadro negro y un cuadro blanco consecutiva-
mente, el cuadro de inicio de estas líneas es alternadamente un cuadro negro y luego un cuadro
blanco. Cada uno de los elementos de las piezas de ajedrez se mueve en estas dos direcciones,
formando coordenadas. Aunque el tablero de ajedrez tiene un grupo finito de cuadros, podemos
tomar un grupo infinito de cuadros negros y blancos formando una "sábana" infinita de tipo
tablero de ajedrez. A esto se le llama la teoría de grupos infinitos bidimensionales (los grupos
37
de simetría de diseños que se repiten, como los que se ven en el papel tapiz o en los pisos de
baldosa) [Cox71]. Estos grupos, se distinguen de su análoga teoría tridimensional por ser más
fáciles de visualizar.
La teoría bidimensional se basa en translaciones independientes cuya dirección es indepen-
diente. El cristalografo E.S. Fedorov demostró que no hay más que diecisiete de esos grupos de
isometrías. En nuestro siglo fueron redescubiertos por Pólya y Niggli [Cox71]. Los símbolos que
emplearemos para denotarlos son los de las Tablas Internacionales de Cristalografía de Rayos
X.
6.2.1 El Grupo pl
El caso más sencillo de la teoría bidimensional es el del grupo pl, en donde se generan dos
traslaciones independientes X, Y. Una traslación es un movimiento en el espacio plano, en
el caso la teoría bidimensional. Como la inversa de una traslación es otra traslación y el
producto de dos traslaciones es una traslación también [Cox71] , este grupo consiste solamente
de traslaciones. Como XY = YX, estas traslaciones son simplemente XXYY para todo par de
enteros de X, Y.
Un objeto cualquiera puede ser transformado por el grupo pl en una colección infinita de
objetos, dispuestos de manera que generan un diseño. Cuando el objeto es sólo un punto, el
diseño será una colección de puntos que se llama latiz bidireccional. Cada punto de la latiz
se asocia de manera natural con el símbolo de la traslación por medio de la cual fue derivada
comenzando desde el punto original uno( figura 6-9 ).
En la figura 6-9 se muestra la formación resultante que puede dar el grupo pl. Observemos
la celosía bidimensional formada (diseño del grupo pl) , y partamos del punto uno hacia delante
( quitando los puntos hacia atrás y los puntos hacia arriba del punto 1). El resultado de la
segmentación del grupo pl se muestra en la figura 6-10. Como podemos observar, este nuevo
grupo segmentado sigue siendo infinito, pero esta limitado a crecer hacia delante y hacia abajo
del grupo pl.
Esto nos ayuda a controlar los puntos y poderlos generar sin la influencia de los puntos
existentes hacia atrás y hacia arriba del grupo.
38
o o o o o o oX Y Y2 XY2 XY
o o o o o o o
X'Y Y XY X*Yo o o o o o o
X1 1 X X2
o o o o o o o
Y1 XY1
o o o o o o oY2
Figura 6-9: Grupo pl
O O O O O O O
1 X X 2 X3 Xx
o o o o o oxr1 xY1 xY1
o o o o o o oXY2 XY 2 XY2 XYV
Figura 6-10: Grupo pl segmentado
39
o1
o
oX
0
oX2
o
0
X3
o
o o oxx
o oXY"1 XV1 XY1 XY1
Figura 6-11: Grupo segmentado de una sola capa pls.
6.2.2 Hipergrafos base formados por segmentos de grupo de una sola capa
El grupo segmentado pl está definido como infinito partiendo del punto uno. Ahora convirtamos
este grupo en un diseño finito con sólo dos capas ( esto es, sólo dos líneas horizontales de puntos:
Y° y y - 1 ) . Este grupo se forma tomando un valor constante para Y = 1 y un valor definido de
X. El resultado de este grupo finito, al que llamaremos grupo pls, este se muestra en la figura
6-11,
Regresemos en este punto a los hipergrafos, y definamos hipergrafos base como los hiper-
grafos formados de hiperarcos base y sin etiquetas. Construyamos un grafo a partir de nuestro
grupo pls poniendo un nodo en cada uno de los puntos de pls. El número de nodos resultante
es 2x donde x es la potencia máxima que puede tomar la traslación X. Como cada uno de los
nodos representa una literal, para un hipergrafo dado
n = 2X
donde n es el número nodos del hipergrafo ( variables ). Y si queremos calcular x a partirde n entonces
x = ra/2
Esta es la base de la creación de los nodos para generar hipergrafos de una sola capa que
40
i i+\ i+l y
Figura 6-12: Ecuación para formar hiperarcos en triángulos simples
Figura 6-13: Hipergrafo base con triángulos simples de una sola capa,
representan instancias SAT.
Triángulos simples formados a partir de grupos de una sola capa.
Una vez colocada la base de los nodos del hipergrafo base, crearemos los hiperarcos base entre
ellos. Comenzando con el punto 1 del grupo pls, los hiperarcos estarían definidos por la ecuación
de la figura 6-12, donde F es la concatenación de los triples formados. A estos llamaremos
triángulos simples.
El hipergrafo resultante se muestra en la figura 6-13.
El número de hiperarcos formado es igual a x — 1 ( x es la potencia máxima de X en nuestro
grupo). Como los hiperarcos representan las cláusulas,
41
= r ni 2-3ri=0
i+1 1+1 y , n/2-2 ^ ni2-1>\X ' l ' X
Figura 6-14: Ecuación para formar hiperarcos en triángulos simples conectados.
m = x — I
si expresamos x en términos de n entonces:
m= ( n -
Notemos que este hipergrafo base sólo puede ser formado por un número impar de nodos.
Para formar hipergrafos base con un número de nodos pares, introducimos el concepto de
hipergrafo base conectado. El hipergrafo base conectado tiene la cualidad de conectar el último
nodo con el primero. Esto es, conecta el nodo Xx con el I.
El hipergrafo base conectado de triángulos simples de una sola capa, comenzando con el
punto I del grupo pls, los hiperarcos estarían definidos en la ecuación de la figura 6-14, donde
F es la concatenación de los triples formados.
El hipergrafo base resultante se muestra en la figura 6-15.
Otra forma de ver este hipergrafo se muestra en la figura 6-16.
El número de hiperarcos formado es igual a x ( la máxima potencia de nuestro grupo
segmentado )
Como los hiperarcos representan las cláusulas,
m — x
42
Figura 6-15: Hipergrafo base conectado de triángulos simples con una sola capa.
Figura 6-16: Hipergrafo base conectado con triángulos simples de una sola capa. Otra vista
43
_yy yy >x y
(n-l)/2-l (n-l)/2 (n-l)/2 -
x 'X x y
Figura 6-17: Ecuación para formar hiperarcos en triángulos dobles para n impar
Figura 6-18: Hipergrafo base de triángulos dobles con una sola capa y n impar.
si expresamos x en términos de n entonces:
m = n/2
Triángulos dobles formados a partir de grupos de una sola capa.
Creando una capa en donde cada uno de los nodos superiores se conecta con el siguiente nodo
y con un nodo de la capa inferior, podemos hacer lo contrario también: Conectar los nodos
inferiores con su siguiente nodo y un nodo superior, a estos le llamaremos triángulos dobles. La
definición de los hiperarcos formados (con una n impar) esta dada en la ecuación de la figura
6-17 donde F es la concatenación de los triples formados y n es un número impar.
El hipergrafo generado se ilustra en la figura 6-18.
44
fu/2-1i i i+i i+i
y \x¡=0
_ , -^-, i . i+i ¡+i ' i ( i+i
Figura 6-19: Ecuación para formar hiperarcos en triángulos dobles para n par
El número de hiperarcos formado sería:
Como n = 2x — 1 podemos expresarlo como
x = n — 2
Como los hiperarcos representan las cláusulas, entonces
m = n — 2
Para una n par los hiperarcos estarían definidos por la ecuación de la figura 6-19El número de hiperarcos formado sería:
Como n = 2x podemos expresarlo como
n-2
45
Figura 6-20: Hipergrafo base de triángulos dobles con una sola capa y n par.
v = n r(n-l)/2-2
Ilí,2 2 | \ / i ¡+1 i+l - I V i+1 i+1 -1 M - ' W («-D/2-1 (n-l)/2 (n-l)/2 " l ^ k (n-l)/2 (n-l)/2 "1
r \J[x>x 'X y j[x 'X y 'X y j\[x x >x y ji[x x y >xy
Figura 6-21: Ecuación para formar hiperarcos en triángulos dobles conectados para n impar
Como los hiperarcos representan las cláusulas, entonces
m — n — 2
Como en los triángulos simples se puede crear un hipergrafo base conectado pero con trián-
gulos dobles. La definición de éste (para una n impar) se muestra en la ecuación de la figura
6-21, donde F es la concatenación de los triples formados y n es un número impar.
El hipergrafo resultante se muestra en la figura 6-22.
El número de hiperarcos formado sería:
46
Figura 6-22: Hipergrafo base conectado con triángulos dobles de una sola capa y n impar
Como n = 2x podemos expresarlo como
n-2
Como los hiperarcos representan las literales, entonces
m = n — 2
La definición de un hipergrafo base conectado con triángulos dobles y una n par es la
ecuación de la figura 6-23
El número de hiperarcos formado sería:
x + x — \ = clx —
47
n/2-l
¡=0
i ¡+1 (+1 ~lS\( i+l í+1 " ' i+2
xx x y \\x 'X y 'Xn/2 . n/2 - 1
Figura 6-23: Ecuación para formar hiperarcos en triángulos dobles conectados para n par
Figura 6-24: Hipergrafo base conectado con triángulos dobles de una sola capa n par
Como n = 2x podemos expresarlo como
n - 1
Como los hiperarcos representan las literales, entonces
m = n — 1
El hipergrafo formado se muestra en la figura 6-24.
Hemos definido hipergrafos base conectados tomando dos nodos superiores y el primer nodo
48
M ¿ + 1 - I V i + l ¡ + 1 " I ¡ + 2 - 1 \ ] ( n / 2 . n l l \ \ ( ( » l ) / 2 ( n l ) 2
' X y }[x ' X y .JC y ¡\{x >l>x y )\{x >x y >xy
Figura 6-25: Ecuación para formar hiperarcos en triángulos dobles doblemente conectados paran par
inferior, en el caso de n impar, y dos nodos inferiores y el primero superior, en el caso de n
par. Pero cuando tenemos un número de nodos par podemos definir los dos hiperarcos. La
definición del hipergrafo base resultante se muestra en la ecuación de la figura 6-25
El número de hiperarcos formado sería:
x + x = 2x
Como n = 2x podemos expresarlo como
n
Como los hiperarcos representan las literales, entonces
m = n
El hipergrafo formado se muestra en la figura 6-26.
6.2.3 Hipergrafos base formados por segmentos de grupo de varias capas
Hasta ahora, hemos generado hipergrafos base a partir de un segmento del grupo pls, en este
punto formaremos hipergrafos a partir de n capas.
Definimos x como la máxima potencia de X y y como la máxima potencia de Y en la función
de traslación del grupo pls. Por lo tanto, x define el ancho de las capas y y define el numero
49
Figura 6-26: Hipergrafo base doblemente conectado con triángulos dobles de una sola capa npar.
50
0 0 0 0 0 0 o
1 X X2 X3 X*o o o o o o
XY' XY1 XY1
o o o o o o o
XY2 XY2 XY2 XY*
Figura 6-27: Grupo pls segmentado para varias capas.
de capas ( y y x tienen que ser mayor que 1). El grupo resultante se muestra en la figura 6-27.
Por lo tanto, el número de nodos n será :
n = x *y
y el número de capas:
y = x/n
Dado esto, podemos generar segmentos del grupo psl a partir del número de nodos y el
número de capas.
x será definida como:
x = n/y
donde n tiene que ser múltiplo de y
51
v= r((y/2-1)
/i=0
n/y-2r/ - h • - h •
r\\x" y -x"*y ' /¿=o IA
. r¡=o
,• -h ¡ + 1 -h i+i -h
xy >x y 'X y
Figura 6-28: Ecuación para formar hiperarcos en mallas simples
r
((y/2-1)rn=0
r(((ii ^/•? ^ r(,(.(y-l)/¿r
r [[je y x y 'X yh -h n/y-2 ~h nly-\ ~
x y >x y >x yA+l "A-l n/y-2 -A-l «/y-1 -
y -X y x y
Figura 6-29: Ecuación para formar hiperarcos en mallas simples conectadas.
Mallas simples
Las mallas simples están definidas por la ecuación de la figura 6-28, donde F es la concatenación
de los triples formados.
El hipergrafo base resultante se muestra en la figura 6-30.
Como los triángulos dobles y sencillos de una sola capa, también las mallas pueden ser
conectadas. Una malla simple conectada se muestra en la figura 6-31 y su definición en la
figura 6-29 donde F es la concatenación de los triples formados.
Mallas Dobles
Las mallas dobles están definidas por la ecuación de la figura 6-32, donde F es la concatenación
de los triples formados.
El hipergrafo base resultante se muestra en la figura 6-34.
Una malla doble conectada se muestra en la figura 6-35 y su definición se muestra en la
figura 6-33, donde F es la concatenación de los triples formados.
52
Figura 6-30: Hipergrafo base de Malla simple.
Figura 6-31: Hipergrafo base de Malla simple con conexión.
53
(.(.yi 2-1)rA=0
h=\
¿=0r . _ , . i+h -A i+A+1 "A ¡+A+1 - A - A f ¡+h+2
MH r V . r V , r V r "V 'X
nly-1
rm ¿y- A - l ¡ -h ¡ + -A-l
'X
Figura 6-32: Ecuación para formar hiperarcos en mallas dobles.
«y/ 2-1)r»=0
i+h ->> i+h+l ~h i+h+l - W
y y ^
rA = l
2-1)
r I M I Xh ~h n/y-2 ~n nly-l
i y ' v y > v
i Z rTJY ¡ -A í -*-l i+l -A
r [ r | [ x ) ' 'X^ 'X yh+l -A-l nly-1 -h~l nly-l ~h
x y x y 'X y
i+h+2 "
x y1 "A í+A+1 -
y x y
í " * í+l "A í+l "A" 1
xy x y x y
Figura 6-33: Ecuación para formar hiperarcos en mallas dobles conectadas.
Figura 6-34: Malla doble sin conectar.
54
Figura 6-35: Malla doble conectada.
55
6.3 Uso de los hipergrafos base para generar instancias SAT.
6.3.1 Método para acomodar las etiquetas en los hipergrafos base.
Acabamos de definir una forma de hipergrafo plano, pero para modelar diferentes instancias
del problema SAT debemos de tener una forma de generar aleatoriamente una permutación de
las etiquetas de los nodos del hipergrafo. Existen n! formas posibles de etiquetar el hipergrafo
( n es el numero de nodos del hipergrafo).
Un algoritmo para generar las n\ posibles permutaciones de las etiquetas de los nodos de un
hipergrafo. Partiendo de un etiquetado del hipergrafo usar a lo mucho n — 1 operaciones con-
secutivas de intercambio, i.e. seleccionar dos nodos e intercambiar sus etiquetas . El Algoritmo
específico es el siguiente:
1. Hacer una lista tamaño n con los valores l,2...n
2. Hacer j = 1
3. Generar un número aleatorio i en el rango de 1 a n — j
4. Intercambiar i con j + i.
5. j = j + 1.6. Si j < n entonces regresar al punto 3.
Un ejemplo con n = 3 se muestra en la figura 6-36.
6.3.2 Método para generar los signos de las cláusulas.
Dado que una cláusula ( equivalente a un hiperarco ) tiene 8 combinaciones de signo ( figura
6-37 ), los signos de un hiperarco se seleccionan generando un número aleatorio de 0 a 7 y la
asignación del signo es de acuerdo a la siguiente tabla 6.1
Un hipergrafo base puede generar como máximo x cláusulas ( x es la potencia máxima de
X ). La selección de los signos de las cláusulas, nos puede dar un rango para m de x hasta 8x.
En el caso de los triángulos simples, el cociente ( m/n ) puede variar desde 1 hasta 4 y en el
caso de los triángulos dobles puede variar desde 1 hasta 8.
6.3.3 Generador de instancias SAT por medio de hipergrafos: GenGraf
El algoritmo para generar una instancia de GenGraf se muestra en la figura 6-38
56
l=o: i= t=4:j=2
Figura 6-36: Posibles formas de etiquetar un hipergrafo base de tres nodos.
01234567
+ + ++ + --1———h- + +- + -+ - +
Tabla 6.1: Asignación de relaciones
57
BA B A BA B A BA B A BA B
C C C C C C C C
(ABC) (AB~C) (A~B~C) (~A~B~C) (~A~BC) (~ABC) (A~BC) (~AB~C)
Figura 6-37: Hiperarco base desarrollado en 8 hiperarcos con signo.
GenGrafQ
{Genera Permutaciones de n nodos;
Genera hipergrafo;
for (int cont=l; cont<=m/x; cont++)
for (int contando=l; contando<=hiperarcos formados por el grafo; contando++)
{Escoger aleatoriamenet una de las ocho
posibles combinaciones de signos que no se haya escogido
Crear cláusula
Figura 6-38: Algoritmo GenGraf.
58
Capítulo 7
Resultados.
En este capítulo se mostrará los resultados de las pruebas con los generadores de instancias
SAT de Selman, Pretolani y Dubois, así como los resultados obtenidos con GenGraf y las
comparaciones entre los mismos.
7.1 Donde se encuentran los Casos Duros para el Problema
SAT.
Es bien sabido que para muchos problemas iVP-completos, tales como fc-SAT, etc., los casos
típicos son fáciles de solucionar [Tur88], de modo que los casos duros deban ser raros. No hay
contradicción aquí, puesto que la complejidad de NP es generalmente un análisis del caso peor
para una clase entera de problemas, por lo que no menciona nada sobre la dificultad de casos
típicos. Sin embargo, esta situación plantea la pregunta " dónde están los casos realmente
duros de los problemas de NP? ". ¿Se puede definir una subclase de problemas que debe
ser típicamente difícil de solucionar (exponencial), o los casos duros aparecen como " casos
patológicos raros " dispersos imprevisiblemente en el espacio del problema ?
Para muchos problemas de NP uno o más " parámetros de la orden " pueden ser definidos
[PC91], y los casos duros ocurren alrededor de valores críticos determinados de estos parámetros
de la orden. Además, tales valores críticos forman un límite que separa el espacio de problemas
en dos regiones. Una región es underconstrained (problemas que no tiene suficientes restric-
ciones) , así que la densidad de soluciones es alta, haciendo relativamente fácil de encontrar una
59
Capítulo 7
Resultados.
En este capítulo se mostrará los resultados de las pruebas con los generadores de instancias
SAT de Selman, Pretolani y Dubois, así como los resultados obtenidos con GenGraf y las
comparaciones entre los mismos.
7.1 Donde se encuentran los Casos Duros para el Problema
SAT.
Es bien sabido que para muchos problemas iVP-completos, tales como fc-SAT, etc., los casos
típicos son fáciles de solucionar [Tur88], de modo que los casos duros deban ser raros. No hay
contradicción aquí, puesto que la complejidad de NP es generalmente un análisis del caso peor
para una clase entera de problemas, por lo que no menciona nada sobre la dificultad de casos
típicos. Sin embargo, esta situación plantea la pregunta " dónde están los casos realmente
duros de los problemas de NP? ". ¿Se puede definir una subclase de problemas que debe
ser típicamente difícil de solucionar (exponencial), o los casos duros aparecen como " casos
patológicos raros " dispersos imprevisiblemente en el espacio del problema ?
Para muchos problemas de NP uno o más " parámetros de la orden " pueden ser definidos
[PC91], y los casos duros ocurren alrededor de valores críticos determinados de estos parámetros
de la orden. Además, tales valores críticos forman un límite que separa el espacio de problemas
en dos regiones. Una región es underconstrained (problemas que no tiene suficientes restric-
ciones) , así que la densidad de soluciones es alta, haciendo relativamente fácil de encontrar una
59
solución. La otra región es overconstrained (problemas que tiene demasiadas restricciones), y
muy poco probable de contener una solución. Si existen las soluciones en overconstrained ,
tienen tal mínimo local que cualquier algoritmo razonable es probable que la encuentre. Si no
hay solución, entonces una búsqueda en profundidad puede establecer generalmente esto con
facilidad, ya que los caminos potenciales de la solución se acortan generalmente pronto en la
búsqueda. Los problemas realmente duros ocurren en el límite entre estas dos regiones, donde
es baja pero no insignificante la probabilidad de una solución. En este punto hay típicamente
muchos mínimos locales que casi corresponden a las soluciones separadas por las altas " barreras
de la energía ". Estas casi soluciones forman los mínimos locales profundos que pueden atrapar
a menudo los métodos de la búsqueda que confían en la información local.
Al ser posible localizar una región donde los problemas duros ocurren, es posible predecir
si un problema determinado es probablemente fácil de solucionar. Esto ha ayudado en la
definición de los dominios determinados del problema; en la identificación dura del problema,
y finalmente; para la predicción de la probabilidad de la existencia de la solución [Pur83].
Dureza de los Grafos.
Primero repasamos los casos bien estudiados donde el comportamiento de un sistema com-
plejo, incluyendo transiciones de la fase, se puede describir por un parámetro del orden. Por
ejemplo, la probabilidad que un gráfico al azar esté conectado, o que contenga un circuito de
Hamilton, o un triángulo etc., tiene un umbral sostenido para los valores determinados de la
conectividad media del gráfico. En la caja de conectividad del gráfico y de circuitos de Hamil-
ton, este umbral depende del grado del gráfico también. Otras características de gráficos al
azar también muestran comportamiento interesante alrededor de la punta de la transición en
las cuáles son características de transiciones de la fase. En detalle, el grado del subgrafo conec-
tado más grande, crece muy rápidamente en función de la conectividad media, mientras que la
conectividad crítica se acerca del subgrafo menos conectado. También, el grado de los subgrafos
debajo de la demostración del umbral es una distribución fractal [KS85]. Nuestro interés en
transiciones de la fase se desprende del descubrimiento de que al generar problemas aleatorios
difícilmente ocurra en tales límites. La importancia de las transiciones de la fase para la in-
teligencia artificial [HH87] discute que los sistemas complejos integrados por muchos valores que
obran recíprocamente se pueden entender a menudo en el nivel macroscópico en términos de
60
algunos parámetros de la orden que sean característicos del sistema en su totalidad. Resumir
las características de sistemas complejos a través de un conjunto pequeño de parámetros es
rutinario en la mecánica estadística [Fu89] [KS85]. Esto es posible porque una gran cantidad de
interacciones locales pueden producir comportamiento macroscópico coordinado dramático, tal
como transiciones de la fase, que no dependen de las interacciones detalladas dentro del sistema
[KP83][Pur83].
Un Ejemplo: El grafo coloreado es un problema de la satisfacción de restricciones, donde
cada variable puede adquirir un número de valores posibles (" colores ") y existen los apremios
binarios que prohiben pares determinados de variables con el mismo color. La meta es consid-
erar si existe una asignación de colores a las variables que satisfacen los apremios y utilizan
solamente colores de K, o señala que no existe asignación posible. Esta es una versión del
problema de la decisión del coloreo de K; la meta general es encontrar el mínimo K que sat-
isface los apremios. Cualquier solución a un problema del coloreo de grafos se puede utilizar
para generar otras soluciones intercambiando los colores, implicando una rotación simétrica del
color. Muchos problemas prácticos de la satisfacción de restricciones, tales como construcción
del horario, se pueden asociar en un problema de coloreo de grafos. El coloreo de grafos se
ha investigado extensiva, teórica y empíricamente [Tur88]. Aunque el coloreo de grafo es un
problema de iVP-Completo, estos autores señalan que es " casi siempre fácil ". En detalle, un
simple algoritmo de búsqueda a profundidad de Brelaz fue encontrado para solucionar todos los
gráficos generados al alzar [Tur88]. Restringimos nuestra atención a los grafos al azar y no a
la creación de gráficos en donde podamos controlar el paso del grupo de los underconstrained
a los overconstrained. Cualquier grafo que se pueda reducir a un grafo que sea fí-coloreable
trivial (o no) se puede solucionar sin búsqueda. Investigamos solamente el espacio de grafos
con cierto tipo de restricciones, porque los problemas duros deben estar en este espacio.
Como hemos podido notar, los grafos tienen la facilidad de ser entendidos de una forma
abstracta, y de poder definir su cambio de fase de problemas en el grupo de underconstrained
a overconstrained dependiendo, además de otras variables, de las conexiones entre los mismos.
Ahora, al poder representar el problema SAT con un grafo se combina la conectividad del
mismo y las relaciones entre variables con signos, logrando definir el área de transición y con
esto generar problemas duros.
61
7.2 Casos de Estudio.
Con el propósito de evaluar el desempeño del generador de instancias propuesto, GenGraf,
se estudiaron 100 instancias con 51 series ( en total 5,100 instancias ) generadas por cada
generador, con una n=50 y variando m de 10-1000 de 10 en 10. Esto nos da una razón de
(m/ri) con un rango de 0.2 a 20. Los generadores de Selman, Pretolani y Dubois fueron los
escogidos para esto. Estas se compararon con 20 instancias de GenGraf triángulos simples con
n=20 y m de 50-200 ( una razón (m/n) con un rango de 1 a 4 ) y instancias generadas por
GenGraf triángulos dobles con n=20 y m de 50-400 ( una razón (m/n) con un rango de 1 a 8 ).
Para medir su dureza, todas las instancias fueron evaluadas con los algoritmos de solución DP
y DP-Mejorado. No se evaluaron instancias variando n ni instancias de mallas por limitaciones
de tiempo y equipo de cómputo
Los casos de prueba se dividieron en tres partes: 1) Resultados de Selman, Pretolani y
Dubois; 2) Resultados de GenGraf; y 3) GenGraf vs Selman, Pretolani y Dubois.
7.3 Resultados de Selman, Pretolani y Dubois.
Los resultados de la evaluación de las instancias SAT generadas en el caso de Selman se acerca a
la razón definida por él [BSL92] de 4.25. Las instancias SAT con la media de mayor de llamadas
se encontraron en la razón de 4.4 para Selman, 6 ( DP-Mejorado ) y 4.6( DP ) para Pretolani
y 6 para el caso de Dubois. Las gráficas se muestran en las figuras 7-1,7-2,7-3,7-4,7-5 y 7-6.
El número de llamadas para las instancias SAT más duras con DP es:
Selman: 9,829.
Pretolani: 3,605.
Dubois: 4,511.
El número de llamadas para las instancias SAT más duras con DP-Mejorado es:
Selman: 582.
Pretolani: 790.
Dubois: 598.
62
7.2 Casos de Estudio.
Con el propósito de evaluar el desempeño del generador de instancias propuesto, GenGraf,
se estudiaron 100 instancias con 51 series ( en total 5,100 instancias ) generadas por cada
generador, con una n=50 y variando m de 10-1000 de 10 en 10. Esto nos da una razón de
(m/ri) con un rango de 0.2 a 20. Los generadores de Selman, Pretolani y Dubois fueron los
escogidos para esto. Estas se compararon con 20 instancias de GenGraf triángulos simples con
n=20 y m de 50-200 ( una razón (m/n) con un rango de 1 a 4 ) y instancias generadas por
GenGraf triángulos dobles con n=20 y m de 50-400 ( una razón (m/n) con un rango de 1 a 8 ).
Para medir su dureza, todas las instancias fueron evaluadas con los algoritmos de solución DP
y DP-Mejorado. No se evaluaron instancias variando n ni instancias de mallas por limitaciones
de tiempo y equipo de cómputo
Los casos de prueba se dividieron en tres partes: 1) Resultados de Selman, Pretolani y
Dubois; 2) Resultados de GenGraf; y 3) GenGraf vs Selman, Pretolani y Dubois.
7.3 Resultados de Selman, Pretolani y Dubois.
Los resultados de la evaluación de las instancias SAT generadas en el caso de Selman se acerca a
la razón definida por él [BSL92] de 4.25. Las instancias SAT con la media de mayor de llamadas
se encontraron en la razón de 4.4 para Selman, 6 ( DP-Mejorado ) y 4.6( DP ) para Pretolani
y 6 para el caso de Dubois. Las gráficas se muestran en las figuras 7-1,7-2,7-3,7-4,7-5 y 7-6.
El número de llamadas para las instancias SAT más duras con DP es:
Selman: 9,829.
Pretolani: 3,605.
Dubois: 4,511.
El número de llamadas para las instancias SAT más duras con DP-Mejorado es:
Selman: 582.
Pretolani: 790.
Dubois: 598.
62
Numero de Llamadas DP-Mejorado ( Mediana)
•SELMAN50
/ #
Figura 7-1: Resultados instancias SAT Selman DP-Mejorado.
63
Numero de Llamadas DP ( Mediana)
-SELMAN50
Figura 7-2: Resultados instancias SAT Selman DP.
64
Numero de Llamadas DP-Mejorado ( Mediana)
Figura 7-3: Resultados instancias SAT Pretolani DP-Mejorado.
65
Numero de Llamadas DP ( Mediana)
.. . í \,• \ : • • • • • • •
• / ; , ; X - • • • •
f , .' .üf ..,,
-Pretolani 50
Figura 7-4: Resultados instancias SAT Pretolani DP.
66
Numero de Llamadas DP-Mejorado (Mediana)
Figura 7-5: Resultados instancias SAT Dubois DP-Mejorado.
67
4500 —•
3500 •—
1500 —'
500 • —
Numero de Llamadas DP (Mediana)
_. • • y - i
j V* ^ ^ " ' ni
,- ' ^ ^ , ' .- ^ , ' ^ fc. ,- • .* ^ , . ,„. ,- ,.* J ,,v j ,v ,, , , ^ _4, ., ^, ^ ^ fl> ^
• DuboiaSO
Figura 7-6: Resultados instancias SAT Dubois DP
68
Numero de Llamadas DP-Mejorado vs DP ( Mediana)
- • - S E L M A N50 DP
- • - S E L M A N50 DP-Mejorado
Figura 7-7: Resultados instancias SAT Selman DP-Mejorado vs DP.
69
35O0
3000
0 ¡
O *
Numero de Llamadas DP-Mejorado vs DP ( Mediana)
í\I V :- — Pretolani 50
np
Pretolani 50DP Mejorado
o» ^'• ^ ¿? ^ , » >»• * £ ^ „» ^>- » „<> ,•> , » ^K K^ _ « ^y j* j* Kv ^p » t v ^ » ^1. t » ^ o
Figura 7-8: Resultados instancias SAT Pretolani DP-Mejorado vs DP.
70
Numero de Llamadas DP-Mejorado (Mediana)
• Dubois 50DP
• Dubois 50DP-Mejorado
Figura 7-9: Resultados instancias SAT Dubois DP-Mejorado vs DP.
71
18,000 i
16,000
12,000-
10,000
• • •
i
Numero de
• •
1.2 1.4 1.6 1.8 2 2.2
Llamadas
: 1
1
¡
i2.4 2.6
DP-Mejorado (
2.8 3 3.2
Mediana)
. - . • • / "
• • • • • .
3.4 3.6
, ;
-k A
3.8 4
—ér- GenGrafTsimple
Figura 7-10: Resultados instancias SAT GenGraf Tsimple DP-Mejorado.
7.4 Resultados de GenGraf.
Se generaron instancias SAT en dos tipos de hipergrafos base: Con triángulos simples (llamare-
mos GenGraf Tsimple ) y triángulos dobles ( las cuales llamaremos GenGraf Tdobles ). Por
razones explicadas en el capítulo 6, los triángulos simples varían la razón de 1 a 4 y los dobles
de 1 a 8. La razón donde se encontraron las instancias SAT duras para GenGraf Tsimple es 3
(DP-Mejorado) y 2.6 (DP). En el caso GenGraf Tdoble, se encontraron en 5.8 (DP-Mejorado)
y 3 (DP). Los resultados se ilustran en las gráficas 7-10, 7-11, 7-12 y 7-13.
El número de llamadas para las instancias SAT más duras con DP es:
GenGraf Tsimple: 43,897,266.
GenGraf Tdoble: 32,485.
72
18,000 i
16,000
12,000-
10,000
• • •
i
Numero de
• •
1.2 1.4 1.6 1.8 2 2.2
Llamadas
: 1
1
¡
i2.4 2.6
DP-Mejorado (
2.8 3 3.2
Mediana)
. - . • • / "
• • • • • .
3.4 3.6
, ;
-k A
3.8 4
—ér- GenGrafTsimple
Figura 7-10: Resultados instancias SAT GenGraf Tsimple DP-Mejorado.
7.4 Resultados de GenGraf.
Se generaron instancias SAT en dos tipos de hipergrafos base: Con triángulos simples (llamare-
mos GenGraf Tsimple ) y triángulos dobles ( las cuales llamaremos GenGraf Tdobles ). Por
razones explicadas en el capítulo 6, los triángulos simples varían la razón de 1 a 4 y los dobles
de 1 a 8. La razón donde se encontraron las instancias SAT duras para GenGraf Tsimple es 3
(DP-Mejorado) y 2.6 (DP). En el caso GenGraf Tdoble, se encontraron en 5.8 (DP-Mejorado)
y 3 (DP). Los resultados se ilustran en las gráficas 7-10, 7-11, 7-12 y 7-13.
El número de llamadas para las instancias SAT más duras con DP es:
GenGraf Tsimple: 43,897,266.
GenGraf Tdoble: 32,485.
72
Numero de Llamadas DP ( Mediana)
^ — ± x x x
-GenGrafTsimple
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3 2 3.4 3.6 3.8
Figura 7-11: Resultados instancias SAT GenGraf Tsimple DP.
73
Numero de Llamadas DP-Mejorado ( Mediana)
•GenGrafTdoble
1 1,2 1.4 16 1.S 2 2.2 2.4 2.6 2.8 3 32 34 3.6 3.8 4 4.2 4.4 46 4.8 5 5.2 5.4 56 58 6 6.2 6.4 6.6 6.8 7 7.2 7.4 76 7.8
Figura 7-12: Resultados instancias SAT GenGraf Tdoble DP-Mejorado.
74
Numero de Llamadas DP ( Mediana)
! • • • • • • • • • • • • <
•GenGrafTdoble
Figura 7-13: Resultados instancias SAT GenGraf Tdoble DP.
75
Numero de Llamadas DP-Mejorado vs DP ( Mediana)
A A A
•1 A i . A
•GenGrafTsimple DP
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2 8 3 3.2 3.4 3.6 3.8 4
Figura 7-14: Resultados instancias SAT GenGraf Tsimple DP-Mejorado vs DP.
El número de llamadas para las instancias SAT más duras con DP-Mejorado es:
GenGraf Tsimple: 16,559.
GenGraf Tdoble: 114,687.
7.5 GenGraf vs Selman vs Petrolani vs Dubois.
76
Numero de Llamadas DP-Mejorado vs DP ( Mediana)
A A A
•1 A i . A
•GenGrafTsimple DP
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2 8 3 3.2 3.4 3.6 3.8 4
Figura 7-14: Resultados instancias SAT GenGraf Tsimple DP-Mejorado vs DP.
El número de llamadas para las instancias SAT más duras con DP-Mejorado es:
GenGraf Tsimple: 16,559.
GenGraf Tdoble: 114,687.
7.5 GenGraf vs Selman vs Petrolani vs Dubois.
76
Numero de Llamadas DP-Mejorado vs DP ( Mediana)
GenGrafTdoble DP
-• -GenGrafTdobleDP-Mejorado
1 12 1.4 16 18 2 2.2 2.4 2.6 2.S 3 32 34 3.6 3.8 4 42 4 4
Figura 7-15: Resultados instancias SAT GenGraf Tdoble DP-Mejorado vs DP.
77
Numero de Llamadas DP-Mejorado ( Mediana)
-Selman50
- Pretolani50
Dubois50
Figura 7-16: Resultados instancias SAT Selman vs Pretolani vs Dubois DP-Mejorado.
78
Numero de Llamadas DP (Mediana)
-—Selman50
•— Pretolani50
1 — Dubois50
Figura 7-17: Resultados instancias SAT Selman vs Pretolani vs Dubois DP.
79
Numero de Llamadas DP-Mejorado ( Mediana)
-Selman50
-GenGrafTsimple50
- Pretolani50
Dubois50
-GenGrafTdoble
n> „> > V* & # »•
Figura 7-18: Resultados instancias SAT GenGraf Tsimple vs GenGraf Tdoble vs Selman vsPretolani vs Dubois DP-Mejorado.
80
Numero de Llamadas DP ( Mediana)-Selman50
-GenGrafTsimple50
-Pretolani50
Dubois50
-GenGrafTdoble
Figura 7-19: Resultados instancias SAT GenGraf Tdoble vs GenGraf Tdoble vs Selman vsPretolani vs Dubois DP-Mejorado.
81
Capítulo 8
Conclusiones e Investigaciones
Futuras
En este capitulo se presentan las principales aportaciones y trabajos futuros de esta tesis.
8.1 Conclusiones
El desarrollo de la presente tesis mostró las siguientes aportaciones:
1. Enfoque novedoso para la generación de instancias SAT basado en hipergrafos.
2. La dureza de las instancias basadas en hipergrafos es mayor que las instancias de los
generadores de Selman, Pretolani y Dubois
3. El cociente de m/n para la fase de transición en el problema 3-SAT ocurrió para los trián-
gulos simples en 2.6 y para los triángulos dobles en 3.0, esto representa un contraejemplo
del resultado reportado por Selman [BSL95] en el que la fase de transición ocurre en 4.25
aproximadamente.
4. La fase de transición de instancias SAT de underconstrained a overconstrained depende
del generador de instancias utilizado y del algotimo de solución.
82
8.2 Líneas de Investigación Futuras
A raíz de las trabajos realizados a lo largo de este proyecto de tesis se generaron algunas líneas
de investigación que sería interesante explorar, a continuación presentamos algunas de ellas:
1. Implementación y prueba de un generador de instancias SAT basado en hipergrafos
aleatoreos.
2. Implementación y prueba de un generador de instancias SAT basado en hipergrafos for-
mados por grupos tridimencionales ( Teoría de Grupos ).
3. Diseño de generadores de instancias SAT donde el cociente m/n de la fase de transición
ocurra en valores superiores a 4.25.
83
Bibliografía
[BA79] Robert Endre Tarjan Bengt Aspvall, Michael F. Plass. A linear-time algorithm
for testing the truth certain quantified boolean formulas, information Processing
Letters, March, 1979.
[Bal47] H. S. M. Coxeler. Ball, W. W. R. Mathematical recreations and essay. Macmillan,
New York, 1947.
[Ber65] Ghouila-Houri A. Berge, C. Programming, games, and transportation networks.
Methuen, London, 1965.
[BSL92] David Michell Bart Selman and Héctor J. Levesque. A new method for solving hard
satisfiability problems. Department of Computer Science, University of Toronto,
1992.
[BSL95] David Michell Bart Selman and Héctor J. Levesque. Generating hard satisfiabil-
ity problems. Department of Computer Science, University of Toronto, Toronto,
Ontario, Canadá. 1995.
[Car57] A. Carley. On the theory of the analytical forms called trees. Philos, Mag., 1857.
[CAS91] Mitchell G. David Cook A. Stephen. Finding hard instances of the satisfiability prob-
lem: A suvey. Departament of Computer Science, University of Toronto, Toronto,
Ontario, Canadá. 1991.
[Coo71] S. A. Cook. The complexity of theorem proving procedures. Simposium on the
Theory of Computing, New York, 1971.
84
[Cox71] H. F. M. Coxeter. Fundamentos de Geometría. Limusa-Wily, México, 1971.
[Fal57] W. Fallaer. An introduction to probability theory and its applications. Yol. 1, (2nd
ed.) Wiley, New York, 1957.
[Fey49] R. P. Feynmann. Space-time approaches to quantum electrodynamics. Physical
Review 76, 1949.
[For62] Fulkerson D. R. Ford, L. R. Flows in networks. Princeton University Press, 1962.
[Fu89] Y. Fu. The Uses and Abuses of Statistical Mechanics in Computational Complexity
in Lectures in the Sciences of Complexity. Addison Wesley, 1989.
[Gen94] Ian P. Gent. The hardest random SAT problems. Departament of Artificial Intelli-
gence, University of Edinburgh, 1994.
[GG92] Pretolani. Gallo G. A new algorithm for the propositional satisfiability problem.
Departament di informática, University of Pisa, Corso, Italia. 1992.
[GJ79] M.R. Garey and D.S. Johnson. Computers and Intractability: A Guide to the Theory
of NP-Completeness. W.H. Freeman and Company, New York, 1979.
[Gol79] A. Goldberg. On the complexity of the satisfiability problem. Courant Computer
Science Report New York University, NY,1979.
[GRM91] Johnson S. David Garey R. Michael. Computers and Intractability. Computer science
/ Mathematics. W.H. Freeman and company, March, 1991.
[Har65] Norman R.Z. Cartwright D. Harary, F. Structural models: An introduction to the
theory of directed graphs. Wiley, New York,1965.
[Har96] Frank Harary. Graph Theory. Addison Wesley, 1996.
[Hea90] P. J. Heawood. Map colour theorems. Quart. J. Math. 24, 1890.
[HH87] B. A. Huberman and T. Hogg. Phase transitions in artificial intelligence systems.
Artificial Intelligence, 1987.
85
[HW97] S. Horie and O. Watanabe. Hard instance generation for SAT. Technical Report
T97TR-0007, Dept. of Computer Science, Tokyo Inst. of Tech, 1997.
[IPGW98] Patrick Prosser Barbara Smith Ian P Gent, Ewan Maclntyre and Toby Walsh. Ran-
dom constraint satisfaction: Flaws and structure. Research Report 98.23, 1998.
[Kem79] A. B. Kempe. On the geographical problem of four colors. Amer. J. Math, 1879.
[Kon50] D. Koning. Theorie der endlichen und unendlichen graphen. Leipzing, 1950.
[KP83] R. M. Karp and J. Pearl. Searching for an optimal path in a tree with random costs.
Artificial Intelligence, 1983.
[KS85] S. Kirkpatrick and R. H. Swendsen. Statistical mechanics and disordered systems.
Comm. ACM, April 1985.
[Lew36] K. Lewin. Principies of Topological Psychology. McGraw-Hill, New York, 1936.
[LY59] T. D. Lee and C.N. Yang. Many-body problems in quantum statistical mechanics.
Phys. Rev. 113, 1959.
[May65] K. O May. The origin of the four-color conjeture. Isis, 1965.
[MD60] H. Putnam M. Davis. A computing procedure for quantification theory. Journal of
ACM, 1960.
[MU99] M. Motoki and R. Uehara. Unique solution instance generation for 3SAT. Research
Report, Dept. of Math. and Computing Sciences, Tokyo Inst. of Tech, 1999.
[094] Watanabe O. Test instance generation for promised NP search problems. presented
at the 9th IEEE Structure in Complexity Theory Conference, 1994.
[Ore69] O. (con G.J. Stemple) Ore. Numerical methods in the four color problem. Recent
Progress in Combinatorics (W. T. Tutte, ed.) Academic Press, New York, 1969.
[PC91] Willian M. Taylor Peter Cheeseman, Bob Kanefsky. Where the really hard problems
are. Proceedings of IJCAI-91, San Mateo, C.A. 1991.
86
[PS82] Christos H. Papadimitriou and Kenneth Steiglitz. Combinatorial Optimization: Al-
gorithms and Complexity. Prentice Hall, 1982.
[Pur83] P. W. Purdom. Search rearrangement backtracking and polynomial average time.
Artificial Intelligence, 1983.
[SE76] A. Shamir S. Even, A. Itai. On the cimplexity of timetable and multi-cpmmodity
how problems. Journal of Computing, 1976.
[Sel94] Bart Selman. Ramdom k-SAT generator - ftp.research.att.com
/Dist/Ai/Makewff.sh.z. Technical report, última modificación: 1994.
[SteOO] Locke C. Stephen. Http://www.math.fau.Edu/Locke/Graphthe. Technical report,
última modificación: Sep 1, 2000.
[Tur88] J. S. Turner. Almost all k-colorable graphs are easy to color. Journal of Algorithms,
1988.
[Uhl60] G. E. Uhlenbeck. Successive approximation methods in classical statistical mechan-
ics. Physica 26, 1960.
[Vaj61] R. S. Vajda. Mathematical Programming. Addison-Wesley, 1961.
[Var62] R. S. Varga. Matrix Iteractive Analysis. Prentice Hall, 1962.
[Veb22] O. Veblen. Analysis situs. Amer.Math.Soc.Colloq.Publ.Vol.5,Cambridge, 1922.
[WFD84] J. H. Gallier W. F. Dowling. Linear time algorithms for testing the satisfiability of
propositional horn formulas. Journal of Logic Programming, 1984.
87