Efficient algorithms for graph isomorphism testing

: El problema del isomorfismo de grafos ha sido estudiado por los cientificos durante mucho tiempo, desde distintos puntos de vista. Es interesante desde el punto de vista teorico, puesto que no se sabe si es NP-copleto o no. Dado que hay multitud de problemas que pueden reducirse al isomorfismo de grafos, establecer completamente su complejidad, permitiria extrapolar el resultado a todos los problemas que pueden reducirse a el. Ademas, tiene mucho interes practico por las aplicaciones que tiene en campos tan diversos como quimica, vision artificial o mineria de datos. Los algoritmos practicos para el isomorfismo de grafos suelen, o bien tratar de encontrar el isomorfismo mediante un algoritmo clasico de vuelta atras ayudado por una poda heuristica, enfoque que tiene problemas cuando los grafos tienen muchas simetrias (automorfismos), o bien calculado un etiquetado canonico de los vertices, para lo que es necesario calcualr el grupo de automorfismo completo de los grafos, lo que puede resultar mucho mas duro que encontrar el isomorfismo entre ellos. El objetivo de la tesis es disenar y programar un algoritmo para determinar el isomorfismo de grafos, que sea rapido en la practica, que tenga un comportamiento uniforme, y que no necesite para ello calcular completamente el grupo de automorfismo de los grafos. Para evaluar el rendimiento practico de nuestro algoritmo, lo hemos codificado en C y lo hemos comparado con otros dos algoritmos. De una parte vf2, como ejemplo de algoritmo heuristico, que para ciertas familias de grafos tiene un comportamiento muy bueno, y nauty, que el el prpograma de isomorfismo de grafos por excelencia, que usa el otro enfoque y es hoy por hoy el referente mundial, aunque es conocido que tiene un comportamiento exponencial para ciertas familias de grafos. Hoy en dia hay algunas baterias de pruebas que incluyen diversas familias de grafos, pero que no cubren todos tipos de grafos que queriamos tratar. Por ello, hemos generado una bateria de pruebas con nuevas familias de grafos, tanto para probar casos positivos como negativos de isomorfismo. Nuestro algoritmo trabaja en tres fases. En la primera realiza un analisis de los grafos y genera una estructura de datos (secuencia de particiones) para cada uno de ellos. A continuacion busca automorfismos en los grafos a partir de esta secuencia de particiones, y por ultimo, se toma la secuencia de particiones de uno de los grafos como patron, y se trata de generar una secuencia de particiones equivalente para el otro grafo. Los grafos son isomorfos si y solo si es posible reproducir esta estructura de datos para el otro grafo. Este enfoque es novedoso y, en las pruebas que hemos realizado con nuestra bateria de grafos, hemos comprobado que tiene un comportamiento uniforme con todas las familias de grafos consideradas, y que en algunos casos tiene un rendimiento similar a los otros algoritmos, mientras que en otros los desborda completamente. Los casos mas significativos son aquellos en los que nauty y vf2 tienen un comportamiento exponencial, mientras que nuestro algoritmo conauto tiene un comportamiento polinomico. Este ocurre con una familia de grafos contruida por Takunary Miyazaki a partir de una contruccion de Martin Furer, y con grafos union (por ejemplo, grafos generados mediante la union disjunta de componentes sencillas). Hemos demostrado la correccion de nuestro algoritmo y hemos analizado su complejidad espacial y temporal. Probamos que tiene una complejidad espacial de 0(n2) palabras para grafos de n vertices. En el caso mejor, tiene una complejidad temporal 0(n2), y con alta probabilidad es polinomico.

[1]  Marco Gori,et al.  The RW2 Algorithm for Exact Graph Matching , 2005, ICAPR.

[2]  Robert L. Grossman,et al.  Assigning Unique Keys to Chemical Compounds for Data Integration: Some Interesting Counter Examples , 2005, DILS.

[3]  Marco Gori,et al.  Graph matching using random walks , 2004, Proceedings of the 17th International Conference on Pattern Recognition, 2004. ICPR 2004..

[4]  Adalbert Kerber,et al.  MOLGEN-CID - A Canonizer for Molecules and Graphs Accessible through the Internet , 2004, J. Chem. Inf. Model..

[5]  Felix Lazebnik,et al.  Orthomorphisms and the construction of projective planes , 2003, Math. Comput..

[6]  Takashi Washio,et al.  State of the art of graph-based data mining , 2003, SKDD.

[7]  Mario Vento,et al.  A large database of graphs and its use for benchmarking graph isomorphism algorithms , 2003, Pattern Recognit. Lett..

[8]  Vikraman Arvind,et al.  Graph isomorphism is in SPP , 2002, The 43rd Annual IEEE Symposium on Foundations of Computer Science, 2002. Proceedings..

[9]  Mikhail E. Muzychuk,et al.  Recognizing Circulant Graphs in Polynomial Time: An Application of Association Schemes , 2001, Electron. J. Comb..

[10]  M. Barclay Projective planes of small order , 2000 .

[11]  Horst Bunke,et al.  A decision tree approach to graph and subgraph isomorphism detection , 1999, Pattern Recognit..

[12]  P. Foggia,et al.  Performance evaluation of the VF graph matching algorithm , 1999, Proceedings 10th International Conference on Image Analysis and Processing.

[13]  Wen-Guey Tzeng,et al.  A New Graph Invariant for Graph Isomorphism: Probability Propagation Matrix , 1999, J. Inf. Sci. Eng..

[14]  Donald L. Kreher,et al.  Combinatorial algorithms: generation, enumeration, and search , 1998, SIGA.

[15]  M. Misra,et al.  A graph isomorphism algorithm for object recognition , 1998, Pattern Analysis and Applications.

