Sie sind auf Seite 1von 81

RESTRICCIONES PLANARES DE PROBLEMAS DUROS: UN ESTUDIO DE CASO

JONNATHAN ALFREDO RAMOS CHAUX

UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERAS FISICO-MECNICAS ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA BUCARAMANGA 2011

RESTRICCIONES PLANARES DE PROBLEMAS DUROS: UN ESTUDIO DE CASO

JONNATHAN ALFREDO RAMOS CHAUX

Trabajo de grado presentado para optar por el ttulo de Ingeniero de Sistemas

Director PhD. Juan Andrs Montoya Argello Profesor escuela de matemticas

UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERAS FISICO-MECNICAS ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA BUCARAMANGA 2011

CONTENIDO

pg.

INTRODUCCIN ..................................................................................................... 9 PRESENTACIN DEL PROYECTO ...................................................................... 11 1.1. OBJETIVO GENERAL .............................................................................. 11 1.2. OBJETIVOS ESPECFICOS ..................................................................... 11 2. COMPLEJIDAD COMPUTACIONAL .............................................................. 12 2.1. TEORIA DE LA COMPLEJIDAD COMPUTACIONAL............................... 13 2.2. CLASES DE COMPLEJIDAD COMPUTACIONAL ................................... 14 2.2.1. Clase 2.2.2. Clase .............................................................................................. 14 ........................................................................................... 16 -COMPLETEZ ...................................................... 17

2.3. REDUCCIONES Y

2.3.1. Reduccin .......................................................................................... 17 2.3.2. Problemas 2.4. VERSUS -Completos ................................................................. 18 ......................................................................................... 19

2.5. JERARQUA POLINOMIAL ...................................................................... 20 3. PROBLEMAS INTERMEDIOS ........................................................................ 24 3.1. PROBLEMA DE LA PRIMALIDAD ............................................................ 25 3.2. FACTORIZACIN DE NMEROS ENTEROS ......................................... 26 3.3. ISOMORFISMO DE GRUPOS ................................................................. 28 4. METODOLOGAS PARA SOLUCIONAR PROBLEMAS .................. 31

4.1. SOLUCIONES CUASI PTIMAS ............................................................. 32 4.1.1. Algoritmos de Aproximacin ............................................................... 32 4.1.2. Algoritmos Aleatorios o Probabilsticos .............................................. 33 4.1.3. Heursticas y Meta-heursticas ........................................................... 34 4.2. RESTRICCIONES SOBRE LAS INSTANCIAS DEL PROBLEMA ............ 35 4.2.1. El Poder de Restringir ........................................................................ 36 5. EL PROBLEMA DEL ISOMORFISMO DE GRAFOS ...................................... 42 5.1. PLANTEAMIENTO DEL PROBLEMA ....................................................... 42 5.2. COMPLEJIDAD DEL PROBLEMA DE ISOMORFISMO DE GRAFOS .... 43 5.3. RESOLVIENDO EL PROBLEMA DE ISOMORFISMO DE GRAFOS ....... 44 5.4. ISOMORFISMO DE RBOLES: UN ALGORITMO POLINOMIAL ............ 45 5.4.1. Construyendo el Algoritmo ................................................................. 47 5.4.2. El Algoritmo ........................................................................................ 49 6. EL PROBLEMA DEL ISOMORFISMO DE GRAFOS PLANOS ...................... 52 6.1. PLANTEAMIENTO DEL PROBLEMA DEL ISOMORFISMO DE GRAFOS RESTRINGIDO A PLANOS................................................................................ 53 6.2. SELECCIN DE UN ALGORITMO PARA RESOLVER GIP[ ] ............... 54 6.3. TRASFONDO DEL ALGORITMO SELECCIONADO................................ 55 6.3.1. El problema del isomorfismo de grafos planos triconexos ................. 55 6.3.2. Grafos planos biconexos .................................................................... 59 6.3.2.1. rboles SPQR y componentes triconexas ...................................... 59

6.3.3. Descomposicin de grafos planos en componentes biconexas. ........ 63 6.3.4. Isomorfismo de rboles etiquetados................................................... 66 6.4. ALGORITMO DE KUKLUK, HOLDER Y COOK ....................................... 68

6.4.1. Rutina para la generacin de un cdigo nico para el rbol SPQR de un grafo biconexo. .......................................................................................... 69 6.5. ANLISIS DEL TIEMPO DE EJECUCIN DEL ALGORITMO DE KUKLUK, HOLDER Y COOK PARA TESTEAR ISOMORFISMO EN GRAFOS PLANOS ............................................................................................................. 73 7. 8. CONCLUSIONES ........................................................................................... 75 RECOMENDACIONES ................................................................................... 77

BIBLIOGRAFIA ...................................................................................................... 78

LISTA DE ILUSTRACIONES

pg.

Ilustracin 1 Esquema grfico de una reduccin ................................................... 17 Ilustracin 2 Diagramas de Venn de la clase .................................................. 19

Ilustracin 3 Esquema grfico de la jerarqua polinomial ....................................... 22 Ilustracin 4 Diagrama de Venn de la clase si ................................. 24

Ilustracin 5 Esquema de la factorizacin de un nmero natural ........................... 27 Ilustracin 6 Representacin grafica de un grafo ................................................... 37 Ilustracin 7 Grafo y uno de sus matchings perfectos. .......................................... 38 Ilustracin 8 Grafo y circuito de Hamilton .............................................................. 40 Ilustracin 9 Grafos isomorfos ............................................................................... 43 Ilustracin 10 rbol y etiquetas que conforman su cdigo nico ........................... 48 Ilustracin 11 Grafo plano triconexo y grafo plano triconexo dirigido . ............ 56

Ilustracin 12 Grafo conexo y su rbol de componentes biconexas ...................... 64

GLOSARIO

: Es la clase de problemas de funcin de la forma: compute

, donde

es

el nmero de caminos aceptantes de una mquina de Turing no determinista de tiempo polinomial.

: Es la clase de los problemas de decisin resolubles en tiempo polinomial


por una mquina de Turing cuntica con una probabilidad mxima de error de (Del ingls Bounded-Error Quantum Polynomial time). CAMINO: Secuencia alternada de vrtices y aristas donde une a los vrtices .

aristas consecutivas son adyacentes tal que cada arista y

CIRCUITO: Camino cerrado de longitud positiva. Camino que inicia y termina en el mismo vrtice .

CIRCUITO EULERIANO: circuito que contiene todas las aristas del grafo. CDIGO: Secuencia de caracteres que identifican una estructura. COMPONENTE CORTANTE: de un par cortante arista par cortante de del grafo o un subgrafo maximal . de de un grafo tal que es o una no es un

EMBEBIMIENTO DE UN GRAFO: Es un ordenamiento de las aristas en torno a cada vrtice de un grafo el cual permite dibujar el grafo en el plano sin que sin que exista cruce de aristas. GRAFO BICONEXO: Es un grafo conexo sin puntos de articulacin.

GRAFO CONEXO: es un grafo existe un camino que los conecta. GRAFO PLANO BICONEXO: es un grafo

tal que para cualquier

que puede ser embebido

en el plano y no tiene puntos de articulacin. GRAFO PLANO TRICONEXO: es un grafo en el plano y no tiene pares separadores. GRAFO TRICONEXO: Es un grafo sin pares separadores. : Es la clase de problemas de decisin resolubles por una mquina de Turing restringida a usar una cantidad de memoria logartmica en el tamao de la instancia. : Es la clase de problemas que se encuentran en y en que puede ser embebido

ORDENAMIENTO DE CDIGOS: Organizar un conjunto de cdigos de acuerdo al orden lexicogrfico PAR CORTANTE (DE UN GRAFO): es un par de vrtices o son un par separador o un par de vrtices adyacentes. PAR MAXIMAL CORTANTE: de un grafo con respecto a un al par cortante , los vrtices del grafo tal que

es tal que, para cualquier otro par cortante estn en la misma componente cortante

PAR SEPARADOR: Es una pareja de vrtices en un grafo que cuando son removidos del grafo lo desconecta. PUNTO DE ARTICULACIN: Es un vrtice en un grafo conexo que cuando es removido del grafo lo desconecta

INTRODUCCIN

Contrario a lo que pueda parecer, elaborar una radiografa de un problema como el del isomorfismo de grafos no resulta ser una tarea sencilla; es tanta la informacin al alcance, tan diversos los enfoques para abordarlo y tantos los aportes de la comunidad cientfica, que el proceso de seleccin de los pilares sobre los cuales se construir una investigacin a nivel de pregrado se convierte en una tarea bastante compleja. Todas las fuentes que se consulten acerca del isomorfismo de grafos, siempre coincidirn en que este es un objeto de estudio de suma importancia no solo por su aplicabilidad en campos como la informtica qumica o la minera de datos, sino tambin por su estructura y propiedades que lo hacen, an hoy, objeto de nuevas investigaciones desde diversas reas del conocimiento

En este proyecto se estudi el problema del isomorfismo de grafos desde la visin que de l ofrece la computacin terica, ms concretamente desde la ptica de la teora de la complejidad computacional. Para este fin, se desarroll un proceso de aprendizaje a partir de la recopilacin bibliogrfica de fuentes especializadas en el rea.

El proceso descrito dio como resultado la escritura de este documento, el cual puede considerarse dividido en dos secciones: la primera de ellas, descrita en los captulos dos, tres y cuatro, recopila los fundamentos tericos necesarios para aproximarse al problema desde el enfoque deseado. La primera parte, identificada con el numeral 2, presenta al lector los fundamentos de la teora de la complejidad

computacional considerando como recurso computacional medible el tiempo de ejecucin de las rutinas que solucionan un problema computacional dado; posteriormente se estudian algunos problemas que se conjeturan -intermedios.

Como inciso final de la seccin son expuestas un conjunto de metodologas que permiten abordar de un modo eficaz problemas que pueden ser complejos en trminos computacionales. La segunda seccin presenta dos apartados. El primero de ellos, identificado con el numeral cinco, se enfoca en el estudio de la complejidad computacional del problema del isomorfismo de grafos mientras que el segundo, identificado como el numeral seis, centra su atencin en el anlisis de la restriccin planar del problema y en un algoritmo capaz de resolver dicho problema de manera eficiente.

PRESENTACIN DEL PROYECTO

1.1.

OBJETIVO GENERAL

Estudiar el problema de isomorfismo de grafos, cuando se restringe a grafos planos.

1.2.

OBJETIVOS ESPECFICOS

Elaborar un documento que presente la informacin computacional general referente al problema de isomorfismo de grafos y las variaciones ocasionadas en el mismo al introducir restricciones planares.

Seleccionar un algoritmo capaz de detectar si dos grafos planares son isomorfos.

Estudiar en profundidad el algoritmo de deteccin de isomorfismo de dos grafos planares seleccionado.

2. COMPLEJIDAD COMPUTACIONAL

"Un hombre provisto de papel, lpiz y goma, y con sujecin a una disciplina estricta, es en efecto una mquina de Turing universal." Alan Turing El trmino computacin es definido como el procedimiento de calcular o determinar algo por mtodos matemticos o lgicos; esta definicin no resulta ajena para alguien en la actualidad, incluso, es comn que se establezca inmediatamente un vnculo entre el concepto (de computacin) y la mquina que ha revolucionado la vida de la humanidad. Sin embargo, y por extrao que parezca, en los inicios de la computacin no exista la computadora y en su lugar se encontraban seres humanos encargados de desarrollar tareas que implicaban grandes volmenes de clculo con las pocas herramientas de apoyo a su disposicin, lo cual hacia de este un trabajo tedioso, poco eficiente y, ms importante an, bastante errtico. En aquel entonces la mayor preocupacin era conocer que problemas podan ser computados por un ser humano con los recursos a su disposicin. Con la aparicin de las mquinas computadoras las tareas que implicaban un alto volumen de clculo empezaron a ser resueltas con mayor eficiencia, razn por la cual el inters sobre los nuevos dispositivos, como aprovechar sus bondades y conocer sus limitaciones prcticas se acrecent. Un importante punto de partida para formalizar el estudio de los lmites de la naciente computacin radic en la categorizacin de las tareas computacionales en dos grandes grupos a saber: Problemas de decisin: en este tipo de problema se busca determinar si una instancia de un problema dado pertenece o no a un subconjunto que cumple con las condiciones enunciadas por el problema; la solucin de

