2

Assume that the given two multi-graphs are isomorphic.
How can one find a bijection between them?

I know it is hard to find isomorphism graph, since it is a NP problem.
But what about if they are already isomorphic graphs?

Many resources from the internet to solve the isomorphism problem recommend finding shortest path first and canonical form later. After my implementation for testing, it seems unnecessary and inefficient to prove the graphs are isomorphic. But I cannot find any other solutions to detach bijection and isomorphism without these function.

Note:

  1. reference: http://www.dharwadker.org/tevet/isomorphism/
  2. multi-graph allows self-loop and multi-edge.
proX
  • 73
  • 7

1 Answers1

0

Assuming that there is already an isomorphism between two graphs probably does not help you find the bijection any faster.

Proof by contradiction: Suppose you could. Then, given any two graphs, assume they are isomorphic (even if they aren't) and run your algorithm to find a bijection. Then check that you actually got a well-formed bijection (which is linear time). If you did, then the graphs are isomorphic; if not, then they aren't. Thus you have solved the graph isomorphism problem, which is NP.

This is not a 100% correct proof, since it's possible that the algorithm depends in some subtle way on the two graphs being isomorphic that will make it, say, infinite loop if they are not isomorphic. So I'm not going to say it's impossible, but I do find the argument pretty convincing. In general, assuming that a solution exists doesn't usually help you find it.

luqui
  • 59,485
  • 12
  • 145
  • 204
  • So it is the only way to find bijection by checking whether they are isomorphism? – proX Jan 03 '16 at 08:42
  • The way such an algorithm works might depend on the assumption of those two graphs being isomorphic. so result of applying the algorithm on non-isomorphic graphs might be undefined. – mrk Jan 15 '16 at 22:58