[16]  Jean-Loup Faulon,et al.  Isomorphism, Automorphism Partitioning, and Canonical Labeling Can Be Solved in Polynomial-Time for Molecular Graphs , 1998, J. Chem. Inf. Comput. Sci..

[17]  Daniel A. Spielman,et al.  Faster isomorphism testing of strongly regular graphs , 1996, STOC '96.

[18]  Martin Fürer,et al.  Graph isomorphism testing without numerics for graphs of bounded eigenvalue multiplicity , 1995, SODA '95.

[19]  Carl Ebeling,et al.  SubGemini: Identifying SubCircuits using a Fast Subgraph Isomorphism Algorithm , 1993, 30th ACM/IEEE Design Automation Conference.

[20]  N. Immerman,et al.  An optimal lower bound on the number of variables for graph identification , 1992, Comb..

[21]  Jacobo Torán,et al.  Graph isomorphism is low for PP , 1992, computational complexity.

[22]  Georg Pelz,et al.  Circuit comparison by hierarchical pattern matching , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[23]  Magdy S. Abadir,et al.  An improved layout verification algorithm (LAVA) , 1990, Proceedings of the European Design Automation Conference, 1990., EDAC..

[24]  David Weininger,et al.  SMILES. 2. Algorithm for generation of unique SMILES notation , 1989, J. Chem. Inf. Comput. Sci..

[25]  H. B. Mittal,et al.  A Fast Backtrack Algorithm for Graph Isomorphism , 1988, Inf. Process. Lett..

[26]  Stathis Zachos,et al.  Does co-NP Have Short Interactive Proofs? , 1987, Inf. Process. Lett..

[27]  Uwe Schöning,et al.  Graph Isomorphism is in the Low Hierarchy , 1987, J. Comput. Syst. Sci..

[28]  László Babai,et al.  Canonical labeling of graphs , 1983, STOC.

[29]  B. McKay,et al.  Constructing cospectral graphs , 1982 .

[30]  David M. Mount,et al.  Isomorphism of graphs with bounded eigenvalue multiplicity , 1982, STOC '82.

[31]  Eugene M. Luks,et al.  Isomorphism of graphs of bounded valence can be tested in polynomial time , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[32]  Paul Erdös,et al.  Random Graph Isomorphism , 1980, SIAM J. Comput..

[33]  David G. Kirkpatrick,et al.  A Theoretical Analysis of Various Heuristics for the Graph Isomorphism Problem , 1980, SIAM J. Comput..

[34]  I. S. Filotti,et al.  A polynomial-time algorithm for determining the isomorphism of graphs of fixed genus , 1980, STOC '80.

[35]  J. J. McGregor Relational consistency algorithms and their application in finding subgraph and graph isomorphisms , 1979, Inf. Sci..

[36]  László Babai,et al.  Canonical labelling of graphs in linear average time , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[37]  Rudolf Mathon,et al.  A Note on the Graph Isomorphism counting Problem , 1979, Inf. Process. Lett..

[38]  Gary L. Miller,et al.  On the nlog n isomorphism technique (A Preliminary Report) , 1978, STOC.

[39]  Derek G. Corneil,et al.  The graph isomorphism disease , 1977, J. Graph Theory.

[40]  Douglas C. Schmidt,et al.  A Fast Backtracking Algorithm to Test Directed Graphs for Isomorphism Using Distance Matrices , 1976, J. ACM.

[41]  Julian R. Ullmann,et al.  An Algorithm for Subgraph Isomorphism , 1976, J. ACM.

[42]  Giorgio Levi,et al.  Graph isomorphism: A heuristic edge-partitioning-oriented algorithm , 1974, Computing.

[43]  John E. Hopcroft,et al.  Linear time algorithm for isomorphism of planar graphs (Preliminary Report) , 1974, STOC '74.

[44]  Alfs T. Berztiss,et al.  A Backtrack Procedure for Isomorphism of Directed Graphs , 1973, JACM.

[45]  Gopal Pandurangan,et al.  Improved Random Graph Isomorphism Tomek Czajka , 2006 .

[46]  M. Vento,et al.  GRAPH MATCHING APPLICATIONS IN PATTERN RECOGNITION AND IMAGE PROCESSING , 2003 .

[47]  Strongly regular graphs , 2003 .

[48]  Mario Vento,et al.  A Performance Comparison of Five Algorithms for Graph Isomorphism , 2001 .

[49]  Mario Vento,et al.  An Improved Algorithm for Matching Large Graphs , 2001 .

[50]  R. Rivest,et al.  Introduction to Algorithms, Second Edition , 2001 .

[51]  M. Klin,et al.  Algebraic Combinatorics in Mathematical Chemistry. Methods and Algorithms. III. Graph Invariants and , 1999 .

[52]  Mario Vento,et al.  Subgraph Transformations for the Inexact Matching of Attributed Relational Graphs , 1997, GbRPR.

[53]  William L. Kocay,et al.  On Writing Isomorphism Programs , 1996 .

[54]  Takunari Miyazaki,et al.  The complexity of McKay's canonical labeling algorithm , 1995, Groups and Computation.

[55]  B. McKay nauty User ’ s Guide ( Version 2 . 4 ) , 1990 .

[56]  B. Weisfeiler On construction and identification of graphs , 1976 .

[57]  Richard M. Karp,et al.  Reducibility Among Combinatorial Problems , 1972, 50 Years of Integer Programming.

[58]  D. Corneil,et al.  An Efficient Algorithm for Graph Isomorphism , 1970, JACM.

[59]  Stephen H. Unger,et al.  GIT—a heuristic program for testing pairs of directed line graphs for isomorphism , 1964, CACM.