stringtranslate.com

Canonización de grafos

En teoría de grafos , una rama de las matemáticas, la canonización de grafos es el problema de encontrar una forma canónica de un grafo dado G. Una forma canónica es un gráfico etiquetado Canon( G ) que es isomorfo a G , de modo que cada gráfico que es isomorfo a G tiene la misma forma canónica que G . Por lo tanto, a partir de una solución al problema de canonización de grafos, también se podría resolver el problema del isomorfismo de grafos : para probar si dos grafos G y H son isomorfos, calcular sus formas canónicas Canon( G ) y Canon( H ), y probar si estas dos formas canónicas son idénticas.

La forma canónica de un gráfico es un ejemplo de invariante de gráfico completo : cada dos gráficos isomórficos tienen la misma forma canónica y cada dos gráficos no isomórficos tienen formas canónicas diferentes. [1] [2] Por el contrario, cada invariante completo de gráficos puede usarse para construir una forma canónica. [3] El conjunto de vértices de un gráfico de n -vértices se puede identificar con los números enteros del 1 al n , y utilizando dicha identificación, una forma canónica de un gráfico también se puede describir como una permutación de sus vértices. Las formas canónicas de un gráfico también se denominan etiquetas canónicas , [4] y la canonización de gráficos también se conoce a veces como canonicalización de gráficos .

Complejidad computacional

Problema no resuelto en informática :

¿Es el tiempo polinómico de canonización de gráficos equivalente al problema de isomorfismo de gráficos?

El problema del isomorfismo de grafos es el problema computacional de determinar si dos grafos finitos son isomórficos . Claramente, el problema de canonización de grafos es al menos tan difícil desde el punto de vista computacional como el problema de isomorfismo de grafos . De hecho, el isomorfismo de grafos es incluso AC 0 , reducible a la canonización de grafos. Sin embargo, todavía es una cuestión abierta si los dos problemas son equivalentes en tiempo polinomial . [2]

Si bien la existencia de algoritmos polinomiales (deterministas) para el isomorfismo de grafos sigue siendo un problema abierto en la teoría de la complejidad computacional , en 1977 László Babai informó que con una probabilidad de al menos 1 − exp(−O( n )), un algoritmo simple de clasificación de vértices produce un etiquetado canónico de un gráfico elegido uniformemente al azar del conjunto de todos los gráficos de n -vértices después de solo dos pasos de refinamiento. Pequeñas modificaciones y un paso de búsqueda adicional en profundidad producen un etiquetado canónico de dichos gráficos aleatorios elegidos uniformemente en un tiempo lineal esperado. Este resultado arroja algo de luz sobre por qué muchos algoritmos de isomorfismo gráfico reportados se comportan bien en la práctica. [5] [6] Este fue un avance importante en la teoría de la complejidad probabilística que se hizo ampliamente conocida en su forma manuscrita y que todavía se citaba como un "manuscrito inédito" mucho después de que se informara en un simposio.

Una forma canónica comúnmente conocida es el gráfico lexicográficamente más pequeño dentro de la clase de isomorfismo , que es el gráfico de la clase con la matriz de adyacencia lexicográficamente más pequeña considerada como una cadena lineal. Sin embargo, el cálculo del gráfico lexicográficamente más pequeño es NP-duro . [7]

Para los árboles, Read (1972) presenta un algoritmo conciso de canonización polinómica que requiere un espacio O(n). [8] Comience etiquetando cada vértice con la cadena 01. De forma iterativa, para cada x que no sea hoja, elimine el 0 inicial y el 1 final de la etiqueta de x; luego ordene la etiqueta de x junto con las etiquetas de todas las hojas adyacentes en orden lexicográfico. Concatene estas etiquetas ordenadas, vuelva a agregar un 0 inicial y un 1 final, conviértala en la nueva etiqueta de x y elimine las hojas adyacentes. Si quedan dos vértices, concatene sus etiquetas en orden lexicográfico.

Aplicaciones

La canonización de gráficos es la esencia de muchos algoritmos de isomorfismo de gráficos. Una de las herramientas líderes es Nauty. [9]

