Hamiltonian Path
From Math Images
| Hamiltonian Paths and Cycles |
|---|
Hamiltonian Paths and Cycles
- In Graph Theory, a Hamiltonian path is a series of edges that visits every vertex of a graph exactly once.
Contents |
Basic Description
At its very basis, a Hamiltonian Path is a path along a graph that will visit each vertex (also referred to as a node) exactly once. If a Hamiltonian Path can be created for a graph, then it is determined to be a traceable graph.Also derived from Hamiltonian paths are Hamiltonian cycles, also known as Hamiltonian Circuits, which follow the same rules, along with the additional rule that the path must return to the node that it began at on the graph. There is no specific characterization of a Hamiltonian Path -- although there is a list of sufficient conditions that they must meet. If a graph has a Hamiltonian cycle, then it is determined to be a Hamiltonian Graph [1].
A More Mathematical Explanation
Theorems
There are a number of ways to tell if a graph will have a Hamiltonian path or cycle. For some simpler graphs, it can be done by hand. However, with larger graphs, a direct inspection of the graph will not provide a solution quickly. Furthermore, if Hamiltonian path or cycle didn't exist, a mathematician would have to exhaust all of the possible paths to prove that. That could surely take a lifetime for difficult graphs. As a result, many theorems were developed to help find the existence of a Hamiltonian cycle and path. Here are two theorems (Dirac from 1952, and Bondy-Chvatal from 1974) and their proofs for determining whether a graph has a Hamiltonian cycle or not. These do not apply to all cases, but the second theorem applies to more than the first.
Dirac's Theorem
If simple graph G has n ≥ 3 vertices and m ≥ n/2, then G is a Hamiltonian graph. In words, if the graph has more than three vertices, and the degree of the vertex with the smallest degree is greater than half the number of vertices, then the graph has a Hamiltonian cycle. [2].
Proof
An Example
Bondy-Chvátal Theorem
Let G be a simple graph and let u and v be nonadjacent vertices in G such that d(u) + d(v) ≥ n. Then G is Hamiltonian if and only if G + uv is Hamiltonian.
Proof
An Example
Which Theorem is Better?
Despite the fact that the proof for Dirac's Theorem contains slightly more information, that theorem applies to fewer graphs and in general less strong than the Bondy-Chvátal theorem. For example, consider the graph with n = 6 and m = 1 from the above image and the hidden example section.
In addition to this, the Bondy-Chvátal theorem is an "if and only if" statement. Therefore, we can determine whether or not a graph is Hamiltonian, depending on one condition. But Dirac's theorem is only and "if" statement. This means that this theorem only applies to graphs that meet the conditions. If the graph doesn't meet the theorem requirements, then we cannot say anything about the graph at all. This makes the Bondy-Chvátal theorem more appealing.
Alternate Statements for the Bondy-Chvátal Theorem
In fact, there are one or two statements that follow from the Bondy-Chvátal theorem that are even stronger than the theorem itself. One of the strongest statements has to do with a new concept called the closure of a graph, denoted c(G).
To create the c(G), we need to consider all of the pairs of nonadjacent vertices u and v such that d(u) + d(v) ≥ n. Once all of these pairs are joined, c(G) has been created. The theorem states that if c(G) is Hamiltonian then so is G. Surprisingly, this requires little proof. This is because the Bondy-Chvátal theorem applies to each new edge. We can thus apply that theorem recursively to until we obtain c(G). More simply stated, if the Bondy-Chvátal theorem can add one helpful edge uv, there is no reason that we cannot add more. Nowhere did the theorem restrict us to adding only one additional edge. The closure of the graph is just a graph where all the helpful edges have been added. Since we have more edges, this statement is stronger than its previous incarnation and is easier to verify.
In many cases, c(G) is a complete graph. A complete graph is a graph where each vertex is adjacent to every other vertex. Complete graphs with more than three vertices are definitely Hamiltonian, since any necessary edge to complete the cycle is always present. Thus, if c(G) is complete, then G is Hamiltonian. This version of the theorem applies to the most cases and is the easiest to calculate.
NP Completeness Proof
The complete proof for the NP-completeness of finding a Hamiltonian path is long and difficult. However, the outline of those proofs are not as difficult. If it is known that problem A is NP-complete, and problem A can be transformed into problem B, then problem B is also NP-complete. This method doesn't have to be limited to only two problems. A whole chain of transformations can occur. This is exactly how finding a Hamiltonian path was shown to be NP-complete. The seed is a problem in logic, called Satisfiability. This problem involves finding a series of true statements such that the truth of larger statements is satisfied. This problem was proved NP-complete in 1972. This problem was then transformed into finding a chromatic number of a graph, then to finding an maximal independent set of vertices, next to finding a Vertex Cover of a graph, then to finding a digraph Hamiltonian path, and finally to finding a Hamiltonian path any graph. These transformations had been proved by 1985.[3]
Why It's Interesting
The Traveling Salesman problem solution has roots in finding Hamiltonian paths and cycles. In that problem, each edge of a graph has a number associated with it, called a weight. The salesman needs to take the Hamiltonian path or cycle with the lowest weight in order to minimize the cost of his travels. So once someone has an algorithm to find a Hamiltonian cycle, its a matter of finding the optimum cycle to solve the Traveling Salesman problem.Now, let's assume that we have an algorithm to solve the Traveling Salesman problem. We can use it to make an algorithm for Take a graph G with n vertices. Now, take a complete graph with n nodes. Since the graph is complete, G is a subgraph of it. So all the edges in G are also contained in the complete graph. Now, if an edge exists in G, we give it a weight of 0 in the complete graph. If it doesn't exist in G, give it a weight 1 in the complete graph. Now, we can apply our assumed Traveling Salesman algorithm to this complete graph. Any path in the complete graph with a total weight of 0 will be a Hamiltonian path in G. Thus, a Hamiltonian path or cycle can be found with a Traveling Salesman algorithm. All the transformations of problems from one to another listed above in the NP-completeness section look something like this.
Another application of Hamiltonian paths is finding a knight's tour. The knight's tour is a challenge to have a knight move to every space on a chess board only once. It is the equivalent of find a Hamiltonian path in the graph describing all the possible moves of the knight on the chessboard. As it turns out, this graph is in fact Hamiltonian as shown by the animation. Both a Hamiltonian path and cycle can be found. There are 33,439,123,484,294 knight's tours on an 8 by 8 chess board. [4]
Teaching Materials
- There are currently no teaching materials for this page. Add teaching materials.
References
- ↑ DeLeon, Melissa, "A Study of Sufficient Conditions for Hamiltonian Cycles". Department of Mathematics and Computer Science, Seton Hall University.
- ↑ Bondy, J. A., U. S. R. Murty, "Graph Theory with Applications"
- ↑ West, Douglas A., Introduction to Graph Theory. Published by Prentice Hall Inc.
- ↑ Martin Loebbing; Ingo Wegener (1996). "The Number of Knight's Tours Equals 33,439,123,484,294 — Counting with Binary Decision Diagrams". The Electronic Journal of Combinatorics 3
- Weisstein, Eric W. "Hamiltonian Graph." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/HamiltonianGraph.html
- Weisstein, Eric W. "Hamiltonian Cycle." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/HamiltonianCycle.html
Future Directions for this Page
- Make Theorems more user-friendly to read?
- A GIF that draws a Hamiltonian Path?
- There's a good applet here, find the terms of use for it?
- Create a Traveling Salesman Problem page -- not as a helper page, but a full-fledged page for extended explanation.
Leave a message on the discussion page by clicking the 'discussion' tab at the top of this image page.
.
T is all the vertices that are in either S or T. S
T is all of the vertices that are in both S and T. To denote number of objects in a set, mathematicians use an absolute value sign. For example, |S| is the number of vertices in the set S.
and

