104

Implementación de un Generador de Casos de Prueba para

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Implementación de un Generador de Casos de Prueba para
Page 2: Implementación de un Generador de Casos de Prueba para

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

Page 3: Implementación de un Generador de Casos de Prueba para

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

Page 4: Implementación de un Generador de Casos de Prueba para

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.

Page 5: Implementación de un Generador de Casos de Prueba para

í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

Page 6: Implementación de un Generador de Casos de Prueba para

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

Page 7: Implementación de un Generador de Casos de Prueba para

í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

Page 8: Implementación de un Generador de Casos de Prueba para

í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

Page 9: Implementación de un Generador de Casos de Prueba para

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

Page 10: Implementación de un Generador de Casos de Prueba para

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

Page 11: Implementación de un Generador de Casos de Prueba para

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

Page 12: Implementación de un Generador de Casos de Prueba para

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....

Page 13: Implementación de un Generador de Casos de Prueba para

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-

Page 14: Implementación de un Generador de Casos de Prueba para

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.

Page 15: Implementación de un Generador de Casos de Prueba para

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-

Page 16: Implementación de un Generador de Casos de Prueba para

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

Page 17: Implementación de un Generador de Casos de Prueba para

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

Page 18: Implementación de un Generador de Casos de Prueba para

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.

Page 19: Implementación de un Generador de Casos de Prueba para

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

Page 20: Implementación de un Generador de Casos de Prueba para

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

Page 21: Implementación de un Generador de Casos de Prueba para

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].

Page 22: Implementación de un Generador de Casos de Prueba para

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

Page 23: Implementación de un Generador de Casos de Prueba para

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

Page 24: Implementación de un Generador de Casos de Prueba para

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

Page 25: Implementación de un Generador de Casos de Prueba para

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

Page 26: Implementación de un Generador de Casos de Prueba para

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

Page 27: Implementación de un Generador de Casos de Prueba para

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

Page 28: Implementación de un Generador de Casos de Prueba para

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

Page 29: Implementación de un Generador de Casos de Prueba para

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

Page 30: Implementación de un Generador de Casos de Prueba para

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

Page 31: Implementación de un Generador de Casos de Prueba para

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

Page 32: Implementación de un Generador de Casos de Prueba para

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

Page 33: Implementación de un Generador de Casos de Prueba para

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

Page 34: Implementación de un Generador de Casos de Prueba para

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

Page 35: Implementación de un Generador de Casos de Prueba para

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

Page 36: Implementación de un Generador de Casos de Prueba para

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

Page 37: Implementación de un Generador de Casos de Prueba para

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

Page 38: Implementación de un Generador de Casos de Prueba para

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

Page 39: Implementación de un Generador de Casos de Prueba para

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

Page 40: Implementación de un Generador de Casos de Prueba para

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

Page 41: Implementación de un Generador de Casos de Prueba para

-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

Page 42: Implementación de un Generador de Casos de Prueba para

Figura 5-11: Hipergrafo con k=3

30

Page 43: Implementación de un Generador de Casos de Prueba para

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

Page 44: Implementación de un Generador de Casos de Prueba para

Figura 6-1: Instancia 1-SAT

Figura 6-2: Cláusula 2-SAT

32

Page 45: Implementación de un Generador de Casos de Prueba para

Figura 6-3: Cláusula 3-SAT

Figura 6-4: Instancia 2-SAT

33

Page 46: Implementación de un Generador de Casos de Prueba para

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

Page 47: Implementación de un Generador de Casos de Prueba para

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

Page 48: Implementación de un Generador de Casos de Prueba para

Figura 6-7: Representación de cláusulas 3-SAT con signo.

36

Page 49: Implementación de un Generador de Casos de Prueba para

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

Page 50: Implementación de un Generador de Casos de Prueba para

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

Page 51: Implementación de un Generador de Casos de Prueba para

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

Page 52: Implementación de un Generador de Casos de Prueba para

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

Page 53: Implementación de un Generador de Casos de Prueba para

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

Page 54: Implementación de un Generador de Casos de Prueba para

= 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

Page 55: Implementación de un Generador de Casos de Prueba para

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

Page 56: Implementación de un Generador de Casos de Prueba para

_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

Page 57: Implementación de un Generador de Casos de Prueba para

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

Page 58: Implementación de un Generador de Casos de Prueba para

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

Page 59: Implementación de un Generador de Casos de Prueba para

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