Una aplicación común de la canonización de gráficos es la minería de datos gráficos , en particular en aplicaciones de bases de datos químicas . [10]

Varios identificadores de sustancias químicas , como SMILES e InChI, utilizan pasos de canonicalización en su cálculo, que es esencialmente la canonicalización del gráfico que representa la molécula. [11] [12] [13] Estos identificadores están diseñados para proporcionar una forma estándar (y a veces legible por humanos) de codificar información molecular y facilitar la búsqueda de dicha información en bases de datos y en la web.

Referencias

  1. ^ Arvind, Vikraman; Das, Bireswar; Köbler, Johannes (2008), "Un algoritmo de espacio logarítmico para la canonización parcial de 2 árboles", Ciencias de la Computación - Teoría y aplicaciones: Tercer Simposio Internacional de Ciencias de la Computación en Rusia, CSR 2008 Moscú, Rusia, 7 al 12 de junio de 2008, Actas , Conferencia Notas en Computación. Ciencia, vol. 5010, Springer, Berlín, págs. 40–51, doi :10.1007/978-3-540-79709-8_8, SEÑOR  2475148.
  2. ^ ab Arvind, V.; Das, Bireswar; Köbler, Johannes (2007), "La complejidad espacial del isomorfismo del árbol k ", Algoritmos y Computación: 18º Simposio Internacional, ISAAC 2007, Sendai, Japón, 17 al 19 de diciembre de 2007, Actas , Apuntes de conferencias en Computación. Ciencia, vol. 4835, Springer, Berlín, págs. 822–833, doi : 10.1007/978-3-540-77120-3_71 , SEÑOR  2472661.
  3. ^ Gurevich, Yuri (1997), "De las invariantes a la canonización" (PDF) , Boletín de la Asociación Europea de Informática Teórica (63): 115–119, MR  1621595.
  4. ^ Babai, László ; Luks, Eugene (1983), "Etiquetado canónico de gráficos", Proc. 15º Simposio ACM sobre Teoría de la Computación , págs. 171–183, doi : 10.1145/800061.808746.
  5. ^ Babai, László (1977), Sobre el problema del isomorfismo , manuscrito inédito.
  6. ^ Babai, László ; Kucera, L. (1979), "Etiquetado canónico de gráficos en tiempo promedio lineal", Proc. 20.º Simposio anual del IEEE sobre fundamentos de la informática , págs. 39–46, doi :10.1109/SFCS.1979.8, S2CID  14697933.
  7. ^ Babai, László ; Luks, E. (1983), "Etiquetado canónico de gráficos", Proc. 15º Simposio ACM sobre Teoría de la Computación , págs. 171-183
  8. ^ Read, Ronald C. (1972), "La codificación de varios tipos de árboles sin etiquetar", Teoría de grafos y computación , Academic Press, Nueva York, págs. 153-182, MR  0344150.
  9. ^ McKay, Brendan D.; Piperno, Adolfo (2014), "Journal of Symbolic Computation", Isomorfismo de grafos práctico, II, vol. 60, págs. 94–112, arXiv : 1301.1493 , doi : 10.1016/j.jsc.2013.09.003 , ISSN  0747-7171, S2CID  17930927.
  10. ^ Cocinero, Diane J .; Holder, Lawrence B. (2007), "6.2.1. Etiquetado canónico", Mining Graph Data, John Wiley & Sons, págs. 120-122, ISBN 978-0-470-07303-2.
  11. ^ Weininger, David; Weininger, Arturo; Weininger, Joseph L. (mayo de 1989). "SMILES. 2. Algoritmo de generación de notación SMILES única". Revista de información y modelado químico . 29 (2): 97-101. doi :10.1021/ci00062a008. S2CID  6621315.
  12. ^ Kelley, Brian (mayo de 2003). "Canonicalización de gráficos". Diario del Dr. Dobb .
  13. ^ Scheider, Nadine; Sayle, Roger A.; Landrum, Gregory A. (octubre de 2015). "Ordene sus átomos: una implementación de código abierto de un algoritmo de canonicalización molecular novedoso y robusto". Revista de información y modelado químico . 55 (10): 2111-2120. doi : 10.1021/acs.jcim.5b00543. PMID  26441310.