estos (problemas) es si o no entendindose la respuesta afirmativa como la pertenencia de la instancia al subconjunto mencionado.

Problemas de bsqueda: los problemas de bsqueda se ajustan ms a la convencin de solucionar un problema. Resolver un problema de bsqueda consiste en especificar un conjunto de soluciones (que puede ser vaco )

para cada instancia del problema. Asociados a los problemas de bsqueda se encuentran los problemas de conteo (contar los elementos del conjunto solucin asociado a la instancia del problema) y los problemas de optimizacin (hallar dentro del conjunto de soluciones asociado a la instancia del problema la mejor solucin posible que satisfaga unos parmetros establecidos).

2.1.

TEORIA DE LA COMPLEJIDAD COMPUTACIONAL

Una vez definidos los objetos de estudio, aparece la teora de la complejidad computacional que actualmente se define como la rama de la ciencia de los computadores y de las matemticas encargada de abordar y clasificar las tareas computacionales de acuerdo a su complejidad inherente, valindose de la cuantificacin de los recursos computacionales disponibles (como tiempo de computo, espacio de almacenamiento, cantidad de procesadores), necesarios para resolver de manera eficiente un problema computacional. La teora de la complejidad est interesada primordialmente en la eficiencia de todos los algoritmos existentes o que lleguen a existir y como escalan las demandas computacionales de los mismos conforme varia el tamao de la instancia del problema. Como es evidente, la medicin de los recursos exigidos para solucionar el problema juega un papel dominante en el estudio y la clasificacin del problema. Para tal tarea se introducen modelos matemticos de computacin que formalizan dicha actividad. El modelo estndar de medicin es la mquina de Turing que, bsicamente, es un dispositivo terico que lee smbolos

que se encuentran escritos en una cinta y los computa para determinar una respuesta. A pesar de su sencillez, la mquina de Turing es un potente dispositivo capaz de simular modelos ms complejos con apenas un aumento en el tiempo de ejecucin. La Tesis de Church-Turing condensa la robustez de las mquinas de Turing al sostener que: Todo lo que es computable es Turing-Computable Esto significa que, para toda funcin efectivamente computable existe una mquina de Turing capaz de calcularla.

2.2.

CLASES DE COMPLEJIDAD COMPUTACIONAL

Los problemas computacionales son agrupados en clases de complejidad de acuerdo a los recursos que demandan para ser resueltos. Una clase de complejidad es un conjunto de problemas que pueden ser computados con una cantidad dada de recursos. Este conjunto puede ser definido fijando alguno(s) de los tres parmetros siguientes: 1. Tipo de problema computacional 2. Tipo de mquina necesario para resolver el problema 3. Recurso (o recursos) computacional que est siendo medido y una funcin limitante 2.2.1. Clase Nombre de la clase de complejidad: Tipo de problema: Problemas de Decisin Mquina necesaria: Mquina de Turing determinista Recurso Computacional/ Funcin Limitante: Tiempo de Computo/ Polinomio

Informalmente la clase

es la clase de los problemas de decisin resolubles por

algn algoritmo en un nmero de pasos acotado por un polinomio en funcin de la longitud de la entrada [5]. De un modo ms preciso, y considerando a los elementos de Sea: Un alfabeto finito con al menos dos elementos El conjunto de todas las palabras de longitud finita sobre . Un lenguaje tal que Una mquina de Turing Se dice que la mquina realizada por aceptado por con input acepta una cadena si la computacin como lenguajes se tiene que:

termina en un estado de aceptacin. El lenguaje se define como:

, denotado como

Sea: = nmero de pasos realizados por al computar

Para todo

se denota con

al peor tiempo de ejecucin de

en

inputs de tamao , esto es:

Donde

es el conjunto de todas las palabras sobre tal que

de longitud . Se dice que .

se ejecuta en tiempo polinomial si existe

Definicin 1: Clase de Complejidad Se define la clase como:

{ |
2.2.2. Clase Nombre de la clase de complejidad: Tipo de problema: Problemas de Decisin Mquina necesaria: Mquina de Turing no determinista

} [5]

Recurso Computacional/ Funcin Limitante: Tiempo de Computo/ Polinomio

Oded Goldreich define en [13] la clase

como el conjunto de problemas que

pueden ser decididos en tiempo polinomial por un dispositivo ficticio llamado mquina de Turing no determinista. Aunque la palabra ficticio pueda parecer peculiar, esta se encuentra perfectamente justificada debido a que todos los dispositivos reales actualmente conocidos son de naturaleza determinista. Una manera anloga de definir esta clase de complejidad es como la clase de problemas de decisin verificables por una mquina de Turing determinista en tiempo polinomial. Formalmente se tiene: Definicin 2: Clase de Complejidad Un lenguaje est en si existe un polinomio llamada verificador para y una tal que

mquina de Turing determinista

Si

satisface que con respecto al lenguaje

entonces

es llamado un [2].

certificado para

y la mquina de Turing

2.3.

REDUCCIONES Y

-COMPLETEZ

A pesar de tener estructuras similares, algunos problemas dentro de una misma clase de complejidad resultan ms difciles de resolver que otros, surgiendo entonces, un fenmeno interesante denominado completez; sin embargo, antes de desarrollarlo resulta conveniente y necesario introducir primero el concepto de reduccin sobre el cual se sustenta. 2.3.1. Reduccin La idea fundamental de lo que es una reduccin es bastante sencilla y, de hecho, difcilmente puede llegar a resultar ajena para alguien. Bsicamente, reducir un problema a un problema consiste en plantear el problema de un modo tal

que pueda ser resuelto con el conjunto de procedimientos con los que se resuelve

Ilustracin 1 Esquema grfico de una reduccin

el problema

Una reduccin ha de ser una funcin fcil de calcular, de no ser as, solucionar un problema usando una reduccin puede resultar menos eficiente que enfrentar el problema directamente. De un modo ms formal se tiene: Definicin 3: Reduccin Un lenguaje es reducible a un lenguaje si existe una funcin tal que:

y notado como

computable en tiempo polinomial

[2] El asterisco (*) en la notacin de la reduccin indica el tipo de, valga la redundancia, reduccin usado (Cook, Turing, Karp entre otros) y es reemplazado por la letra que distingue cada prototipo. Un simple vistazo permite observar que si y en est contenido en la clase , entonces tambin estar contenido

. Es importante mencionar que las reducciones son relaciones reflexivas y

transitivas. 2.3.2. Problemas La clase -Completos ) es un subconjunto de la clase en el cual se

-Completo (

encuentran los problemas ms difciles en

, siendo su caracterstica ms

notable que no se conoce una solucin eficiente para ellos ya que el tiempo requerido para solucionarlos aumenta muy rpidamente con el tamao de las instancias del problema hacindose necesario, usualmente, tiempo

superpolinomial al usar los algoritmos actualmente conocidos. Definicin 4: Problema -Completo Sea un lenguaje, es llamado simultneamente con las siguientes condiciones i. ii. . Cualquier como . es reducible en tiempo polinomial a , notado

-Completo si cumple

Por consiguiente, la clase de complejidad problemas

est formada por todos los

-Completos. Vale la pena mencionar que el fenmeno de

completez se usa para indicar cules son los problemas ms difciles de

solucionar dentro de una clase de complejidad cualquiera pudindose intuir entonces que no es un fenmeno exclusivo de la clase .

2.4.
Es

VERSUS
? La anterior es una pregunta fundamental dentro de la teora de la

complejidad computacional y la teora de la computabilidad. Como ya se mencion anteriormente la clase es la clase de lenguajes que pueden ser es la clase de los no resulta

decididos en tiempo polinomial, mientras que la clase lenguajes verificables en tiempo polinomial. Demostrar que complicado; para cada lenguaje sobre , si

entonces se puede definir definida como:

una relacin de verificacin en tiempo polinomial y Para todo .

Ahora bien, se desconoce si la relacin de contenencia El problema versus

es estricta o no.

consiste en determinar si todo lenguaje reconocido por

una mquina no determinista en tiempo polinomial puede ser reconocido tambin por un algoritmo determinista en tiempo polinomial.

Ilustracin 2 Diagramas de Venn de la clase NP. a.

b.

La importancia de esta pregunta radica, entre otras cosas, en que un gran nmero de desarrollos tericos dependen de la conjetura Es claro que estos

desarrollos colapsaran de no ser cierta dicha conjetura. Por ejemplo, los protocolos criptogrficos usados en la actualidad se basan en que podran ser fcilmente rotos de ser falsa dicha aseveracin. Para demostrar que bastara con exhibir un algoritmo que se ejecute en -Completo cualquiera, ya que y

tiempo polinomial y que resuelva un problema por definicin de la clase

, si algn problema de la clase tiene solucin

algortmica en tiempo polinomial, entonces todos los problemas de la clase sern reducibles a l y por ende tambin sern resolubles en tiempo polinomial. Por otro lado, demostrar que resulta un poco ms complejo y se hace necesario

un argumento de validez universal o probar una cota inferior superpolinomial para cualquier familia de circuitos booleanos que resuelva algn problema Completo [5]. Sin embargo, y a pesar de los grandes esfuerzos realizados por cientficos provenientes de gran variedad de reas, an no se ha podido dar respuesta a tan fundamental cuestionamiento. -

2.5.

JERARQUA POLINOMIAL

Las mquinas de Turing que se han considerado (y considerarn) en este escrito tienen como funcin decidir de entre un conjunto de instancias cuales satisfacen los requerimientos del problema bajo estudio y cules no lo hacen. De este modo, el conjunto de instancias se divide en el conjunto de instancias aceptadas y en el conjunto de instancias rechazadas. Dicho lo anterior se tiene que: Sea un lenguaje, se denotar como

al complemento de ; es decir que

De este modo se tiene que la clase

se puede definir como:

Ahora, definiendo la clase de un modo ms formal:

Definicin 5: Clase Para todo , se dice que

si existe un polinomio

y una mquina de Turing polinomial tal que

Ya introducida la clase de complejidad Polinomial (

se puede decir que la Jerarqua

, del ingls Polynomial Hierarchy) es, como su nombre lo indica,

una jerarqua compuesta de un nmero infinito de subclases de complejidad que extienden a , y .

Definiendo la jerarqua polinomial en funcin de cuantificadores universales ( ) y existenciales ( ) se tiene: Definicin 6: Jerarqua Polinomial ( ) Para un nmero , un problema de decisin existe un polinomio que:

est en

si tal

y una mquina de Turing polinomial

Donde

es un cuantificador existencial si

es impar y en el caso

contrario es un cuantificador universal.

Es evidente que

y que

. Si se considera que

donde

} los niveles de la jerarqua tambin pueden ser definidos de

manera recursiva de la siguiente manera:

i. ii. iii.

Ilustracin 3 Esquema grfico de la jerarqua polinomial

La definicin implica que:

En la actualidad se desconoce si las relaciones de inclusin son propias aunque se cree que es as; sin embargo, si existiera un o que colapsa al nivel -simo. Si es decir que siendo tal que o

la jerarqua dejara de ser infinita y se dira que la jerarqua colapsara completamente a ,

3. PROBLEMAS INTERMEDIOS

La mayora de los problemas que pertenecen a la clase bien como problemas fciles (en

han sido clasificados -

) o bien como problemas duros (

Completos), este hecho puede llevar a creer que todo problema contenido en o es fcil o es -Completo. Sin embargo, existen algunos problemas en que

se han resistido a ser categorizados de la forma antes mencionada, a pesar del intensivo estudio al que han sido sometidos y de los innumerables intentos hechos para clasificarlos. Surge entonces de manera lgica la idea que si entonces el conjunto formado por este modo una tercera clase dentro de . llamada ,

es no vaco [4], naciendo de -Intermedio y notada como

Ilustracin 4 Diagrama de Venn de la clase si

Teorema de Ladner Si existe entonces

tal que

no es

-Completo.

Las demostraciones conocidas del teorema anterior implican la definicin de un lenguaje artificial que acte como separador para la clase conoce un problema natural que pertenezca a la clase [4]. No se

, aunque existen

algunos problemas interesantes de los cuales se conjetura, o se ha conjeturado, pertenecen a la clase .

