To prove subgraph isomorphism is NP-complete, it must be formulated as a
decision problem. The input to the decision problem is a pair of graphs G and
H. The answer to the problem is positive if
H is isomorphic to a subgraph of
G, and negative otherwise. Formal question: Let G=(V,E), H=(V^\prime,E^\prime) be graphs. Is there a subgraph G_0=(V_0,E_0) \mid V_0\subseteq V, E_0\subseteq E\cap(V_0\times V_0) such that G_0\cong H? I. e., does there exist a
bijection f\colon V_0\rightarrow V^\prime such that \{\,v_1,v_2\,\} \in E_0 \iff \{\,f(v_1), f(v_2)\,\} \in E^\prime? The proof of subgraph isomorphism being NP-complete is simple and based on reduction of the
clique problem, an NP-complete decision problem in which the input is a single graph
G and a number
k, and the question is whether
G contains a
complete subgraph with
k vertices. To translate this to a subgraph isomorphism problem, simply let
H be the complete graph
Kk; then the answer to the subgraph isomorphism problem for
G and
H is equal to the answer to the clique problem for
G and
k. Since the clique problem is NP-complete, this
polynomial-time many-one reduction shows that subgraph isomorphism is also NP-complete. An alternative reduction from the
Hamiltonian cycle problem translates a graph
G which is to be tested for Hamiltonicity into the pair of graphs
G and
H, where
H is a cycle having the same number of vertices as
G. Because the Hamiltonian cycle problem is NP-complete even for
planar graphs, this shows that subgraph isomorphism remains NP-complete even in the planar case. Subgraph isomorphism is a generalization of the
graph isomorphism problem, which asks whether
G is isomorphic to
H: the answer to the graph isomorphism problem is true if and only if
G and
H both have the same numbers of vertices and edges and the subgraph isomorphism problem for
G and
H is true. However the complexity-theoretic status of graph isomorphism remains an open question. In the context of the
Aanderaa–Karp–Rosenberg conjecture on the
query complexity of monotone graph properties, showed that any subgraph isomorphism problem has query complexity Ω(
n3/2); that is, solving the subgraph isomorphism requires an algorithm to check the presence or absence in the input of Ω(
n3/2) different edges in the graph. ==Algorithms==