Main Page | See live article | Alphabetical index

Hamiltonian path

Table of contents
1 Definitions
2 History
3 See also
4 External links and resources
5 References


In graph theory, a Hamiltonian path is a path that visits each vertex exactly once.

A Hamiltonian cycle (also called Hamiltonian circuit, vertex tour or graph cycle) is a cycle that visits each vertex exactly once.

A graph that contains a Hamiltonian cycle is called a Hamiltonian graph. 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.

Similar notions may be defined for directed graphss, where edges (arcs) of a path or a cycle are required to point in the same direction, i.e., connected tail-to-head.

The Hamiltonian cycle or Hamiltonian circuit problem in graph theory is to find a Hamiltonian cycle in a given graph.

The Hamiltonian path problem is to find a Hamiltonian path in a given graph.

There is a simple relation between the two problems. The Hamiltonian cycle problem for graph G is equivalent to the Hamiltonian path problem in a graph H obtained from G by adding a new vertex and connecting it to all vertices of G.

Both problems are NP-complete. However, certain classes of graphs always contain Hamiltonian paths. For example, it is known that every tournament has an odd number of Hamiltonian paths.

The Hamiltonian cycle problem is a special case of the traveling salesman problem, obtained by setting the distance between two cities to unity if they are adjacent and infinity otherwise.


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). Unfortunately, this solution does not generalize to arbitrary graphs.

See also

External links and resources