How to tell whether two graphs are isomorphic? Suppose that we are given two graphs on a relatively small number of vertices. Here's an example:

Are these two graphs isomorphic? (That is: is there a bijection $f$ from $\{A,B,\dots,I\}$, the vertex set of the first graph, to $\{1,2,\dots,9\}$, the vertex set of the second graph, such that $vw$ is an edge of the first graph if and only if $f(v)f(w)$ is an edge of the second graph?)


*

*If not, how can we tell?

*If so, how can we tell—and how can we find an isomorphism?



This question comes up a lot, usually asking about specific examples of two graphs which may or may not be isomorphic. Sometimes, the fiendish teacher of graph theory will even give three or more graphs and ask "Which of these are isomorphic?"
I'm asking this question so that we can provide a single canonical answer to questions of this type which would be worth linking to when specific instances of this question come up. So all improvements and/or suggestions are welcome!

One method which is useful for graphs with small number of vertices is to try to visualize a continuous deformation of one graph which changes it into another graph.  For example, for the given graphs, if in the second graph, vertex $3$ is "pulled" sufficiently up to the other side of the edge $\{1, 2\}$ and the vertex $9$ is also pulled up on the other side of the edge $\{7, 8\}$, then the resulting graph is the same as the first graph. A bijection between the two vertex sets is then easily formed.
