It is an NP-Complete problem to determine if a graph has a Hamiltonian chain or circuit.

**Ex**: Following the edges of a Dodecahedron.

This was an example due to Hamilton. He tried to market it as a puzzle. Each vertex of the dodecahedron was labeled with the name of a city, and one was to find a circuit using the edges of the dodecahedron which visited each city once and only once.

**Ex**: The Travelling Salesman Problem

This NP-complete problem requires finding a Hamiltonian circuit in a graph whose edge weights have a minimum sum.

Ore's theorem gives a sufficient, but not necessary condition. Consider any circuit graph with 5 or more vertices.

**Corollary** (Dirac): If the degree of each vertex is >= n/2, then G has a Hamiltonian circuit.

**Corollary**: If G has a pair of non-adjacent vertices x and y, such that deg(x) + deg(y) >= n, then G is
Hamiltonian if and only if G U {x,y} is Hamiltonian.

**Def**: *Closure of G, c(G)*.

**Corollary**: G is Hamiltonian iff c(G) is Hamiltonian.

**Theorem**: Let G be a graph with at least 3 vertices. If c(G) is a complete graph then G is
Hamiltonian.

There are corresponding theorems for the existence of a Hamiltonian cycle in digraphs.

**Theorem**: (Rédei, 1934) Every tournament has a Hamiltonian path.

*Pf*: By induction on the number of vertices.

If there is more than one Hamiltonian path in a tournament, the vertices do not have a unique ranking.

**Theorem**: A tournament has a unique Hamiltonian path if and only if the tournament is transitive.

*Pf*: Suppose that D is a transitive tournament having two Hamiltonian paths, H_{1} and H_{2}. Let u and v
be the vertices on these paths where the two paths first differ. If H_{1} first goes to u, then v must
follow it on this path, and in H_{2} , u must follow v. By transitivity in H_{1}, there is an arc from u to v,
while by transitivity in H_{2}, there is an arc from v to u. This is a contradiction since D is a
tournament.

Now suppose that a tournament D has a unique Hamiltonian path. Let this path be a_{1}, a_{2}, ..., a_{n} .
Let a_{m} be the first vertex in this path that has an arc coming to it from a higher numbered vertex. Let
a_{k} be the largest numbered vertex that has an arc going to a_{m}. If m is not 1 and k is not n, then there is an
arc from a_{m-1} to a_{m+1} (otherwise the minimality of m is contradicted), and an arc from a_{m} to a_{k+1}
(otherwise the maximality of k is contradicted). Now the path, a_{1}, ..., a_{m-1}, a_{m+1}, ..., a_{k}, a_{m}, a_{k+1}, ..., a_{n}
is a second Hamiltonian path (contradiction). In a similar manner, we see that if m = 1 and k is not n,
we will obtain a second path a_{2}, ...., a_{k}, a_{1}, a_{k+1}, ..., a_{n}. If m is not 1 and k = n, we get a second path, a_{1},
..., a_{m-1}, a_{m+1}, ..., a_{n}, a_{m}. And if, m = 1 and k = n, we get a_{2}, ..., a_{n}, a_{1}. So, in all cases, we obtain a
contradiction. Therefore, there is no vertex a_{m}, i.e., there is an arc from a_{i} to a_{j} iff i < j. Now if there
are arcs from a_{i} to a_{j} and from a_{j} to a_{k}, then i < j and j < k, so i < k and there is an arc from a_{i} to
a_{k}, i.e., D is a transitive tournament.

**Lemma**: Every acyclic digraph has a vertex with no incoming arcs.

*Pf*: If D is an acyclic digraph, let D' be the digraph with the same vertices as D but whose arcs are
all reversed. D' is acyclic since D was. Take a path of maximal length in D'. Consider the last
vertex, v, in this path. There is no arc from v to any other vertex in the path since D' is acyclic.
There is no arc from v to any other vertex since the path was of maximal length. Thus, v has out
degree 0. In D, vertex v has no incoming arcs.

**Theorem**: A digraph D has a topological order if and only if D is acyclic.

*Pf*: A digraph with a topological order can clearly have no cycles since all arcs are oriented from
smaller labeled vertices to larger labeled ones. On the other hand, suppose that D is acyclic. By the
lemma, there is a vertex with no incoming arcs. Label it 1 and remove it and its arcs from D. The
new digraph is still acyclic, so there is a vertex in it with no incoming arcs. Label it 2, remove it and
its arcs. Continue in this way until all the vertices of D have been labeled. This labeling is a
topological order.