Algoritmo para determinar se 2 gráficos são isomórficos

Disclaimer: Eu sou um novato na teoria dos grafos e não tenho certeza se isso pertence ao SO, Math SE etc.

Dadas duas matrizes de adjacência A e B, como posso determinar se A e B são isomórficos.

Por exemplo, A e B que não são isomórficos e C e D que são isomórficos.

A = [ 0 1 0 0 1 1     B = [ 0 1 1 0 0 0
      1 0 1 0 0 1           1 0 1 1 0 0
      0 1 0 1 0 0           1 1 0 1 1 0
      0 0 1 0 1 0           0 1 1 0 0 1
      1 0 0 1 0 1           0 0 1 0 0 1
      1 1 0 0 1 0 ]         0 0 0 1 1 0 ]

C = [ 0 1 0 1 0 1     D = [ 0 1 0 1 1 0
      1 0 1 0 0 1           1 0 1 0 1 0
      0 1 0 1 1 0           0 1 0 1 0 1
      1 0 1 0 1 0           1 0 1 0 0 1
      0 0 1 1 0 1           1 1 0 0 0 1
      1 1 0 0 1 0 ]         0 0 1 1 1 0 ]   

(sorry for this ugly notation, I'm not quite sure how to draw matrices on SO)

Aqui está como eu iniciei meu algoritmo (perdoe minha falta de rigor matemático) por favor me ajude a completar / corrigir!

Se o tamanho (número de arestas, neste caso, quantidade de 1s) de A! = Tamanho de B => gráficos não for isomórficoPara cada vértice de A, conte seu grau e procure um vértice correspondente em B que tenha o mesmo graue não foi correspondido anteriormente. Se não houver correspondência => os gráficos não são isomórficos.Agora que não podemos provar rapidamente que A e B não são isomórficos, qual é o próximo passo? Seria correto tentar todas as permutações de linhas em A até A corresponder a B? Realmente não tenho certeza sobre este ...