 In 1857, William Rowan Hamilton designed the Icazian game. In modern terms, the goal was to navigate around the graph, visiting each vertex exactly once before returning to your starting point. Later, Hamilton turned it into the traveler's dodecahedron, where the twenty vertices of the dodecahedron were twenty world cities. The game was such a financial success that Hamilton was able to work for the rest of his life. We can transform a three-dimensional polyhedron into a two-dimensional graph by using the following rather complex procedure. Every vertex of the polyhedron becomes a vertex of the graph, every edge of the polyhedron becomes an edge of the graph, and we don't care about the faces until we do. OK, it's not that complex a procedure. For example, we might try to draw a graph corresponding to a cube. So we might begin with the four vertices at the base of the cube, and the edges connecting them. Next, we can draw the four vertices on the top face of the cube, and the edges connecting them. And finally we note there are edges joining the top vertices to the bottom vertices. Hamilton's puzzle corresponds to the following graph problem. Given a graph, find a closed trail that passes through each vertex exactly once. Such a trail is now known as a Hamilton cycle. Graphs that have a Hamilton cycle are called Hamiltonian, so we might try to find a Hamiltonian cycle to the vertices of a cube. Or since the graph reserves all essential information about the cube, we'll use it instead. And with a little trial and error, we can find a Hamilton cycle. Now to determine if a graph is Eulerian, we just need to look at the vertex degrees. Finding an Euler circuit is a matter of extending a cycle. To determine if a graph is Hamiltonian is much harder. Fortunately finding a Hamilton cycle is also very difficult. Remember we like these things because problems that are unsolved or very hard are actually good because there are opportunities to do something new. There is no simple characterization of whether a graph is Hamiltonian or not. Again, this is a good thing because it means it's possible to find original results. But how? A starting point is to find necessary conditions. So let's see if we can find necessary conditions for a graph to be Hamiltonian. Remember in the conditional if A then B, we say that B is a necessary condition for A. And in any proof of the conditional if A then B, you can always begin by assuming A true. So if we want to find a necessary condition for a graph to be Hamiltonian, we can begin by supposing G is Hamiltonian. What consequences can we deduce? So suppose G is Hamiltonian. In order to visit every vertex exactly once, we have to be able to take an edge to a vertex and a different edge out of the vertex. It can't be the same edge since this would take us to the vertex we just visited. Consequently, if G is Hamiltonian, the minimum degree of any vertex in the graph has to be greater than or equal to 2. And remember, consider the contrapositive. Contrapositively, if the minimum degree of the vertices in the graph is less than or equal to 1, then G cannot be Hamiltonian. So suppose G is Hamiltonian, then we know that a cycle exists that includes all vertices. But if a cycle exists, the graph can't be a tree. So a simple starting result, if G is Hamiltonian, then it is not a tree. And contrapositively, if G is a tree, then it is not Hamiltonian. Now we do know a few things about cycles in general. For example, we know that in a bipartite graph, all cycles are even. So suppose G is a Hamiltonian graph with n vertices, then there is an n cycle. So if n is odd, G has an odd cycle. Consequently, if G is Hamiltonian with an odd number of vertices, it cannot be bipartite. And contrapositively, if G is bipartite with an odd number of vertices, it cannot be Hamiltonian. So we found a number of theorems regarding properties of Hamiltonian graphs. The contrapositive give us additional results. But there's one problem. They tell us when a graph is not Hamiltonian, but it would be nice to know when a graph is Hamiltonian. We'll take a look at that next.