Hamiltonian path

In the mathematical field of graph theory, a Hamiltonian path (or traceable path), is a path in an undirected graph which visits each vertex exactly once. A Hamiltonian cycle (or Hamiltonian circuit) is a cycle in an undirected graph which visits each vertex exactly once and also returns to the starting vertex. Determining whether such paths and cycles exist in graphs is the Hamiltonian path problem which is NP-complete.

Hamiltonian paths and cycles are named after William Rowan Hamilton who invented the Icosian game, now also known as Hamilton's puzzle, which involves finding a Hamiltonian cycle in the edge graph of the dodecahedron. Hamilton solved this problem using the Icosian Calculus, an algebraic structure based on roots of unity with many similarities to the quaternions (also invented by Hamilton). This solution does not generalize to arbitrary graphs.

Definitions
A Hamiltonian path or traceable path is a path that visits each vertex exactly once. A graph that contains a Hamiltonian path is called a traceable graph. A graph is Hamilton-connected if for every pair of vertices there is a Hamiltonian path between the two vertices.

A Hamiltonian cycle, Hamiltonian circuit, vertex tour or graph cycle is a cycle that visits each vertex exactly once (except the vertex which is both the start and end, and so is visited twice). A graph that contains a Hamiltonian cycle is called a Hamiltonian graph.

Similar notions may be defined for directed graphs, where each edge (arc) of a path or cycle can only be traced in a single direction (i.e., the vertices are connected with arrows and the edges traced "tail-to-head").

A Hamiltonian decomposition is an edge decomposition of a graph into Hamiltonian circuits.

Examples

 * a complete graph with more than two vertices is Hamiltonian
 * every cycle graph is Hamiltonian
 * every tournament has an odd number of Hamiltonian paths
 * every platonic solid, considered as a graph, is Hamiltonian

Properties
Any Hamiltonian cycle can be converted to a Hamiltonian path by removing one of its edges, but a Hamiltonian path can be extended to Hamiltonian cycle only if its endpoints are adjacent.

The line graph of a Hamiltonian graph is Hamiltonian. The line graph of an Eulerian graph is Hamiltonian.

A tournament (with more than 2 vertices) is Hamiltonian if and only if it is strongly connected.

A Hamiltonian cycle may be used as the basis of a zero-knowledge proof.

No. of different Hamiltonian cycles for a complete graph= (n-1)!/2.

No. of different Hamiltonian cycles for a complete Digraph= (n-1)!.

Bondy-Chvátal theorem
The best characterization of Hamiltonian graphs was given in 1972 by the Bondy-Chvátal theorem which generalizes earlier results by G. A. Dirac and Øystein Ore. In fact, both Dirac's and Ore's theorems are less powerful than what can be derived from Pósa's theorem (1962). Dirac and Ore's theorems basically state that a graph is Hamiltonian if it has enough edges. First we have to define the closure of a graph.

Given a graph G with n vertices, the closure cl(G) is uniquely constructed from G by successively adding for all nonadjacent pairs of vertices u and v with degree(v) + degree(u) &ge; n the new edge uv.

Bondy-Chvátal theorem (1972)
 * A graph is Hamiltonian if and only if its closure is Hamiltonian.

As complete graphs are Hamiltonian, all graphs whose closure is complete are Hamiltonian, which is the content of the following earlier theorems by Dirac and Ore.

Dirac (1952)
 * A simple graph with n vertices (n ≥ 3) is Hamiltonian if each vertex has degree n/2 or greater.

Ore (1960)
 * A graph with n vertices (n ≥ 3) is Hamiltonian if, for each pair of non-adjacent vertices, the sum of their degrees is n or greater (see Ore's theorem).

The following theorems can be regarded as directed versions:

Ghouila-Houiri (1960)
 * A strongly connected simple directed graph with n vertices is Hamiltonian or some vertex has a full degree smaller than n.

Meyniel (1973)
 * A strongly connected simple directed graph with n vertices is Hamiltonian or the sum of full degrees of some two distinct non-adjacent vertices is smaller than 2 n &minus; 1.

It should be noted that the number of vertices must be doubled because each undirected edge corresponds to two directed arcs and thus the degree of a vertex in the directed graph is twice the degree in the undirected graph.