3.1.

PROBLEMA DE LA PRIMALIDAD
Nombre del Problema: Prueba de Primalidad (Primality Testing; PRIMES). Entrada: Un nmero Problema: Determinar si . es primo o no. fue

Uno de los primeros candidatos para ser un miembro natural de la clase el problema de la primalidad.

El inters en determinar si un nmero es primo o no surgi mucho antes de la existencia de los computadores debido a que los nmeros primos son necesarios para probar algunas conjeturas matemticas [2]. Gran cantidad de investigadores buscaron pruebas de primalidad eficientes partiendo del hecho que ya estaba demostrado que el problema PRIMES hacia parte de la clase . Dentro de las aproximaciones al problema estn el algoritmo

de Miller y el algoritmo probabilstico de Rabin-Scott [3]; sin embargo, fue solo hasta el ao 2002 cuando Manindra Agrawal, Neeraj Kayal y Nitin Saxena

exhibieron en [1] un algoritmo determinista de tiempo polinomial que determina si un nmero es compuesto o primo, demostrando por ende que el problema PRIMES pertenece a y descartando entonces que sea un miembro de .

A diferencia del problema recin mencionado, existen otros lenguajes que an persisten como candidatos naturales para ser miembros de la clase .

Destacan el problema de determinar si dos grafos finitos son isomorfismos (el cual ser estudiado en profundidad posteriormente), el problema de determinar si

dos grupos finitos son isomorfos, el problema de factorizar nmeros enteros, la determinacin de un ganador en juegos de paridad, el problema del logaritmo discreto y otros problemas relacionados con la criptografa. Considere el problema a continuacin:

3.2.

FACTORIZACIN DE NMEROS ENTEROS


Nombre del Problema: Factorizacin de enteros (Integer Factorization. FACTORING). Entrada: Un nmero Problema: Determinar si . tiene un divisor no trivial.

Dado un nmero natural escribir a modo, si

hallar su factorizacin en nmeros primos consiste en

como un producto de potencias de sus divisores primos. Dicho de otro donde es primo y para todo se tiene que

Calcular

la

factorizacin

de

consiste

en

calcular

el

vector

. La existencia de esta descomposicin est garantizada por el teorema fundamental de la aritmtica que sostiene que todo nmero natural puede ser escrito como un nico producto de nmeros primos aunque, como se puede notar, este no da pista alguna sobre el modo de determinar dicho producto. Ahora, descomponer (o factorizar) no trivialmente un nmero natural escribirlo de la forma de modo que y consiste en donde y

son nmeros no necesariamente primos.

Ilustracin 5 Esquema de la factorizacin de un nmero natural

El problema de factorizar enteros encuentra sus instancias ms complejas en nmeros semiprimos largos donde sus nicos factores y son nmeros primos

largos de un tamao similar pero no igual. Este hecho fue capitalizado por los creadores del, ampliamente difundido, protocolo criptogrfico RSA el cual explota la intratabilidad del problema de factorizar nmeros enteros largos [23], aunque es importante aclarar que no se ha demostrado que dicho procedimiento no exista. Los algoritmos ms eficientes que existen en la actualidad para factorizar enteros en su orden son: 1. General Number Field Sieve (GNFS): es el algoritmo ms rpido para factorizar nmeros de ms de cien dgitos [25]. 2. Quadratic Sieve: es el segundo algoritmo ms rpido, es ms veloz que el algoritmo GNFS cuando se procesan instancias de menos de 100 dgitos [25]. 3. Elliptic Curved Method (ECM): es considerado un algoritmo de propsito especfico, es el procedimiento ms rpido para factorizar nmeros que no exceden los 25 dgitos [25].

Por otra parte, en el caso hipottico (actualmente) de poder desarrollar la computacin cuntica el problema sera resuelto en tiempo polinomial gracias al algoritmo de Shor [27]. Respecto a la complejidad de la versin de decisin del problema de factorizar enteros se considera que est en la clase teorema de Shor, se sabe que el problema est en la clase sospecha que no hace parte de las clases implicara que o [13]. Apoyado en el . Sin embargo, se [2] debido a que esto

3.3.

ISOMORFISMO DE GRUPOS
Nombre del Problema: Isomorfismo de Grupos (Group Isomorphism. GROUP-ISO). Entrada: Dos grupos finitos y

.
y . es

Problema: Determinar si existe un isomorfismo entre Un grupo es una estructura algebraica donde

es un conjunto y

una operacin binaria que combina dos elementos de elemento tambin de .

para asignarles un tercer

Dicha estructura debe cumplir con cuatro condiciones denominadas axiomas de grupo que son: i. ii. iii. Clausura: Asociatividad: Identidad o existencia de elemento neutro: . iv. Invertibilidad o simetra: . .

. -elementos

Todo grupo admite un sistema

tiene la propiedad de que cada uno de sus de como mximo

generadores (donde

es un sistema de generadores para

s y solo si todos los elementos de

pueden ser obtenidos como el resultado de componer (o de operar) algunos de los elementos de ). y de modo tal que

Se dice que dos grupos funcin biyectiva

son isomorfos si existe una


se tiene que:

Y se nota como:

o simplemente como

Gracias a la propiedad de los grupos mencionada anteriormente, es posible obtener, en tiempo sub-exponencial, un sistema de generadores para un grupo mediante la consideracin de todas las posibles -combinaciones de

hasta que se halle una combinacin tal que constituya un sistema de generadores para . Este hecho es aprovechado para detectar si dos grupos son isomorfos en el siguiente algoritmo: 1. Determinar un sistema de generadores 2. Asociar a cada elemento de . 3. Para cada -permutacin y de , donde evaluar si la funcin se define por para .

su representacin

es un isomorfismo entre

es un isomorfismo,

4. Si al menos existe una permutacin para la cual entonces se acepta, de lo contrario se rechaza.

Revisar si una

-combinacin es un sistema de generadores toma . Adems, verificar pasos, mientras el nmero de . De este modo el algoritmo requiere,

pasos, entonces el procedimiento completo tomar si la funcin es un isomorfismo requiere

-permutaciones esta acotado por al procesar un input de tamao

Unidades de tiempo. Del problema de isomorfismo de grupos se sabe que puede ser resuelto en espacio , y que puede ser reducido en tiempo polinomial

