Connected graph isomorphism problem

Given data
Two graphs $$X_1 = (V_1,E_1)$$ and $$X_2 = (V_2,E_2)$$, with the promise that they are both connected (this promise can be verified in polynomial time by, for instance, the breadth-first search from a vertex).

Goal
We are supposed to determine whether $$X_1$$ is isomorphic (as a graph) to $$X_2$$.

Equivalent decision problems

 * Graph isomorphism problem: The problem of determining whether two graphs are isomorphic. Clearly, the connected graph isomorphism reduces to the graph isomorphism problem. The graph isomorphism problem reduces to the connected graph isomorphism problem as follows. Given two graphs $$X_1$$ and $$X_2$$, check if both are connected. If both are connected, appeal to the connected graph isomorphism problem. If neither is connected, take the complementary graphs to both. Observe that the complement of a graph which is not connected, must be connected. Hence, we can appeal to the connected graph isomorphism problem for the complements of $$X_1$$ and $$X_2$$.

Note that although the connected graph isomorphism problem is equivalent to the general graph isomorphism problem via the straightforward technique of taking complements, in general, imposing the additional condition of connectedness may simplify the problem considerably.

A general reduction from the disconnected to the connected case
The idea used above cannot be used to show that graph isomorphism for graphs with property $$p$$ is the same as graph isomorphism for connected graphs with property $$p$$. However, we can use another idea, called splitting into connected components, provided that every connected component of a graph with property $$p$$ also has property $$p$$.

First, split both graphs into their connected components. Then, for the first graph, pick one connected component. Check, for each connected component of the second graph, whether this one is isomorphic to that. As soon as you find an isomorphic piece, pair them up and remove both from their respective graphs. Repeat the process for the remaining connected components.

This reduction may in general take far longer than the earlier reduction involving complements, because there may be many connected components, and matching them may take a long time.

Relation with graph automorphism-finding
The problem of determining whether two connected graphs are isomorphic reduces to the problem of determining whether the automorphism group of their disjoint union contains any element (automorphism) that sends an element from one graph to the other. Thus, in particular, the connected graph isomorphism problem reduces to the graph automorphism-finding problem.

The graph automorphism-finding problem in turns reduces to the graph isomorphism problem, and hence all three problems (connected graph isomorphism, graph automorphism-finding, and graph isomorphism) are equivalent.