Page 60: Implementación de un Generador de Casos de Prueba para

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

Page 61: Implementación de un Generador de Casos de Prueba para

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

Page 62: Implementación de un Generador de Casos de Prueba para

Figura 6-26: Hipergrafo base doblemente conectado con triángulos dobles de una sola capa npar.

50

Page 63: Implementación de un Generador de Casos de Prueba para

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

Page 64: Implementación de un Generador de Casos de Prueba para

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

Page 65: Implementación de un Generador de Casos de Prueba para

Figura 6-30: Hipergrafo base de Malla simple.

Figura 6-31: Hipergrafo base de Malla simple con conexión.

53

Page 66: Implementación de un Generador de Casos de Prueba para

(.(.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

Page 67: Implementación de un Generador de Casos de Prueba para

Figura 6-35: Malla doble conectada.

55

Page 68: Implementación de un Generador de Casos de Prueba para

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

Page 69: Implementación de un Generador de Casos de Prueba para

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

Page 70: Implementación de un Generador de Casos de Prueba para

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

Page 71: Implementación de un Generador de Casos de Prueba para

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

Page 72: Implementación de un Generador de Casos de Prueba para

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

Page 73: Implementación de un Generador de Casos de Prueba para

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

Page 74: Implementación de un Generador de Casos de Prueba para

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

Page 75: Implementación de un Generador de Casos de Prueba para

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

Page 76: Implementación de un Generador de Casos de Prueba para

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

Page 77: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP-Mejorado ( Mediana)

•SELMAN50

/ #

Figura 7-1: Resultados instancias SAT Selman DP-Mejorado.

63

Page 78: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP ( Mediana)

-SELMAN50

Figura 7-2: Resultados instancias SAT Selman DP.

64

Page 79: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP-Mejorado ( Mediana)

Figura 7-3: Resultados instancias SAT Pretolani DP-Mejorado.

65

Page 80: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP ( Mediana)

.. . í \,• \ : • • • • • • •

• / ; , ; X - • • • •

f , .' .üf ..,,

-Pretolani 50

Figura 7-4: Resultados instancias SAT Pretolani DP.

66

Page 81: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP-Mejorado (Mediana)

Figura 7-5: Resultados instancias SAT Dubois DP-Mejorado.

67

Page 82: Implementación de un Generador de Casos de Prueba para

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

Page 83: Implementación de un Generador de Casos de Prueba para

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

Page 84: Implementación de un Generador de Casos de Prueba para

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

Page 85: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP-Mejorado (Mediana)

• Dubois 50DP

• Dubois 50DP-Mejorado

Figura 7-9: Resultados instancias SAT Dubois DP-Mejorado vs DP.

71

Page 86: Implementación de un Generador de Casos de Prueba para

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

Page 87: Implementación de un Generador de Casos de Prueba para

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

Page 88: Implementación de un Generador de Casos de Prueba para

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

Page 89: Implementación de un Generador de Casos de Prueba para

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

Page 90: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP ( Mediana)

! • • • • • • • • • • • • <

•GenGrafTdoble

Figura 7-13: Resultados instancias SAT GenGraf Tdoble DP.

75

Page 91: Implementación de un Generador de Casos de Prueba para

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

Page 92: Implementación de un Generador de Casos de Prueba para

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

Page 93: Implementación de un Generador de Casos de Prueba para

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

Page 94: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP-Mejorado ( Mediana)

-Selman50

- Pretolani50

Dubois50

Figura 7-16: Resultados instancias SAT Selman vs Pretolani vs Dubois DP-Mejorado.

78

Page 95: Implementación de un Generador de Casos de Prueba para

Numero de Llamadas DP (Mediana)

-—Selman50

•— Pretolani50

1 — Dubois50

Figura 7-17: Resultados instancias SAT Selman vs Pretolani vs Dubois DP.

79

Page 96: Implementación de un Generador de Casos de Prueba para

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

Page 97: Implementación de un Generador de Casos de Prueba para

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

Page 98: Implementación de un Generador de Casos de Prueba para

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

Page 99: Implementación de un Generador de Casos de Prueba para

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

Page 100: Implementación de un Generador de Casos de Prueba para

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

Page 101: Implementación de un Generador de Casos de Prueba para

[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

Page 102: Implementación de un Generador de Casos de Prueba para

[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

Page 103: Implementación de un Generador de Casos de Prueba para

[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

Page 104: Implementación de un Generador de Casos de Prueba para