En informática y teoría de grafos , el término codificación por colores se refiere a una técnica algorítmica útil para descubrir patrones en redes . Por ejemplo, se puede usar para detectar un camino simple de longitud k en un grafo dado . El algoritmo tradicional de codificación por colores es probabilístico , pero se puede desaleatorizar sin aumentar significativamente el tiempo de ejecución.
La codificación por colores también se aplica a la detección de ciclos de una longitud dada, y de manera más general se aplica al problema del isomorfismo de subgrafos (un problema NP-completo ), donde produce algoritmos de tiempo polinomial cuando el patrón de subgrafo que intenta detectar tiene un ancho de árbol acotado .
El método de codificación por colores fue propuesto y analizado en 1994 por Noga Alon , Raphael Yuster y Uri Zwick . [ 1 ] [ 2 ]
Resultados
Mediante el método de codificación por colores se pueden obtener los siguientes resultados:
- Para cada constante fija k , si un gráfico G = ( V , E ) contiene un ciclo simple de tamaño k , entonces dicho ciclo se puede encontrar en:
- tiempo previsto o
- tiempo en el peor de los casos, donde ω es el exponente de la multiplicación de matrices . [ 3 ]
- Para cada constante fija k y cada grafo G = ( V , E ) que pertenece a cualquier familia de grafos cerrados menores no triviales (por ejemplo, un grafo planar ), si G contiene un ciclo simple de tamaño k , entonces dicho ciclo se puede encontrar en:
- O ( V ) tiempo esperado, o
- O ( V log V ) tiempo en el peor de los casos.
- Si un grafo G = ( V , E ) contiene un subgrafo isomorfo a un grafo de ancho de árbol acotado que tiene O (log V ) vértices, entonces dicho subgrafo se puede encontrar en tiempo polinomial .
El método
Para resolver el problema de encontrar un subgrafoen un grafo dado G = ( V , E ) , donde H puede ser un camino, un ciclo o cualquier grafo de ancho de árbol acotado donde, el método de codificación por colores comienza coloreando aleatoriamente cada vértice de G conSe asignan colores a H y luego se intenta encontrar una copia colorida de H en G coloreado . Un grafo es colorido si cada uno de sus vértices tiene un color distinto. Este método funciona repitiendo (1) la coloración aleatoria de un grafo y (2) la búsqueda de una copia colorida del subgrafo objetivo. Si el proceso se repite suficientes veces, se puede encontrar el subgrafo objetivo.
Supongamos que una copia de H en G se vuelve colorida con alguna probabilidad no nula p . Inmediatamente se deduce que si la coloración aleatoria se repite 1 / p veces , entonces se espera que esta copia se vuelva colorida una vez. Nótese que aunque p es pequeño, se demuestra que si, p es solo polinómicamente pequeño. Supongamos de nuevo que existe un algoritmo tal que, dado un grafo G y una coloración que asigna a cada vértice de G uno de los k colores, encuentra una copia de H coloreada , si existe, en algún tiempo de ejecución O ( r ) . Entonces, el tiempo esperado para encontrar una copia de H en G , si existe, es.
En ocasiones, también es conveniente utilizar una versión más restringida del concepto de coloración. Por ejemplo, en el contexto de la búsqueda de ciclos en grafos planares , es posible desarrollar un algoritmo que encuentre ciclos bien coloreados. En este caso, un ciclo está bien coloreado si sus vértices están coloreados con colores consecutivos.
Ejemplo
Un ejemplo sería encontrar un ciclo simple de longitud k en el grafo G = ( V , E ) .
Al aplicar el método de coloración aleatoria, cada ciclo simple tiene una probabilidad depara volverse colorido, ya que hayformas de colorear los k vértices del ciclo, entre las cuales hayocurrencias coloridas. Luego, se puede utilizar un algoritmo (que se describe a continuación) para encontrar ciclos coloridos en el grafo G coloreado aleatoriamente en el tiempo, dóndees la constante de multiplicación de matrices. Por lo tanto, se necesitatiempo total para encontrar un ciclo simple de longitud k en G.
El algoritmo de búsqueda de ciclos coloridos funciona encontrando primero todos los pares de vértices en V que están conectados por un camino simple de longitud k − 1 , y luego verificando si los dos vértices en cada par están conectados. Dada una función de coloración c : V → {1, ..., k } para colorear el grafo G , enumerar todas las particiones del conjunto de colores {1, ..., k } en dos subconjuntos C 1 , C 2 de tamañocada uno. Nótese que V se puede dividir en V 1 y V 2 respectivamente, y sean G 1 y G 2 los subgrafos inducidos por V 1 y V 2 respectivamente. Luego, encuentre recursivamente caminos coloridos de longituden cada uno de G 1 y G 2 . Supongamos que las matrices booleanas A 1 y A 2 representan la conectividad de cada par de vértices en G 1 y G 2 por un camino de color, respectivamente, y sea B la matriz que describe las relaciones de adyacencia entre los vértices de V 1 y los de V 2 , el producto booleanoda todos los pares de vértices en V que están conectados por un camino colorido de longitud k − 1 . Por lo tanto, la relación recursiva de multiplicaciones de matrices es, lo que produce un tiempo de ejecución de. Aunque este algoritmo encuentra solo los puntos finales del camino colorido, se puede incorporar otro algoritmo de Alon y Naor [ 4 ] que encuentra los caminos coloridos en sí mismos.
Desaleatorización
La desaleatorización de la codificación por colores implica enumerar las posibles coloraciones de un grafo G , de modo que la aleatoriedad de la coloración de G ya no sea necesaria. Para que el subgrafo objetivo H en G sea detectable, la enumeración debe incluir al menos una instancia donde H sea colorido. Para lograr esto, enumerar una familia k -perfecta F de funciones hash de {1, ..., | V |} a {1, ..., k } es suficiente. Por definición, F es k -perfecta si para cada subconjunto S de {1, ..., | V |} dondeExiste una función hash h en F tal que h : S → {1, ..., k } es perfecta . En otras palabras, debe existir una función hash en F que coloree cualquier conjunto de k vértices con k colores distintos.
Existen varios enfoques para construir una familia de funciones hash k -perfecta de este tipo:
- La mejor construcción explícita es la de Moni Naor , Leonard J. Schulman y Aravind Srinivasan , [ 5 ] donde una familia de tamañose puede obtener. Esta construcción no requiere que el subgrafo objetivo exista en el problema original de búsqueda de subgrafos.
- Otra construcción explícita de Jeanette P. Schmidt y Alan Siegel [ 6 ] produce una familia de tamaño.
- Otra construcción que aparece en el artículo original de Noga Alon et al. [ 2 ] se puede obtener construyendo primero una familia k -perfecta que mapea {1, ..., | V |} a {1, ..., k 2 }, seguida de la construcción de otra familia k -perfecta que mapea {1, ..., k 2 } a {1, ..., k }. En el primer paso, es posible construir dicha familia con 2 n log k bits aleatorios que son casi 2log k -independientes, [ 7 ] [ 8 ] y el espacio muestral necesario para generar esos bits aleatorios puede ser tan pequeño como. En el segundo paso, Jeanette P. Schmidt y Alan Siegel [ 6 ] demostraron que el tamaño de dicha familia k -perfecta puede ser. En consecuencia, al componer las familias k -perfectas de ambos pasos, se obtiene una familia k -perfecta de tamañoque mapea de {1, ..., | V |} a {1, ..., k } se puede obtener.
En el caso de la coloración de pozos de desaleatorización, donde cada vértice del subgrafo se colorea consecutivamente, se necesita una familia k -perfecta de funciones hash de {1, ..., | V |} a {1, ..., k !} . Una familia k -perfecta suficiente que mapee de {1, ..., | V |} a {1, ..., k k } se puede construir de una manera similar al enfoque 3 anterior (el primer paso). En particular, se hace usando nk log k bits aleatorios que son casi k log k independientes, y el tamaño de la familia k -perfecta resultante será.
La eliminación de la aleatorización en el método de codificación por colores se puede paralelizar fácilmente, lo que da como resultado algoritmos NC eficientes.
Aplicaciones
Recientemente, la codificación por colores ha captado gran atención en el campo de la bioinformática . Un ejemplo es la detección de vías de señalización en redes de interacción proteína-proteína (PPI). Otro ejemplo es el descubrimiento y recuento de motivos en dichas redes. El estudio tanto de las vías de señalización como de los motivos permite una comprensión más profunda de las similitudes y diferencias entre numerosas funciones, procesos y estructuras biológicas en los organismos.
Debido a la enorme cantidad de datos genéticos que se pueden recopilar, la búsqueda de vías o motivos puede ser muy laboriosa. Sin embargo, al explotar el método de codificación por colores, los motivos o vías de señalización conLos vértices de una red G con n vértices se pueden encontrar de forma muy eficiente en tiempo polinomial. Esto nos permite explorar estructuras más complejas o de mayor tamaño en redes de interacción proteína-proteína.
Lecturas adicionales
- Alon, N.; Dao, P.; Hajirasouliha, I.; Hormozdiari, F.; Sahinalp, SC (2008). "Recuento y descubrimiento de motivos de redes biomoleculares mediante codificación por colores" . Bioinformatics . 24 ( 13): i241– i249. doi : 10.1093/bioinformatics/btn163 . PMC 2718641. PMID 18586721 .
- Hüffner, F.; Wernicke, S.; Zichner, T. (2008). "Ingeniería de algoritmos para codificación por colores con aplicaciones a la detección de vías de señalización". Algorithmica . 52 (2): 114– 132. CiteSeerX 10.1.1.68.9469 . doi : 10.1007/s00453-007-9008-7 . S2CID 81069 .
Referencias
- ↑ Alon, N., Yuster, R., y Zwick, U. 1994. Codificación por colores: un nuevo método para encontrar caminos simples, ciclos y otros subgrafos pequeños dentro de grafos grandes. En Actas del Vigésimo Sexto Simposio Anual de la ACM sobre Teoría de la Computación (Montreal, Quebec, Canadá, 23-25 de mayo de 1994). STOC '94. ACM, Nueva York, NY, 326-335. DOI= http://doi.acm.org/10.1145/195058.195179
- 1 2 Alon, N., Yuster, R., y Zwick, U. 1995. Codificación por colores. J. ACM 42, 4 (julio de 1995), 844–856. DOI= http://doi.acm.org/10.1145/210332.210337
- ↑ Algoritmo de Coppersmith-Winograd
- ↑ Alon, N. y Naor, M. 1994. Desrandomización, testigos para la multiplicación de matrices booleanas y construcción de funciones hash perfectas. Informe técnico. Número de pedido UMI: CS94-11. Weizmann Science Press de Israel.
- ↑ Naor, M., Schulman, LJ y Srinivasan, A. 1995. Divisores y desaleatorización casi óptima. En Actas del 36.º Simposio Anual sobre Fundamentos de la Informática (23-25 de octubre de 1995). FOCS. IEEE Computer Society, Washington, DC, 182.
- 1 2 Schmidt, JP; Siegel, A. (1990). "La complejidad espacial de las funciones hash de sonda k ciegas". SIAM J. Comput . 19 (5): 775– 786. doi : 10.1137/0219054 .
- ↑ Naor, J. y Naor, M. 1990. Espacios de probabilidad con sesgo pequeño: construcciones eficientes y aplicaciones. En Actas del Vigésimo Segundo Simposio Anual de la ACM sobre Teoría de la Computación (Baltimore, Maryland, Estados Unidos, 13-17 de mayo de 1990). H. Ortiz, Ed. STOC '90. ACM, Nueva York, NY, 213-223. DOI= http://doi.acm.org/10.1145/100216.100244
- ↑ Alon, N., Goldreich, O., Hastad, J., y Peralta, R. 1990. Construcción simple de variables aleatorias casi k-independientes. En Actas del 31.er Simposio Anual sobre Fundamentos de la Informática (22-24 de octubre de 1990). SFCS. IEEE Computer Society, Washington, DC, 544-553 vol.2. doi : 10.1109/FSCS.1990.89575
- Algoritmos de grafos