En http://www.dharwadker.org/tevet/isomorphism/ , hay una presentación de un algoritmo para determinar si dos gráficos son isomorfos. Teniendo en cuenta una serie de afirmaciones "interesantes" de A Dharwadker, no estoy dispuesto a creerlo.
En mi investigación, encuentro que el algoritmo definitivamente producirá la respuesta correcta y le diré que dos gráficos no son isomórficos cuando en realidad es correcto. Sin embargo, no está claro que el algoritmo le diga constantemente si dos gráficos son isomórficos cuando en realidad lo son. La "prueba" de su resultado deja algo que desear.
Sin embargo, no conozco un contraejemplo. Antes de comenzar a escribir software para probar el algoritmo, pensé que vería si alguien ya conocía un contraejemplo.
Alguien solicitó una sinopsis del algoritmo. Haré lo que pueda aquí, pero para entenderlo realmente, debe visitar http://www.dharwadker.org/tevet/isomorphism/ .
El algoritmo tiene dos fases: una fase de "firma" y una fase de clasificación. La primera fase de "firma" (este es mi término para su proceso; lo llaman generar la "matriz de signos") clasifica efectivamente los vértices en diferentes clases de equivalencia. La segunda fase primero ordena los vértices de acuerdo con su clase de equivalencia, y luego aplica un procedimiento de clasificación dentro de las clases de equivalencia para establecer un isomorfismo entre los dos gráficos. Curiosamente, no pretenden establecer una forma canónica para los gráficos; en cambio, un gráfico se usa como una especie de plantilla para el segundo.
La fase de firma es realmente bastante interesante, y no le haría justicia aquí al intentar parafrasearla. Si desea más detalles, le recomiendo seguir el enlace para examinar su fase de firma. La "matriz de signos" generada ciertamente retiene toda la información sobre el gráfico original y luego establece un poco más de información. Después de recopilar las firmas, ignoran la matriz original, ya que las firmas contienen toda la información sobre la matriz original. Baste decir que la firma realiza alguna operación que se aplica a cada borde relacionado con el vértice y luego recolecta el conjunto múltiple de elementos para un vértice para establecer una clase de equivalencia para el vértice.
La segunda fase, la fase de clasificación, es la parte que es dudosa. En particular, esperaría que si su proceso funcionara, entonces el algoritmo desarrollado por Anna Lubiw para proporcionar un "Orden de matrices doblemente léxico" (Ver: http://dl.acm.org/citation.cfm?id=22189 ) También funcionaría para definir una forma canónica para un gráfico.
Para ser justos, no entiendo completamente su proceso de clasificación, aunque creo que hacen un trabajo razonable al describirlo. (Simplemente no he trabajado con todos los detalles). En otras palabras, me puede faltar algo. Sin embargo, no está claro cómo este proceso puede hacer mucho más que encontrar accidentalmente un isomorfismo. Claro, probablemente lo encontrarán con alta probabilidad, pero no con garantía. Si las dos gráficas no son isomorfas, el proceso de clasificación nunca lo encontrará y el proceso rechaza correctamente las gráficas.