al problema de isomorfismo de grafos [4]. Sin embargo, y an a pesar del algoritmo exhibido (el cual requiere tiempo estrictamente menor que exponencial, pero no polinmial), desconoce si esta en se desconoce su ubicacin dentro de , en o en ). , (esto es: se

4. METODOLOGAS PARA SOLUCIONAR PROBLEMAS

Cuanto mayor es la dificultad, mayor es la gloria. Marco Tulio Cicern En la computacin al igual que en muchas reas no basta con ser eficaz, es imprescindible ser eficiente. Basadas en esta premisa surgen las nociones de algoritmo bueno y la de algoritmo malo. Entendindose como una rutina buena aquella que adems de resolver el problema, lo hace con una baja demanda de los recursos computacionales a disposicin y como un procedimiento malo a aquel que falla al intentar resolver la tarea a la cual se enfrenta o que para lograrlo exige demasiados recursos; de manera intuitiva, se consideran como problemas fciles a aquellos para los cuales existen buenos algoritmos para resolverlos, y como problemas difciles aquellos donde el mejor procedimiento para solucionarlos es un mal algoritmo. En la actualidad, la convencin sugiere que un problema se puede considerar como fcil si puede ser resuelto por una rutina computacional que se ejecute en un tiempo acotado por una funcin polinmica, es decir, que pertenezca a la clase Si se toma que sern fciles. Ahora, asumiendo que , se considera que todos los problemas .

, se tendr entonces que todos los problemas de la clase

son difciles y por ende no existen buenos algoritmos para resolverlos. Sin embargo, muchos de estos problemas son de vital importancia prctica (sobre todo en labores de optimizacin), razn por la cual es absolutamente necesario hallar una solucin incluso si ella no es tan buena como se quisiera.

Cuando se hace frente a un problema difcil y es necesaria una respuesta puede intentarse alguno de los tres enfoques que sern mencionados a continuacin. 1. Usar el algoritmo determinista con el que se cuenta si la instancia del problema es pequea o la rutina computacional tiene un comportamiento aceptable para dicha instancia. 2. Buscar soluciones cuasi ptimas en tiempo polinomial ya que en la prctica suelen ser lo suficientemente buenas. 3. Restringir las instancias del problema de modo que se puedan aislar casos especiales importantes del problema que se resuelvan en tiempo polinomial. A continuacin se har nfasis en torno a la bsqueda de soluciones cuasi ptimas y al enfoque que sugiere el restringir las instancias del problema.

4.1.

SOLUCIONES CUASI PTIMAS

Aunque, los problemas de optimizacin son problemas de bsqueda, se puede aprovechar el hecho que tambin pueden ser planteados como problemas de decisin. Este enfoque es til cuando hallar la solucin ptima es difcil o resulta muy costosa en trminos de recursos de cmputo. Para alcanzar respuestas cuasi ptimas se puede recurrir al uso de: 4.1.1. Algoritmos de Aproximacin Los algoritmos de aproximacin constituyen uno de los caminos usados para obtener soluciones a problemas de bsqueda duros. Para alcanzar una respuesta vlida, el algoritmo renuncia a determinar la respuesta ptima (la cual es, en trminos computacionales, altamente difcil de alcanzar) a cambio de determinar en tiempo sub-exponencial una respuesta subptima que se ajuste a los requerimientos de la aplicacin prctica. Los algoritmos de aproximacin se caracterizan por presentar una relacin de proximidad definida como:

(
Donde

, para toda entrada al algoritmo de tamao

es el costo de producir una solucin con el algoritmo de aproximacin y

es el costo de obtener la respuesta ptima al problema [6]. De un algoritmo con un ndice de proximidad se dice que es un -algoritmo de aproximacin.

Como es evidente, la proporcin para valores de

nunca ser menor que uno; as mismo,

se obtienen soluciones sub-optimas, mientras que un

-algotimo dar como salida la respuesta ptima del problema. Para algunos problemas es un valor constante, mientras que para otros, en crece en

el mejor algoritmo conocido que se ejecuta en tiempo polinomial, funcin del tamao de la entrada.

Por otra parte, un sistema de aproximacin para un problema de optimizacin es un algoritmo de aproximacin que adems de tomar como entrada la instancia del problema, considera tambin un parmetro el sistema se comporta como un de modo tal que con input

-algoritmo de aproximacin [6].

4.1.2. Algoritmos Aleatorios o Probabilsticos Un algoritmo aleatorio es aquel que recibe adems de los datos de entrada un flujo constante de bits aleatorios que son usados por el algoritmo para tomar decisiones aleatorias [19]. Caractersticas de los algoritmos aleatorios son la permisividad al fallo, siempre y cuando lo hagan con una baja probabilidad, el hecho que pueden dar respuestas diferentes con una misma entrada y que su rendimiento sobre una entrada fija es, en trminos de tiempo de computo, una variable aleatoria [19] que depende de las decisiones tomadas durante la ejecucin del algoritmo [26].

Para muchos problemas la mejor rutina conocida es un algoritmo aleatorio, incluso, si es posible comparar el desempeo de un algoritmo determinista y uno probabilista para solucionar una misma tarea, el algoritmo aleatorio es frecuentemente ms simple de implementar y de mayor eficiencia que el determinista. Incluso, en algunos casos, el mejor algoritmo determinista para un problema dado es obtenido a partir de la eliminacin de la aleatoriedad (Derandomization en ingls) de un algoritmo probabilista. La potencia introducida al algoritmo por la posibilidad de tomar decisiones aleatorias es tal que puede convertir un algoritmo determinista ingenuo con un mal desempeo en un procedimiento con un rendimiento con alta probabilidad de ser bueno en la mayora de las instancias posibles. 4.1.3. Heursticas y Meta-heursticas Las heursticas son procedimientos que se implementan con la esperanza de alcanzar un buen desempeo en trminos computacionales, a expensas de la exactitud y/o la precisin de la respuesta obtenida. Estos algoritmos, adems, suelen estar basados en la experiencia y, a priori, se desconoce el comportamiento que presentaran ante diferentes tipos de instancias del problema al cual se enfrentan. Con el uso de heursticas existe la posibilidad, al menos en teora, de determinar la solucin ptima para un problema de bsqueda, sin embargo, es algo que en la prctica suele ocurrir poco debido a que esta clase de procedimientos tienden a atascarse en soluciones localmente ptimas [7]. Buscando solucionar el problema recin mencionado, las meta-heursticas introducen reglas sistemticas que les permiten, en la mayora de los casos, continuar con la bsqueda del valor ptimo dejando de lado los ptimos locales [7], aunque esto no garantiza que una meta-heurstica halle siempre el valor ptimo para un problema de bsqueda de optimizacin. Glover y Laguna definen en [12] el trmino meta-heurstica como una estrategia maestra que gua y modifica otra heurstica para producir soluciones ms all de

aquellas que son normalmente obtenidas en una bsqueda de optimalidad local. La heurstica guiada por meta-estrategias puede ser un procedimiento de alto nivel (de complejidad conceptual) o puede simplemente incluir una descripcin de los pasos a seguir para transformar una solucin en otra junto con una regla de evaluacin asociada. Glover y Laguna tambi n proponen un mtodo para clasificar meta-heursticas con base en los parmetros i. ii. iii. : Uso de memoria adaptativa. : La forma en la cual se explora la vecindad. : La cantidad de soluciones factibles que son traspasadas de una iteracin a la siguiente. Cuyos valores pueden ser a saber:

Entre las meta-heursticas ms usadas destacan las redes neuronales artificiales (RNA), los algoritmos genticos (AG) y la bsqueda tab.

4.2.

RESTRICCIONES SOBRE LAS INSTANCIAS DEL PROBLEMA

Cuando se hace frente a un problema computacional, es frecuente reducir su estudio a la bsqueda de un algoritmo capaz de solucionar cualquier instancia posible del problema planteado de manera eficiente, ignorando que muchas situaciones prcticas imponen restricciones adicionales sobre el dominio del mismo las cuales limitan el tipo de instancias que pueden aparecer.

Dado un problema computacional siempre es posible (y en ocasiones es til) introducir constraints adicionales que restrinjan el conjunto de instancias, de esta manera es posible obtener (definir) nuevos problemas Si el problema tales que .

es ms fcil y contiene todas las instancias interesantes (todas

las que puedan ocurrir en la prctica) se ha dado un paso adelante en la solucin del problema computacional estudiado. 4.2.1. El Poder de Restringir En un sinnmero de oportunidades la bsqueda de un algoritmo capaz de resolver cualquier instancia de un problema dado resulta infructuosa. Ahora bien, existen algunos inputs que en la prctica no es posible que ocurran, por ello, limitarse a evaluar nicamente instancias probables se erige como una metodologa eficaz, en la mayora de casos, para abordar problemas altamente demandantes en trminos computacionales especialmente cuando dichos problemas estn ntimamente relacionados con ambientes prcticos. Ahora, antes de continuar, se considera necesario introducir primero algunos conceptos propios de la teora de grafos debido a que en lo sucesivo del presente escrito sern abordados problemas propios de esta temtica. De un modo formal, un grafo es un par de conjuntos disyuntos ( ), donde los elementos del conjunto son llamados vrtices y los .

elementos del conjunto

se denominan aristas y se satisface que

Desde una ptica prctica, los vrtices representan, en un modelo, a los elementos del sistema mientras que las aristas representan las relaciones binarias existentes entre cada par de dichos elementos. Cuando en un grafo una arista establece un vnculo entre dos vrtices , y se da origen

a una relacin de adyacencia de vrtices. De

se dir que son vrtices

adyacentes mientras que de la arista sobre y .

se dir que incide (es incidente)

Existen diversas formas de representar un grafo; sin embargo, en este punto del documento se har nfasis en la representacin grfica y posteriormente, a lo largo del escrito, se introducirn algunas de las otras representaciones. Un grafo se representa grficamente mediante la elaboracin de un diagrama en el cual cada uno de los elementos del conjunto de vrtices es representado por un punto especfico que le diferencia de los dems, mientras que cada una de las aristas es caracterizada por un segmento de lnea continuo que une a dos vrtices no necesariamente distintos. Cuando se habla de grafos dirigidos el segmento de lnea llevar en uno de sus extremos una cabeza de flecha que indicar la direccin de la relacin que es representada por la arista. Adems, resulta ideal que en el esquema los segmentos que representan a las aristas no tengan puntos en comn diferentes a sus puntos terminales que vienen siendo los vrtices del grafo.

Ilustracin 6 Representacin grafica de un grafo

Dado un problema algortmico , este define un conjunto formado por todas las instancias posibles de considerar el problema definido por: . Ahora, dado

que es aquel se puede

Nombre del problema: Entrada: Problema: Decida si

Al definir se cumpla que con

se han eliminado algunas de las instancias de ) y es posible que

(siempre y cuando

resulte ser fcil en comparacin

(si en la definicin de

han sido eliminadas las instancias ms difciles

de ). En lo que queda de este captulo se mostrar cmo, en algunas ocasiones, esta intuicin resulta correcta mientras en otras no lo es tanto. 4.2.1.1. Cuando restringir funciona

En esta seccin se estudiara un caso en el cual restringir funciona. Son de especial inters para este trabajo problemas algortmicos relacionados con grafos, y particularmente, las restricciones planares de los mismos. Considrese el siguiente problema: Nombre del Problema: Conteo de matchings perfectos. #MATCH. Entrada: Un grafo . .

Problema: Calcular el nmero de matchings perfectos en un grafo Dado un grafo , un matching en

es un conjunto de aristas que no se dice que es perfecto si todos

comparten vrtices en comn. De un matching

y cada uno de los vrtices del grafo son incididos por una y solo una arista del matching.

Ilustracin 7 Grafo y uno de sus matchings perfectos. a. Grafo b. Matching perfecto de a.

Valiant en [32] prob que #MATCH es un problema Toda prob en [29] que todo problema

-completo, por otro lado

-completo es ms difcil que cualquier

problema en la jerarqua polinomial. Con esto se asegura que #MATCH es an ms difcil que todo problema dentro de la clase Ahora, considrese el problema #MATCH .

definido por:

Nombre del Problema: Conteo de matchings perfectos en grafos planos. #MATCH . . .

Entrada: Un grafo plano

Problema: Calcular el nmero de matchings perfectos en un grafo Claramente #MATCH

es la restriccin planar de #MATCH. Surge entonces la ? pertenece a la clase . Esto significa

pregunta qu tan difcil es #MATCH Kasteleyn prob en [20] que #MATCH

que la restriccin planar del (muy difcil) problema #MATCH es un problema fcil ya que puede ser resuelta en tiempo polinomial. El ejemplo anterior muestra que restringir puede convertir problemas difciles en problemas fciles. El quid del asunto es que la restriccin sea relevante, es decir, que el conjunto de instancias sea representativo. Particularmente, la

representatividad de la clase de grafos planos est demostrada en el hecho que algunas aplicaciones solo precisan considerar este tipo de grafos. As por ejemplo, a la fsica estadstica que estudia el modelo de ISING solo le interesa el conteo de matching perfectos en grafos planos, y este problema, precisamente, es resuelto por el famoso algoritmo enunciado por Kasteleyn en [20] quien de por s, era un fsico estadstico. 4.2.1.2. Cuando restringir NO funciona

Considrese el problema: Nombre del Problema: Ciclo hamiltoniano. HAMCYCLE. Entrada: Un grafo .

Problema: Decidir si el grafo Dado un grafo

tiene un ciclo de Hamilton.

, un ciclo de Hamilton es una secuencia de aristas

adyacentes que visita todos los vrtices del grafo y el ltimo vrtice visitado es adyacente al primero.

Ilustracin 8 Grafo y circuito de Hamilton. a. Grafo b. Circuito de Hamilton en el grafo a.

El problema HAMCYCLE es un caso especial de la versin de decisin del problema del agente viajero (Travelling SalesmanProblem. TSP) [28] donde la ponderacin de las aristas (que en TSP representa la distancia entre las ciudades) es reemplazada por el establecimiento de una constante que indica la adyacencia entre dos vrtices e infinito en el caso que los vrtices no sean adyacentes. HAMCYCLE es un problema -Completo [11].

Garey, Johnson y Tarjan probaron en [10] que la restriccin planar del problema HAMCYCLE (ntese como HAMCYCLE ) es -Completa. Lo cual implica que son igualmente difciles.

el problema HAMCYCLE y su restriccin HAMCYCLE

En los prximos captulos la atencin ser centrada en el problema del isomorfismo de grafos, el cual, a diferencia de HAMCYCLE, se conjetura que hace parte de la clase En este estudio se considerarn algunas de sus

restricciones y se har un nfasis particular en la restriccin planar de este problema.

5. EL PROBLEMA DEL ISOMORFISMO DE GRAFOS

Cuando Leonhard Euler public en 1736 su trabajo Solutio problematis ad geometriam situs pertinentis sobre el afamado problema de los puentes de Knigsberg en el cual empleaba un esquema que simplificaba el sistema formado por las dos islas, las dos riberas y los siete puentes sobre el ro Pregel seguramente jams imagin el potencial que tena aquella sencilla abstraccin. La representacin sugerida por Euler, quien nunca lleg a dibujarla, recibi el nombre de grafo y fue introducida en reas como la qumica terica gracias a trabajos como los de Arthur Cayley, en el anlisis de circuitos a travs de los estudios desarrollados por Gustav Kirchhoff y, de un modo similar, llegaron a penetrar en otras ciencias como las biolgicas y las sociales a tal punto que llegaron a convertirse en elementos ubicuos y recurrentes en las tareas de modelado de sistemas sin hacer distincin alguna respecto a su origen. En la teora de grafos se condensa el estudio matemtico de la estructura y de las relaciones existentes entre dos o ms grafos. Entre los problemas destacados que aborda esta rea de las matemticas destaca el isomorfismo cuya importancia radica en que gracias a ellos es posible extender percepciones de un fenmeno a otro y, en particular, los grafos no son una excepcin. Por otra parte, no siendo suficiente con esto, el problema de isomorfismo de grafos resulta ser un objeto de estudio interesante no solo por su aplicabilidad en reas como la qumica

informtica, la minera de datos o el diseo electrnico automatizado sino que tambin por la extraa (por llamarla de algn modo) posicin que ocupa dentro de la teora de la complejidad computacional.

5.1.

PLANTEAMIENTO DEL PROBLEMA


Nombre del problema: Problema de isomorfismo de grafos (Graph isomorphism Problem, GIP) Entrada: Dos grafos finitos y

Problema: Decidir si

son grafos isomorfos.

El problema de isomorfismo de grafos se puede enunciar informalmente de un modo muy sencillo: evaluar si dos estructuralmente, el mismo grafo. Definicin 7: Grafos Isomorfos Dados dos grafos y , se dice que son grafos isomorfos ( grafos que lucen diferentes son,

) si

Un isomorfismo es una funcin biyectiva

que preserva la relacin de

adyacencia existente entre los vrtices de un grafo en el otro grafo. Y, adems, tambin es un isomorfismo.

Ilustracin 9 Grafos isomorfos

5.2.

COMPLEJIDAD DEL PROBLEMA DE ISOMORFISMO DE GRAFOS

Como se mencion previamente, el problema de isomorfismo de grafos ocupa un lugar especial dentro del universo de la teora de la complejidad computacional; resulta sencillo demostrar que es un lenguaje contenido en la clase de complejidad pero, contrario a lo que ocurre con la mayora de los elementos de la clase, no ha podido ser catalogado como un problema contenido en o como -

Completo siendo esta la razn por la cual emerge como uno de los candidatos naturales ms slidos para corroborar el teorema de Ladner. GIP no se considera contenido en porque, a da de hoy, no existe una mquina

de Turing determinstica capaz de decidir si dos grafos dados cualquiera son isomorfos [21], en contraposicin no se le considera -Completo porque de serlo

la jerarqua polinomial colapsara en el segundo nivel y adems est demostrado que la versin de conteo del problema es polinomialmente equivalente a GIP y existe la fuerte creencia que este fenmeno no se presenta en los problemas Completos [31]. Adicional a lo recin mencionado, es bien sabido que cuando se restringe el problema de isomorfismo de grafos a clases (de grafos) con ciertas propiedades fijas (ntese el problema restringido como GIP[ ]) se presentan dos fenmenos a saber. Por una parte se encuentran clases denominadas isomrficamente completas como la de los grafos eulerianos bipartitos o los grafos cordales para las cuales resolver GIP[ ] es tan difcil como resolver GIP. Mientras que, en el otro extremo se encuentran clases como las de grado acotado, rboles o grafos planos para las cuales GIP[ ] es un elemento de la clase . -

5.3.

RESOLVIENDO EL PROBLEMA DE ISOMORFISMO DE GRAFOS


-Completo, tambin

Si bien es cierto que se cree que GIP no es un problema

resulta cierto que el hecho que no ha sido posible demostrar que sea un lenguaje de la clase es una prueba que indica que no puede ser resuelto, a da de hoy,

en tiempo polinomial, an cuando es uno de los problemas que ms ha sido abordado. Algoritmos que intentan resolver GIP abundan en la literatura especializada, siendo el resultado obtenido por Luks y Zemlyachenko de

la mejor cota

superior conocida en la actualidad aunque no existen evidencias que indiquen que

esta cota sea ptima [31]. Ahora bien, cuando se revisan los algoritmos desarrollados para resolver GIP se pueden distinguir dos metodologas para hacer frente al problema, una de ellas consiste en computar los dos grafos de tal manera que se busca entre el conjunto de permutaciones un isomorfismo entre ellos mientras que la otra metodologa sugiere procesar los grafos de modo tal que de cada uno de ellos se obtenga un cdigo nico para cada grafo el cual ser igual si se trata de dos grafos isomorfos. Por otra parte, y como ya se mencion previamente, existen clases de grafos para las cuales el problema de isomorfismo de grafos puede ser resuelto en tiempo polinomial; y justamente el siguiente apartado de este captulo se centrar en presentar un algoritmo que resuelve el problema de isomorfismo de rboles de una manera eficiente. La razn por la cual se opta por presentar este algoritmo es que constituye la piedra angular de otros procedimientos desarrollados para abordar el isomorfismo de grafos en clases ms complejas como la de grafos planos la cual es la clase central de estudio dentro de este proyecto.

5.4.

ISOMORFISMO DE RBOLES: UN ALGORITMO POLINOMIAL

Existen problemas que pertenecen a la teora de grafos que son intratables algortmicamente; sin embargo, cuando las instancias de estos son restringidas a la clase especial de grafos denominada rboles la mayor parte de los problemas pueden ser resueltos en tiempo polinomial. Esto es importante para este trabajo porque el objeto de estudio de este, el isomorfismo de grafos, no es una excepcin a la situacin recin expuesta. A continuacin sern introducidos algunos conceptos necesarios para poder presentar un algoritmo determinista que resuelve GIP restringido a rboles.

Definicin 8: rbol Un grafo ser llamado rbol si es un grafo simple, no dirigido y no tiene ciclos.

Si dos vrtices Por otra parte, todo vrtice llamado hoja.

, la arista

ser denominada rama. ser

con grado igual a uno que pertenezca a

Definicin 9: rbol con raz Un rbol con raz es un par vrtice distinguido llamado raz. Si

donde

es un rbol y

es un

es una rama y el vrtice hasta la raz, se dice que es el padre de

est en el nico camino desde es el hijo de .

y a su vez,

Definicin 10: rbol Plantado Un rbol plantado es un rbol con raz y un dibujo ese dibujo la raz del rbol

en el plano. En

se indica con una flecha que apunta haba

abajo, y los hijos de cada uno de sus vrtices ests situados encima del vrtice correspondiente. Diferenciar un vrtice de un rbol y fijarlo como la raz del rbol impone un

ordenamiento parcial sobre plantado como una tripla

. Con esto en mente se puede definir un rbol donde es una coleccin de ordenaciones

lineales, una ordenacin lineal para el conjunto de los hijos de cada vrtice. De acuerdo al tipo de rbol la definicin de la funcin isomorfismo vara del siguiente modo: es una funcin isomorfismo si es una funcin biyectiva y adems: Isomorfismo de rboles: Dados y dos rboles

Isomorfismo de rboles con raz: Dados raz

y(

dos rboles con

Isomorfismo de rboles plantados: Dados con raz

y(

dos rboles

5.4.1. Construyendo el Algoritmo El procedimiento que se sigue en la de la carrera para construir el algoritmo para decidir si dos rboles son isomorfos tiene como punto de partida los rboles plantados y la definicin de la funcin isomorfismo para los mismo debido a que al ser ms restrictivos, codificarlos resulta menos complicado que con casos ms generales. Dados secuencia de y y , el algoritmo consiste, bsicamente, en asignar una de longitud (donde es la cantidad de vrtices del

grafo) llamada cdigo del rbol

. rboles isomorfos producen secuencias

idnticas, mientras que rboles no isomorfos producen secuencias distintas. Algoritmo 1: Isomorfismo de rboles plantados 1. Generar el cdigo del rbol para cada 1.1. A cada hoja del rbol (si la raz tiene grado 1 obviarla) se le asigna el cdigo .

1.2. Generar para cada vrtice del rbol su cdigo correspondiente. 1.2.1. Sea un vrtice con hijos es el cdigo del hijo . (escritos de izquierda , entonces el vrtice

a derecha). Si recibe el cdigo

1.3. El cdigo del rbol ser el cdigo de la raz. 2. Comparar el cdigo de con el cdigo de . Si los cdigos son iguales los

rboles son isomorfos, en caso contrario, no son isomorfos.

Ilustracin 10 rbol y etiquetas que conforman su cdigo nico

Algoritmo 2: Isomorfismo de rboles con raz 1. Generar el cdigo del rbol para cada 1.1. A cada hoja del rbol (si la raz tiene grado 1 obviarla) se le asigna el cdigo .

1.2. Generar para cada vrtice del rbol su cdigo correspondiente. 1.2.1. Supngase que cada hijo . Se denota por de un vrtice ya tiene asignado a los hijos de , de

un cdigo

manera que cdigo .

1.

El vrtice

recibe el

1.3. El cdigo del rbol ser el cdigo de la raz. 2. Comparar el cdigo de con el cdigo de . Si los cdigos son iguales los

rboles son isomorfos, en caso contrario, no son isomorfos. 5.4.2. El Algoritmo Como se ha podido notar en los dos algoritmos ya exhibidos, conocer la raz del rbol constituye una necesidad ya que en dicho nodo se forma el cdigo descriptor del rbol a partir de la recopilacin de los cdigos de cada uno de los vrtices del grafo. Ahora, dado un rbol , es posible designar cualquier como la

raz del rbol, lo cual lleva a pensar que bastara con definir una forma estndar para seleccionar el vrtice de modo tal que una vez desarrollado ese proceso, el rbol podra ser visto como un rbol con raz. Para desarrollar esta idea es necesario introducir primero algunos conceptos que permitirn presentar el proceso antes mencionado de una forma ms clara y precisa. Definicin 11: Excentricidad y centro de un grafo Dado un grafo , se le llama excentricidad del vrtice grafo y notado como

en el a

al nmero mximo de las distancias de

los otros vrtices de

. Ahora se le llamar centro del grafo

al conjunto

de todos los vrtices de .


1

con excentricidad mnima y lo notaremos como

Aqu significa que la secuencia es menor que la secuencia usando el orden lexicogrfico. Dos secuencias distintas y se comparan como sigue: Si es un segmento inicial de entonces . Si es un segmento inicial de entonces B . Si no es as, sea el menor ndice con . Entonces, si se dice que , y si se dice que

Ahora, gracias a que para cualquier rbol

, se tiene que

tiene

como mximo dos vrtices y, si este es el caso, se puede asegurar que existe una rama entre dichos vrtices [22] resulta posible desarrollar una rutina que permite seleccionar un vrtice del rbol como la raz del mismo. Algoritmo 3: Isomorfismo de rboles 1. Seleccionar la raz del rbol 1.1. Si el centro de de tiene un solo vrtice , entonces se define el cdigo . , se considera el

como el cdigo del rbol con raz , consiste de una rama

1.2. Si el centro de grafo [22] y

. Este grafo tiene exactamente dos componentes conexas con y . Ahora, se dice que y representa el cdigo

representa el cdigo del rbol con raz del rbol con raz rbol . Si

en la odenacin lexicogrfica, el , de lo .

se codifica mediante el cdigo del rbol con raz

contrario, se codifica con el cdigo del rbol con raz 2. Generar el cdigo del rbol para cada

2.1. A cada hoja del rbol (si la raz tiene grado 1 obviarla) se le asigna el cdigo .

2.2. Generar para cada vrtice del rbol su cdigo correspondiente. 2.2.1. Supngase que cada hijo . Denotamos por que lexicogrfico. . 2.3. El cdigo del rbol ser el cdigo de la raz. El vrtice de un vrtice ya tiene asignado a los hijos de , de gracias recibe el a un

un cdigo manera

ordenamiento

cdigo

3. Comparar el cdigo de

con el cdigo de

. Si los cdigos son iguales los

rboles son isomorfos, en caso contrario, no son isomorfos.

6. EL PROBLEMA DEL ISOMORFISMO DE GRAFOS PLANOS

Divide et vinces (Divide y vencers) Gaius Julius Caesar (Julio Cesar) La clase formada por los grafos planos es importante porque ocurre tanto en labores de modelado como en el diseo de redes o en la planeacin de rutas de transporte eficientes. Un grafo se dice que es planar si puede ser es planar (o plano) si existe al

embebido en el plano, dicho de otro modo,

menos una manera de representarlo grficamente en un plano de modo tal que no se presenten intersecciones de aristas. De una manera ms formal se tiene que: Definicin 12: Grafo Plano (planar) Sea la coleccin de todas las curvas planas simples y sea un grafo. Se dir que es plano si y solo si existen y

de manera tal que: i. ii. Si y son inyectivas. se cumple entonces que: . iii. Dadas si entonces .

En este captulo, el ltimo de este trabajo, ser estudiado el problema del isomorfismo de grafos restringido a grafos planos y se revisar con un cierto nivel de detalle un algoritmo capaz de decidir en tiempo polinomial si dos grafos planos son isomorfos.

6.1.

PLANTEAMIENTO DEL PROBLEMA DEL ISOMORFISMO DE GRAFOS RESTRINGIDO A PLANOS


Nombre del problema:Problema del isomorfismo de grafos planos (Planar graph isomorphism problem, PGIP, GIP Entrada:Dos grafos planos finitos Problema: Decidir si y y . ).

son grafos isomorfos.

Como fue mencionado previamente en este documento, la falta de capacidad para determinar la posicin de GIP dentro del universo de clases de complejidad ha sido una gran motivacin para estudiar el problema, de hecho ha promovido aproximaciones al problema alternas a las habituales como el estudio del problema restringido a clases de grafos especficas. Varias subclases contenidas en la clase de grafos planos han sido abordadas y las cotas superiores e inferiores para muchas de estas clases casan, es decir, tienen el mismo valor. Del problema del isomorfismo de grafos plano es sabido, desde hace ya varios aos, que este puede ser resuelto en tiempo polinomial. Sin embargo la complejidad exacta del problema solo pudo ser determinada recientemente [30]. La siguiente tabla resume los resultados conocidos para la clase de grafos planos y algunas subclases de ella. Clase de Grafos Cota Inferior Cota Superior rboles 2-rboles paciales Grafos planos 3-conexos Grafos planos
Tabla 1 Cotas temporales para GIP en subclases de la clase de grafos planos

Donde

denota la clase

denota la coleccin de todos los usando un numero

problemas que pueden ser resueltos en tiempo polinomial de maquinas RAM.

En lo que queda del captulo se estudiar un algoritmo que resuelve el problema del isomorfismo de grafos planos en tiempo cuadrtico.

6.2.

SELECCIN DE UN ALGORITMO PARA RESOLVER GIP[ ]

A pesar de ser un problema estudiado desde los albores de las ciencias de la computacin son pocos los algoritmos capaces de decidir GIP en tiempo

polinomial y resulta an ms llamativo que la primera rutina capaz de lograrlo date apenas del ao 1972. En [17] Hopcroft y Tarjan extendieron las ideas usadas por Weinberg, que permiten decidir si dos grafos planos triconexos son isomorfos, para disear un algoritmo de tiempo polinomial que resuelve el problema del isomorfismo de grafos cuando este se restringe a la clase de grafos planos, el algoritmo de Hopcroft y Tarjan resuelve el problema GIP en tiempo . Posteriormente los mismos

autores mejoraron el desempeo del algoritmo logrando un tiempo de [30]. Luego de esto, el trabajo conjunto de Hopcroft y Wang dio origen en [18] al procedimiento ms rpido, de entre los conocidos en la actualidad, el cual es capaz de resolver GIP en unidades de tiempo donde es el

nmero de vrtices del grafo. Sin embargo, los autores hacen hincapi en el carcter terico del algoritmo al asegurar que en el estado actual de la computacin una implementacin de este procedimiento resultara ineficiente debido al gran valor de las constantes involucradas en la rutina [18]. Otra aproximacin al problema del isomorfismo de grafos planos es el algoritmo paralelo propuesto por Miller y Reif en [24] el cual empleando un nmero polinomial de procesadores resuelve el problema en apelando al modelo CRCW PRAM.2 unidades de tiempo

Mquina de acceso aleatorio paralela con escritura y lectura concurrentes (ConcurrentReadConcurrentWriteParallelRandom Access Machine)

El algoritmo seleccionado para desarrollar este trabajo fue el propuesto por Kukluk, Holder y Cook en [21], el cual es capaz de solucionar GIP tiempo en un

. Esta escogencia est fundamentada en que esta rutina

computacional puede llegar a ser implementada en un computador convencional a diferencia de las propuestas de Hopcroft-Tarjan y Miller-Reif.

6.3.

TRASFONDO DEL ALGORITMO SELECCIONADO

Para iniciar el estudio de la rutina seleccionada se probar, inicialmente, la existencia de un algoritmo de tiempo que permite decidir si dos grafos

planos triconexos son isomorfos y posteriormente se reducir el problema de decidir si dos grafos planos son isomorfos al caso de los grafos triconexos. La idea central de estos algoritmos es similar a la usada en el diseo de la rutina de tiempo lineal que resuelve el problema del isomorfismo de rboles; esto es: Los algoritmos que sern estudiados en este captulo asignan a cada grafo una secuencia de caracteres a manera de cdigo de modo tal que dos grafos sern isomorfos si y solo si sus cdigos son iguales. 6.3.1. El problema del isomorfismo de grafos planos triconexos Los grafos planos pueden tener muchos embebimientos en el plano, sin embargo, fue demostrado por Whitney en [34] que los grafos planos triconexos tienen exactamente dos embebimientos. En esta seccin ser estudiado el algoritmo propuesto por Weinberg en [33] que permite resolver el problema del isomorfismo de grafos planos triconexos. Sea un grafo plano triconexo y sea uno de sus dos embebimientos,

si se reemplaza cada arista de

por dos aristas dirigidas con sentidos opuestos

entre s, se obtendr un grafo dirigido con la siguiente propiedad: Dado iguales.

el grado de salida y el grado de entrada del vrtice

son

Gracias al teorema de Euler es posible garantizar que dado circuito euleriano que empieza en .

existe un

. a. Grafo o b. Grafo Ilustracin 11 Grafo plano triconexo y grafo plano triconexo dirigido

6.3.1.1.

Procedimiento de Weinberg un embebimiento en el plano del

El procedimiento propuesto empieza fijando grafo

y a partir de l se construye ; luego de esto se escoge un vrtice

y se fija un circuito euleriano


tiene una tripla

en con inicio en

. Hecho esto se un cdigo

a partir de la cual le ser asignado a

. Debido a que el nmero de circuitos eulerianos posibles puede ser excesivamente grande debe ser escogido un circuito cannico que inicie en Para lograr este cometido se fija una arista regla propuesta por Weinberg: 1. Salga por primera vez de 2. Dado , si usando la arista . .

incidente en

y se aplica la

es visitado por primera vez, tome la primera arista de

salida a la derecha (sentido anti horario) de la arista empleada para entrar a . 3. Si ya fue visitado previamente, use el lado dual para salir de siempre y

cuando no haya sido usado con anterioridad.

4. Si

ya fue visitado y el lado dual fue usado con anterioridad, salga del

vrtice usando la primera arista de salida a la derecha de la arista empleada para entrar en , que no haya sido usada con anterioridad. y de este

La regla de Weinberg determina una manera de recorrer el grafo modo determina un circuito euleriano circuito para asignar un cdigo a

. Hecho lo anterior podemos usar el ; el cdigo se construye de

la siguiente manera: 1. Asgnese el nmero 1 a . 2. Sea el cdigo parcial construido, cuando se visita un vrtice ocurrir uno de dos casos: 2.1. no ha sido visitado previamente: asgnese a est vrtice un nmero igual al nmero de vrtices que ya han sido visitados ms uno. En este caso el cdigo parcial se transforma en 2.2. . puede

ya fue visitado y por ende ya le fue asignado un nmero : en este caso el cdigo parcial se transformar en .

La construccin del cdigo termina cuando se regresa al vrtice inicial del ciclo y todas las aristas incidentes en ya han sido usadas.

El procedimiento antes descrito es repetido para cada una de las aristas del grafo

obteniendo as un conjunto de cdigos que evidentemente dependen del vrtice


y la arista fijados. Sea el cdigo

Donde el mnimo se calcula respecto al orden lexicogrfico. Es claro que este mnimo es nico y depende del embebimiento asociar una pareja de cdigos embebimientos del grafo Lema 1: Sean embebimientos de isomorfo a . Como donde es triconexo se puede y son los dos

en el plano. El hecho clave es el siguiente: y y dos grafos planos triconexos, y y los dos , es

los dos embebimientos de tal que

si y solo si

Por otra parte, dado plano triconexo

uno de los dos embebimientos en el plano de un grafo y a partir de

, es posible construir los cdigos

simplemente con cambiar la regla de ir a la derecha (sentido anti horario) por la regla de ir a la izquierda (sentido horario) en el procedimiento que fija el circuito cannico a travs del grafo. Gracias a ello se habla de un cdigo a la derecha y un cdigo a la izquierda. El procedimiento de Weinberg es el algoritmo grafos planos triconexos) hace lo siguiente: Algoritmo 4: Algoritmo de Weinberg 1. Construye 2. Construye 3. Construye 4. Construye 5. Calcula Verifica si y y dos embebimientos diferentes de dos embebimientos diferentes de y y . . y si es el caso acepta, de lo contrario rechaza. . . . que con entradas (dos

De lo dicho anteriormente es claro que

es correcto. Por otra parte, es posible es ). Para una prueba

chequear que el tiempo de cmputo del algoritmo el lector interesado puede consultarla referencia [33].

Llegados a este punto es posible afirmar que se ha logrado resolver el problema del isomorfismo de grafos para el caso de grafos planos triconexos,( lo cual no es suficiente). Sin embargo se puede tomar este progreso como punto de partida para disear algoritmos capaces de resolver el caso ms general, el que atae a este proyecto, el de los grafos planos. Las ideas bsicas tras los algoritmos que se estudiarn son las siguientes: i. Todo grafo plano biconexo puede ser descompuesto en un rbol de componentes triconexas. Los cdigos de estas componentes (que se calculan usando el algoritmo de Weinberg) y del rbol mismo pueden ser usados para construir un cdigo que caracteriza el grafo en cuestin. ii. Todo grafo plano se puede descomponer como un rbol de componentes biconexas. Los cdigos de estas componentes (que de acuerdo con i. ya pueden ser calculadas) y el rbol mismo pueden ser usados para construir un cdigo que caracteriza el grafo en cuestin. 6.3.2. Grafos planos biconexos Siguiendo con la hoja de ruta demarcada para resolver el problema de inters, el paso a dar consiste en considerar los grafos planos biconexos. Para abordar esta restriccin de GIP se emplear una estructura de datos denominada rbol SPQR que ser introducida a continuacin 6.3.2.1. Sea rboles SPQR y componentes triconexas un multi-grafo biconexo, las clases de separacin de un par separador de , y

con respecto a y

. Sean, entonces, . Los grafos

donde

son llamados grafos de divisin y

es una arista nueva que identifica la operacin de separacin 4 y es llamada arista virtual. Descomponer a el grafo radica en aplicar la operacin de separacin inicialmente sobre

y luego sobre sus grafos de divisin tantas veces como sea posible

hasta que cada uno de los grafos obtenidos, llamados componentes de separacin, sean de uno de los siguientes tres tipos: i. ii. iii. Un conjunto de tres aristas mltiples (triple ligadura). Un ciclo de longitud tres (tringulos). Grafos triconexos simples.

Es importante sealar que las componentes de separacin no son necesariamente nicas [14]. Lema 2: [14] Sea un multi-grafo. Cada arista de est

contenida en exactamente una componente de separacin, y cada arista virtual est contenida en exactamente dos componentes de separacin. Sean y dos componentes de separacin que . El grafo y . Las componentes triconexas de es son

contienen la misma arista virtual llamado el grafo fusin de

obtenidas como resultado de fusionar5 las componentes de separacin de los tipos i. y ii. en conjuntos maximales de mltiples aristas y en ciclos (polgonos) respectivamente. Las componentes triconexas de un grafo [14].
3

son nicas

denota el conjunto de todos los vrtices incidentes en al menos una de las aristas del conjunto . 4 La operacin separacin consiste en reemplazar un multi-grafo por sus dos grafos de divisin. 5 Fusionar consiste en reemplazar dos componentes de separacin y por el grafo fusin respectivo

Las componentes triconexas estn ntimamente relacionadas con los rboles SPQR. De hecho, los rboles SPQR son estructuras usadas para agrupar las componentes triconexas de un grafo biconexo descompuesto en sus componentes triconexas. Sea un grafo plano biconexo, dada una arista de se mostrar asociado a la ser un grafo es un

cmo construir un rbol arista

que ser llamado el rbol SPQR de

la cual ser denominada arista de referencia. El rbol un nodo de

etiquetado tal que dado

la etiqueta asociada a

multgrafo, para ms seas una componente triconexa, que ser llamado esqueleto de . Sea a saber: Q-nodos El rbol contendr este tipo de nodos si y solo si y ; en este caso . consiste de dos es un rbol de un un par cortante, el rbol puede tener vrtices de cuatro tipos

aristas paralelas conectando a

nico nodo y la etiqueta de este es

P-nodos Si tiene al menos tres componentes cortantes entonces la raz de vrtices

es un P-nodo cuyo esqueleto es un grafo con dos

y -aristas paralelas entre los nodos antes mencionados.

S-nodos Si tiene exactamente dos componentes cortantes, una de ellas se mientras que la otra es un no es un par cortante, esta segunda

reduce a la arista de referencia subgrafo maximal de en el que

componente se notar como

. Para este caso la raz del rbol ser un

nodo del tipo S y su esqueleto se construye del siguiente modo: sean

los puntos de articulacin de bloques, el esqueleto ser un ciclo y R-nodos Si ninguno de los . casos recin

que lo separan en

, donde

mencionados

aplica;

sean con

las componentes maximales cortantes de respecto a . Dado se usar

para denotar la

unin de las componentes cortantes de . La raz de de Dado manera: 1. Construir el esqueleto de la raz. 2. Dada una arista en el esqueleto de la raz, si

que no contienen al par

ser un R-nodo cuyo esqueleto es el grafo obtenido con el lado , se construye . de la siguiente

reemplazando cada subgrafo una arista de

un grafo no trivial y

es una arista de

se le

asigna la etiqueta 0, en caso contrario le es asignada la etiqueta 1. 3. Dado un nodo ya construido y dado el esqueleto de , se etiquetan

las aristas de

de acuerdo a la regla establecida en el paso 2. con etiqueta 1, se construye


4. Si es una arista de una arista entre

y se pone

y la raz de

5. Repetir el proceso hasta que ningn nodo pueda ser descompuesto. Los lemas a continuacin son dos lemas fundamentales para nuestros propsitos: Lema 3: Dado que nodo de un grafo biconexo y dadas y dos aristas de se tiene un

y el isomorfismo respeta las etiquetas (dado el esqueleto de y el de coinciden).

Lema 4: Dados de y

un grafo plano biconexo, su esqueleto. Se tiene que es triconexo.

un nodo

El lector interesado en la verificacin de los lemas puede consultar la referencia [8]. Los lemas anteriores sugieren una manera de asignar a un grafo plano biconexo un cdigo aplicando el siguiente procedimiento: 1. Escoja 2. Construya . . y de las etiquetas (esqueletos) de sus nodos .

3. Use los cdigos de

(que son triconexos) para asignarle un cdigo a

En estos momentos (exceptuando que an se desconoce la rutina por medio de la cual se genera el cdigo que describe el grafo) es posible asegurar que ya se ha demarcado una metodologa que hace posible evaluar si dos grafos planos biconexos son isomorfos. Por el momento se va a aplazar la introduccin del algoritmo generador del cdigo caracterizador del grafo biconexo y se har nfasis en la estructura del grafo plano y en cmo se le puede descomponer en un rbol de componentes biconexas que permita aprovechar el camino recorrido hasta ahora. 6.3.3. Descomposicin de grafos planos en componentes biconexas. Sea de un grafo plano no dirigido, y . Los puntos de articulacin separan a los puntos de articulacin en subgrafos biconexos .

Cada subgrafo subgrafo dos tipos:

comparte un punto de articulacin

con al menos otro

. Sea el rbol

de componentes biconexas formado por vrtices de

i. ii.

Nodos biconexos de . Nodos de articulacin articulacin de .

que corresponden a los subgrafos biconexos que corresponden a los puntos de

Un vrtice de articulacin

es adyacente a los nodos biconexos

en

si

los correspondientes subgrafos el vrtice .

tiene como punto de articulacin comn

Ilustracin 12 Grafo conexo y su rbol de componentes biconexas. a. Grafo b. rbol de componentes de biconexas de ; nodos de articulacin en color rojo, nodos biconexas en color azul

Hopcroft y Tarjan proponen en [16] un algoritmo eficiente para descomponer un grafo conexo en sus componentes biconexas realizando una primera bsqueda en anchura (DFS) a travs de las aristas del grafo. A grandes rasgos, el algoritmo recorre los arcos del grafo tratando siempre de alcanzar nuevos vrtices, cuando no es posible alcanzar un nuevo nodo y se detecta un punto de articulacin, se considera que la componente biconexa estar formada por las aristas recorridas justo despus de la primera aparicin del punto de articulacin. Una vez extrada la componente de , el proceso se repite desde el ltimo punto de articulacin

hallado hasta cubrir todos los elementos del grafo.

Dado un grafo

, una descripcin ms detallada del algoritmo es la siguiente: , seleccinelo como el punto inicial y registre la en la pila de vrtices donde es un smbolo fijado

1. Escoja un vrtice pareja

que denota que es el primer elemento de la pila. 2. Salga del vrtice en el tope de la pila usando una arista cualquiera buscando, siempre que sea posible, que visitado. Registre la arista sea un vrtice que an no haya sido

en una pila destinada para tal fin (se har

referencia a ella como pila de aristas). 2.1. Si a travs de

, desde

en el tope de la pila, se alcanza un nuevo . De lo .

vrtice, registre en la pila de vrtices la pareja contrario haga en el tope de la pila 2.2. Si no existe arista alguna para salir de si

, el vrtice en el tope de la pila, y en el

en ella (la pila) hay ms de un registro, evale si la componente

registro que se encuentra en el tope de la pila es igual a la componente del siguiente registro; de ser as, la componente biconexa se formar con los arcos que se eliminarn sucesivamente de la pila de aristas hasta encontrar una que conecte a la componente pila con el del registro en el tope de la

del siguiente registro. Elimine estos dos registros y repita el en el

paso 2 hasta que todos los vrtices y aristas sean cubiertos. Si tope es diferente del valor de

en el siguiente registro en la pila haga al del tope de la pila,

de este registro (el penltimo de la pila) igual al

elimine el registro en el tope de la pila de vrtices y repita 2. Las componentes biconexas de un grafo conexo (que tambin reciben el nombre de bloques) pueden ser de tres tipos: i. Aristas puente

ii. iii.

Subgrafos biconexos Vrtices aislados [9]

El grafo de componentes biconexas de un grafo conexo es siempre un rbol [9]. Para crear el rbol se hace lo siguiente: 1. Para cada componente biconexa dems componentes identifique los nodos comunes con las

(puntos de articulacin). que ser adyacente a las componentes

2. Cree un nodo de articulacin

que lo contengan como vrtice. 6.3.4. Isomorfismo de rboles etiquetados Como fue mencionado recientemente en esta seccin, la metodologa de solucin de GIP[ ] en la cual esta cimentado el algoritmo que se est estudiando consiste en asignar un cdigo descriptor del grafo de modo tal que dos grafos sern isomorfos si y solo si sus cdigos coinciden. Ahora bien, el cdigo del que se habla es, en esencia, una secuencia de caracteres, una palabra sobre un alfabeto definido ; dicha palabra est

constituida, a su vez, por la concatenacin de cdigos parciales asignados a los elementos del grafo a modo de identificador. Dichas palabras reciben el nombre de etiquetas y son palabras del conjunto .

El hecho de que todo grafo con puntos de articulacin, incluidos los grafos planos, pueda ser descompuesto en un rbol de componentes biconexas, lleva a pensar en que una buena manera de abordar GIP[ ] es intentar reducir este problema al problema de isomorfismo de rboles etiquetados donde a cada uno de los nodos biconexos del rbol le correspondera una etiqueta que describira la componente representada por el nodo en la estructura. La anterior idea estara sustentada por el siguiente lema:

Lema 5: Sean

dos grafos y y

sus sern

rboles de componentes biconexas respectivamente. isomorfos si y solo si y tambin son isomorfos entre s.

La presencia de las etiquetas en los rboles hace que resulte necesario redefinir la funcin de isomorfismo de la siguiente manera: Definicin13: Isomorfismo de rboles etiquetados Dados y dos grafos etiquetados. y sern isomorfos si y solo si existe i. ii. Sea la etiqueta del vrtice . tal que: . .

Una rutina para determinar si dos rboles etiquetados siguiente: Algoritmo 5: Isomorfismo de rboles etiquetados 1. Chequee los rboles y

son isomorfos es la

para isomorfismo obviando sus etiquetas.

1.1. Si los rboles son isomorfos, calcule el centro de cada rbol. De lo contrario, rechace. 2. Sean lo siguiente: 2.1. Plante los rboles y en torno a los nodos y y los vrties del centro. Para cada pareja haga

y ordene los

hijos de cada uno de los nodos (de cada uno de los rboles) de acuerdo al orden lexicogrfico de sus etiquetas. 3. Construya los cdigos del rbol plantado en torno a la raz con y . El

los cdigos del rbol

plantado en torno a la raz

cdigo se logra mediante una primera bsqueda en anchura a travs del

rbol de modo tal que en cada paso concatene al cdigo parcial ya construido la etiqueta de cada nuevo vrtice visitado. 4. Para algn valor de compare los cdigos tal que y si existe algn valor de y

acepte los rboles como isomorfos, de

lo contrario rechcelos.

6.4.

ALGORITMO DE KUKLUK, HOLDER Y COOK

La rutina propuesto para solucionar GIP[ ] acta sobre grafos planos, conexos, no dirigidos y sin etiquetar [21]; dados dos grafos presentado por los autores es el siguiente: Algoritmo 6: Algoritmo de Kukluk, Holder y Cook 1. Testear si y son grafos planos. De no serlo, rechazar mencionando y , el algoritmo

que los grafos no son planos. 2. Descomponer y en componentes biconexas y construir el rbol de

componentes biconexas. 3. Descomponer cada componente biconexas en sus componentes triconexas y construir su rbol SPQR correspondiente 4. Construir el cdigo nico para cada rbol SPQR y desde las hojas hacia la raz construir el cdigo nico para el rbol de componentes biconexas. 5. Si de lo contrario rechazar. Exceptuando la forma en la cual se construyen los cdigos para los rboles SPQR y rboles de componentes biconexas todas las rutinas invocadas por el algoritmo propuesto ya han sido presentadas al lector; se procede, entonces, a introducir las rutinas constructoras de los cdigos y posteriormente se exhibir un anlisis del tiempo de ejecucin del algoritmo estudiado en el presente documento. aceptar a y como grafos isomorfos,

6.4.1. Rutina para la generacin de un cdigo nico para el rbol SPQR de un grafo biconexo. El procedimiento que se describe a continuacin asigna un cdigo nico a un grafo biconexo. Debido a que la rutina de construccin del cdigo vara de acuerdo al nodo para el cual es elaborado se usa el conjunto de smbolos P(, )P, S(, )S, R(, )R, denominados de control, los cuales actan como identificadores y son parte integral del grupo. Estos smbolos estn ordenados lexicogrficamente del siguiente modo: P(<)P<S(<)S<R(<)R. Dado un grafo plano biconexo como input, la rutina hace lo siguiente:

Algoritmo 7: Asignacin de un cdigo nico a un grafo plano biconexo 1. Descomponga el grafo biconexo en sus construya el correspondiente rbol SPQR. 2. Reemplace cada arista en los esqueletos de los nodos del rbol SPQR con dos aristas dirigidas en direcciones opuestas entre s. 3. Identifique el centro del rbol y seleccinelo como raz. Las aristas virtuales en los esqueletos de los nodos internos del rbol ( ) estn componentes triconexas y

asociadas con las ramas del rbol por ello su cdigo depender tambin de los nodos a los cuales estn conectadas. La direccin de las ramas del rbol es determinada por la raz del rbol. 3.1. Si el centro del rbol es una arista y y los tipos de los nodos

son diferentes fije una regla que especifique que tipo de nodo debe

ser seleccionado como el centro del rbol. Es fcil verificar que dos nodos del mismo tipo solo pueden ser adyacentes si son tipo R; para este caso deben computarse dos casos por separado uno considerando y luego otro considerando a como raz.

4. Construye el cdigo a partir de la raz del rbol de acuerdo a las siguientes reglas: Nodo tipo S

El cdigo inicia con S( y termina con )S. Como Raz Agregue el nmero de aristas del esqueleto de S al cdigo. Determine los cdigos asociados a las aristas virtuales. Escoja la arista con el menor cdigo de acuerdo al orden lexicogrfico y considrela la arista de referencia. Recorra el circuito euleriano determinado por la arista referencia iniciando con el lado inmediatamente siguiente a ella. Cuente las aristas durante el recorrido. Si una arista virtual es hallada registre en el cdigo el nmero que le correspondi durante la exploracin del esqueleto. Al llegar a la arista de referencia el recorrido finaliza. Concatene al cdigo hallado los cdigos correspondientes a las aristas virtuales en el orden en el que fueron halladas durante el recorrido. Si el nodo raz no tiene aristas virtuales ni puntos de articulacin, el cdigo del nodo ser el nmero de aristas de su esqueleto. Para los casos en los cuales la arista de referencia no puede ser seleccionada porque hay varias aristas con el menor cdigo, el procedimiento descrito deber repetirse para cada una de ellas y el menor de los cdigos hallados ser el cdigo nico de la raz tipo S. Si en algn punto durante el recorrido es hallado un punto de articulacin, recuerde en cual arista del tour ocurri y agregue el nmero de esta arista al cdigo marcndolo como un punto de articulacin.

Nodo que no es raz Construir el cdigo para este tipo de nodos difiere solo en dos aspectos respecto a la construccin del cdigo para los nodos tipo S que son races: 1. La manera en la que se escoge la arista de referencia: Cuando el nodo S no es raz la arista de referencia es aquella asociada a la arista de entrada; por ello solo se considera dicha arista. 2. Solamente las aristas virtuales diferentes a la arista de referencia son consideradas en el momento de concatenar el cdigo.

Nodo tipo P El cdigo inicia con P( y termina con )P. Como raz Encuentre el nmero de aristas totales y de aristas virtuales en el esqueleto del nodo tipo P. Agregue al cdigo primero el nmero de aristas totales seguido del nmero de aristas virtuales. Si y son los vrtices del

esqueleto construya el cdigo para todas las aristas virtuales en una direccin. Agregue los cdigos de todas las aristas virtuales dirigidas desde hacia al cdigo del nodo P. Los cdigos agregados deben estar en o es un punto de articulacin agregue una marca al

orden creciente. Si

cdigo indicando si el vrtice de articulacin est en la cabeza o en la cola de la arista dirigida desde hacia . Construya el segundo cdigo del hacia . Compare los dos cdigos.

mismo modo pero en direccin desde El menor cdigo es el cdigo del nodo P

Nodo que no es raz Construya el cdigo del mismo modo que se crea para el nodo tipo P como raz pero solamente en una direccin la cual es determinada por la arista de entrada.

Nodo Tipo R El cdigo inicia con R( y termina con )R. Como raz Para todas las aristas virtuales del esqueleto de un nodo tipo R encuentre los cdigos asociados a ellas. Determine el menor de los cdigos y las aristas con ese cdigo sern las aristas iniciales. Para cada una de las aristas de ese conjunto construya el cdigo de acuerdo al procedimiento de Weinberg. Cuando una arista virtual es hallada concatene su cdigo. Para

cada arista deben considerarse los casos de ir a la derecha e ir a la izquierda. Finalmente, escoja el menor cdigo para representar el nodo raz tipo R. Si durante el tour se halla algn punto de articulacin, marque este punto en el cdigo.

Nodo que no es raz Solamente dos casos han de ser considerados (ir a la derecha e ir a la izquierda) porque la arista inicial es determinada por la arista de entrada al nodo. Solamente son consideradas en el momento de concatenar los cdigos de las aristas virtuales aquellas diferentes a la arista de entrada.

6.4.2. Rutina para la generacin de un cdigo nico para el rbol de componentes biconexas de un grafo plano. A diferencia del procedimiento recientemente descrito que asigna un cdigo nico para los grafos biconexos partiendo de la raz del rbol, esta rutina construye el cdigo partiendo de las hojas del rbol e iteracin tras iteracin avanza hacia el centro de la estructura de datos. Una peculiaridad de los rboles de componentes biconexas es que, a diferencia de otras estructuras de datos tipo rbol, su centro siempre ser un nodo ya sea de articulacin o biconexo [21]. Para esta rutina se hace necesario ampliar el conjunto de los smbolos de control con la inclusin de los elementos A(, )A, B( y )B quedando definido el orden lexicogrfico para ellos del siguiente modo: A( < )A < B( < )B < P( < )P < S( < )S < R( < )R Ahora, dado un rbol de componentes biconexas como input, el

algoritmo asigna un cdigo nico al rbol del siguiente modo: 1. Construya el cdigo para las hojas del rbol.

1.1. Si la hoja es un nodo biconexo Construya el cdigo

. . El

del grafo biconexo que le corresponde al nodo ser .

cdigo para la componente biconexa

1.2. Si la hoja del rbol es un nodo de articulacin articulacin ser donde

, el cdigo del nodo de es la sarta formada por la adyacentes a

concatenacin de los cdigos de las componentes

ordenados de manera creciente de acuerdo al orden lexicogrfico. 2. Si solo queda un nodo en el rbol, el ltimo cdigo calculado es el cdigo del rbol y por ende el cdigo identificador del grafo plano. De lo contrario elimine las hojas del rbol, generando as nuevas hojas y repita el paso 1.

6.5.

ANLISIS DEL TIEMPO DE EJECUCIN DEL ALGORITMO DE KUKLUK, HOLDER Y COOK PARA TESTEAR ISOMORFISMO EN GRAFOS PLANOS

Como pudo notarse, el algoritmo propuesto por Kukluk, Holder y Cook y estudiado en este escrito est compuesto por varias subrutinas con tiempos de ejecucin propios, por ello, para poder determinar el tiempo que requiere el procedimiento de manera global resulta necesario conocer el de cada uno de los subprocesos. Hopcroft y Tarjan presentan en [15] un algoritmo implementable que requiere tiempo para testear la planaridad de un grafo con vrtices y en [16]

exhiben, entre otros, un algoritmo capaz de descomponer un grafo en sus componentes biconexas en tiempo lineal, siempre y cuando el grafo est expresado como una lista de aristas. El trabajo Desarrollado por Gutwenger y Mutzel en [14] muestra que es posible implementar una rutina de tiempo lineal que dado un grafo biconexo como input calcula su rbol SPQR. En [21] es demostrado que la rutina aqu presentada para construir un cdigo nico para un grafo

biconexo requiere de tiempo

Los resultados presentados en [33] implican

que es posible construir un cdigo para evaluar el isomorfismo de grafos planos triconexos en tiempo .

Por las razones descritas recientemente resulta posible asegurar que el algoritmo de Kukluk, Holder y Cook resuelve el problema del isomorfismo de grafos planos en tiempo .

7. CONCLUSIONES

En situaciones reales, solucionar un problema de optimizacin con un algoritmo determinista puede no ser la mejor opcin dado que existen rutinas probabilsticas y/o meta-heursticas capaces de hallar la solucin ptima, o al menos una cuasi ptima, con demandas de cmputo menores.

Restringir las instancias de un problema computacional es una accin vlida ya que, en ambientes reales, el objeto abstrado es quien determina la estructura que tendr el modelo que lo representa.

Existen algoritmos que a pesar de ser considerados tericamente eficientes no son implementables en la prctica ya que su tiempo de ejecucin, aunque polinomial, est determinado por una constante de gran magnitud.

Restringir las instancias posibles de un problema computacional a un conjunto determinado puede facilitar el proceso de resolverlo eficientemente ya que es posible aprovechar la estructura que define a dicho conjunto para disear buenos algoritmos.

Transformar las instancias de un problema complejo en instancias de un problema para el cual es conocida una rutina eficiente que lo soluciona (reducirlo) es una buena estrategia para el diseo de algoritmos ya que permite aprovechar rutinas cuya eficacia es ya conocida.

Aunque a da de hoy no ha sido posible determinar la posicin exacta de GIP dentro de la clase , al ser la computacin terica un rea dinmica en

constante desarrollo, resulta posible asegurar que es muy probable que tan fundamental cuestionamiento sea resuelto en los prximos aos.

8. RECOMENDACIONES

Estudiar otras clases de restricciones de GIP permitira contrastar los resultados exhibidos en este escrito y ampliara el panorama que se posee del problema del isomorfismo de grafos.

Construir una biblioteca de programas enfocada en el desarrollo de rutinas tiles para abordar problemas con grafos, buscando con esto facilitar el desarrollo de futuros proyectos de desarrollo en temticas relacionadas con la teora de grafos.

Estudiar en detalle los algoritmos para solucionar el problema del isomorfismo de grafos propuestos por Hopcroft y Wong en [18] y Miller y Reif propuesto en [24] buscando con esto construir un hit algortmico para resolver el problema del isomorfismo de grafos planos.

BIBLIOGRAFIA

1. AGRAWAL, Manindra; KAYAL, Neeraj y SAXENA, Nitin. PRIMES is in P. Kanpur: Annals of Mathematics, Vol. 160. 2004.

2. ARORA, Sanjeev y BARAK, Boaz. Computational Complexity: A Modern Approach. Cambridge, UK: Cambridge University Press, 2009. ISBN 978-0521-42426-4.

3. ARRINGTON, Chelsea. Primality Testing. 2010.

4. BOVET, Daniel P. y CRESCENZY, Piereluigi. Introduction to the theory of complexity. 2006.

5. COOK, Stephen. The P versus NP Problem. Toronto: Clay Mathematics Institute, 2000.

6. CORMEN, Thomas; LEISERSON, Charles y RIVEST, Ronald. Introduction to algorithms. Cambridge, Massachusetts, USA: The MIT Press, 2001. ISBN 0262032937.

7. DEPUY, Gail; MORAGA, Reinaldo y WHITEHOUSE, Gary. Metaheuristics: A solution methodology for optimization problems.En: BADIRU Adedeji.

Handbook of industrial and systems engineering. [s.l.]: CRC/Taylor & Francis, 2006.

8. DI BATTISTA, Giuseppe y TAMASSIA, Robert. On-Line Maintenance of Triconnected Components with SPQR-Trees. Algorithmica, Vol. 15, pgs. 302318. 1996.

9. DIESTEL, Reinhard. Graph theory. Edicin Electrnica. New York: SpringerVerlag, 2000.

10. GAREY, M. R.; JOHNSON, David y TARJAN, Robert E. The Planar Hamiltonian Circuit Problem is NP-Complete. SIAM Journal of computing, Vol. 5(4), pgs. 704-714. 1976.

11. GAREY, Michael y JOHNSON, David. Computers and Intractability. San Francisco : W. H. Freeman and company, 1979. ISBN: 0716710447.

12. GLOVER, Fred y LAGUNA, Manuel. Tabu search. Dordrecht : Kluwer Academic Publishers, 1997.

13. GOLDREICH, Oded. Computational Complexity: A Conceptual Perspective. Cambridge, UK : Cambridge University Press, 2008. ISBN 9780521884730.

14. GUTWENGER, Carsten y MUTZEL, Petra. A linear time implementation of SPQR-trees. Springer- Verlag, 2001.

15. HOPCROFT, John y TARJAN, Robert. Efficient planarity testing. Journal of the association for computing machinery, Vol. 21(4), pgs. 549-568. 1974.

16. HOPCROFT, John y TARJAN, Robert. Efficient algorithms for graph manipulation. Communications of the ACM, Vol. 16(6). 1973.

17. HOPCROFT, John y TARJAN, Robert. Isomorphism of planar graphs (working paper). 1972.

18. HOPCROFT, John y WONG, J. K. Linear time algorithm for isomorphism of planar graphs (Preliminary report). Proceedings of the sixth annual ACM symposium on Theory of computing, pgs. 172-184. 1974.

19. KARP, Richard. An introduction to randomized algorithms. Discrete applied Mahematics, Vol. 34, 1991.

20. KASTELEYN, P. W. Graph theory and crystal physics. In Frank Harary, editor, Graph Theory and theoretical physics, pgs. 43-110. Academic Press, 1967.

21. KUKLUK, Jacek; HOLDER, Lawrence y COOK, Diane. Algorithm and experiments in testing planar graphs for isomorphism. Journal of Graph algorithms and applications, Vol. 8(3), pgs. 313-356. 2004. 22. MATOUEK, Ji y NEETIL, Jaroslav. Invitacin a la matemtica discreta. Barcelona : Editorial Revert, 2008.

23. MENEZES, Alfred; VAN OORSCHOT, Paul y VANSTONE, Scott. Handbook of applied cryptography. Boca Raton, USA : 1996. ISBN: 0849385237.

24. MILLER, Gary y REIF, Jhon. Parallel tree contraction part 2: further applications. SIAM Journal of computing, 20(6). 1991.

25. MORAIN, Franois. Polytechnique, 2001.

Thirty years of

integer factorization.

Lix,

cole

26. RANGAN, Pandu. Randomized Dictionary Structures. En: MEHTA, Dinesh y SAHNI, Sartaj (eds). Handbook of data structures and applications. [s.l.] : Chapman & Hall/ CRC Press, 2004.

27. SHOR, Peter W. Algorithms for quantum computation: Discrete logarithms and factoring. Proceedings of the 35th Annual Symposium on Foundations of Computer Science. 1994.

28. SKIENA, Steve S. The Algorithm Design Manual. New York : Springer-Verlag, 2008. ISBN: 978-1-84800-069-8.

29. TODA, Seinosuke. PP is as hard as the polynomial-time hierarchy. SIAM Journal on computing, 20 (5): pgs. 865-877. 1991.

30. TORN, Jacobo, WAGNER, Fabin. The complexity of planar graph isomorphism. 2009.

31. TORN, Jacobo. On the hardness of graph isomorphism. Foundations of Computer Science, 2000. Proceedings. 41st Annual Symposium on: pgs. 180186. 2000.

32. VALIANT, L. G. The complexity of computing the permanent., Theoretical Computer Science, 8: pgs. 189-201. 1979.

33. WEINBERG, Louis.

A simple and efficient algorithm for determining

isomorphism of planar triply connected graphs. Circuit theory, 13(2). 1966.

34. WHITNEY, Hassler. A set of topological invariants for graphs. American journal of mathematics Vol. 55: pgs. 231-235, 1933.

Das könnte Ihnen auch gefallen