stringtranslate.com

Canonización de gráficos

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 grafo etiquetado Canon( G ) que es isomorfo a G , de modo que cada grafo 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 grafo es un ejemplo de un invariante de grafo completo : cada dos grafos isomorfos tienen la misma forma canónica, y cada dos grafos no isomorfos tienen diferentes formas canónicas. [1] [2] Por el contrario, cada invariante completo de grafos puede usarse para construir una forma canónica. [3] El conjunto de vértices de un grafo de n vértices puede identificarse con los números enteros de 1 a n , y usando tal identificación una forma canónica de un grafo también puede describirse como una permutación de sus vértices. Las formas canónicas de un grafo también se denominan etiquetados canónicos , [4] y la canonización de grafos también se conoce a veces como canonización de grafos .

Complejidad computacional

Problema sin resolver en informática :
¿El tiempo polinomial de canonización de grafos es equivalente al problema de isomorfismo de grafos?

El problema del isomorfismo de grafos es el problema computacional de determinar si dos grafos finitos son isomorfos . Claramente, el problema de canonización de grafos es al menos tan difícil computacionalmente como el problema del isomorfismo de grafos . De hecho, el isomorfismo de grafos es incluso AC 0 - reducible a la canonización de grafos. Sin embargo, sigue siendo una pregunta abierta si los dos problemas son equivalentes en tiempo polinomial . [2]

En 2019, László Babai anunció un algoritmo de tiempo cuasi-polinomial para la canonización de grafos, es decir, uno con tiempo de ejecución para algún fijo . [5] 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 grafo elegido uniformemente al azar del conjunto de todos los grafos de n vértices después de solo dos pasos de refinamiento. Pequeñas modificaciones y un paso de búsqueda en profundidad agregado producen un etiquetado canónico de dichos grafos aleatorios elegidos uniformemente en un tiempo esperado lineal. Este resultado arroja algo de luz sobre el hecho de por qué muchos algoritmos de isomorfismo de grafos informados se comportan bien en la práctica. [6] [7] Este fue un avance importante en la teoría de la complejidad probabilística que llegó a ser ampliamente conocido 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 conocida comúnmente es el grafo lexicográficamente más pequeño dentro de la clase de isomorfismo , que es el grafo 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 grafo lexicográficamente más pequeño es NP-hard . [8]

Para los árboles, Read (1972) presenta un algoritmo de canonización polinomial conciso que requiere un espacio O(n). [9] Comience etiquetando cada vértice con la cadena 01. De manera iterativa, para cada x que no sea una 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, agregue nuevamente un 0 inicial y un 1 final, haga que esta sea 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 grafos es la esencia de muchos algoritmos de isomorfismo de grafos. Una de las herramientas más importantes es Nauty. [10]

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

Varios identificadores de sustancias químicas , como SMILES e InChI, utilizan pasos de canonización en su cálculo, que es esencialmente la canonización del gráfico que representa la molécula. [12] [13] [14] 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 dos á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-12 de junio de 2008, Actas , Lecture Notes in Comput. Sci., vol. 5010, Springer, Berlín, págs. 40-51, doi :10.1007/978-3-540-79709-8_8, ISBN 978-3-540-79708-1, Sr.  2475148.
  2. ^ ab Arvind, V.; Das, Bireswar; Köbler, Johannes (2007), "La complejidad espacial del isomorfismo de k -árboles", Algorithms and Computation: 18th International Symposium, ISAAC 2007, Sendai, Japón, 17-19 de diciembre de 2007, Actas , Lecture Notes in Comput. Sci., vol. 4835, Springer, Berlín, págs. 822–833, doi : 10.1007/978-3-540-77120-3_71 , ISBN 978-3-540-77118-0, Sr.  2472661.
  3. ^ Gurevich, Yuri (1997), "De los invariantes a la canonización" (PDF) , Boletín de la Asociación Europea de Ciencias Informáticas Teóricas (63): 115–119, MR  1621595.
  4. ^ Babai, László ; Luks, Eugene (1983), "Etiquetado canónico de grafos", Proc. 15.º Simposio ACM sobre teoría de la computación , págs. 171–183, doi : 10.1145/800061.808746 , ISBN 0-89791-099-0.
  5. ^ Babai, László (23 de junio de 2019), Forma canónica para gráficos en tiempo cuasipolinomial
  6. ^ Babai, László (1977), Sobre el problema del isomorfismo , manuscrito inédito.
  7. ^ Babai, László ; Kucera, L. (1979), "Etiquetado canónico de gráficos en tiempo promedio lineal", Proc. 20.º Simposio anual IEEE sobre fundamentos de la informática , págs. 39–46, doi :10.1109/SFCS.1979.8, S2CID  14697933.
  8. ^ Babai, László ; Luks, E. (1983), "Etiquetado canónico de grafos", Proc. 15.º Simposio ACM sobre teoría de la computación , págs. 171–183
  9. ^ Read, Ronald C. (1972), "La codificación de varios tipos de árboles no etiquetados", Graph Theory and Computing , Academic Press, Nueva York, págs. 153-182, MR  0344150.
  10. ^ McKay, Brendan D.; Piperno, Adolfo (2014), "Revista de computación simbólica", Isomorfismo gráfico 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.
  11. ^ Cook, 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.
  12. ^ Weininger, David; Weininger, Arthur; Weininger, Joseph L. (mayo de 1989). "SMILES. 2. Algoritmo para la 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.
  13. ^ Kelley, Brian (mayo de 2003). "Canonización de gráficos". Diario del Dr. Dobb .
  14. ^ 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 canonización molecular nuevo y robusto". Revista de información y modelado químico . 55 (10): 2111–2120. doi :10.1021/acs.jcim.5b00543. PMID  26441310.