Em http://www.dharwadker.org/tevet/isomorphism/ , há uma apresentação de um algoritmo para determinar se dois gráficos são isomórficos. Dadas várias afirmações "interessantes" de A Dharwadker, não estou inclinado a acreditar.
Na minha investigação, acho que o algoritmo definitivamente produzirá a resposta correta e informará que dois gráficos não são isomórficos quando, na verdade, estão corretos. No entanto, não está claro que o algoritmo diga consistentemente se dois gráficos são isomórficos quando realmente são. A "prova" de seu resultado deixa algo a desejar.
No entanto, não conheço um contra-exemplo. Antes de começar a escrever um software para testar o algoritmo, pensei em ver se alguém já tinha conhecimento de um contra-exemplo.
Alguém solicitou uma sinopse do algoritmo. Farei o que puder aqui, mas para realmente entender, você deve visitar http://www.dharwadker.org/tevet/isomorphism/ .
Existem duas fases no algoritmo: uma fase de "assinatura" e uma fase de classificação. A primeira fase de "assinatura" (este é o meu termo para o processo deles; eles a chamam de gerar a "matriz de sinais") efetivamente classifica vértices em diferentes classes de equivalência. A segunda fase primeiro ordena os vértices de acordo com sua classe de equivalência e, em seguida, aplica um procedimento de classificação nas classes de equivalência para estabelecer um isomorfismo entre os dois gráficos. Curiosamente, eles não afirmam estabelecer uma forma canônica para os gráficos - em vez disso, um gráfico é usado como uma espécie de modelo para o segundo.
The signature phase is actually quite interesting, and I would not do it justice here by attempting to paraphrase it. If you want further details, I recommend following the link to examine his signature phase. The generated "sign matrix" certainly retains all information about the original graph and then establishes a bit more information. After collecting the signatures, they ignore the original matrix since the signatures contain the entire information about the original matrix. Suffice to say that the signature performs some operation that applies to each edge related to the vertex and then they collects the multiset of elements for a vertex to establish an equivalence class for the vertex.
A segunda fase - a fase de classificação - é a parte que é duvidosa. Em particular, eu esperaria que, se o processo deles funcionasse, o algoritmo desenvolvido por Anna Lubiw para fornecer um "Pedido de matriz duplamente lexical de matrizes" (ver: http://dl.acm.org/citation.cfm?id=22189 ) também funcionaria para definir uma forma canônica para um gráfico.
Para ser justo, não entendo completamente o processo de classificação, embora pense que eles fazem um trabalho razoável para descrevê-lo. (Eu apenas não trabalhei com todos os detalhes). Em outras palavras, posso estar faltando alguma coisa. No entanto, não está claro como esse processo pode fazer muito mais do que encontrar acidentalmente um isomorfismo. Claro, eles provavelmente o encontrarão com alta probabilidade, mas não com garantia. Se os dois gráficos não forem isomórficos, o processo de classificação nunca o encontrará e o processo rejeitará corretamente os gráficos.