 Theura's theorem gives us a sufficient condition for a graph to be Hamiltonian. We can use this in two ways. If it's true, then we know the graph is Hamiltonian. And if it's not true, then we know, well, nothing. But we can make the graph Hamiltonian by adding edges. Since we can only increase the degree of a vertex by adding an edge incident on it, if the degree sum is strictly less than n and uv are already joined, we can't change the sum. So let's add edges only to vertices u and v that are non-adjacent, where the degree sum is less than n. For example, let's try to make this graph Hamiltonian. So we note there are n equals 6 vertices, so we look for non-adjacent vertices whose degree sum is less than 6. So we begin by noting that the degree of a plus the degree of d is 3, which is less than 6. So if we add an edge a, d, we'll increase both degrees by 1 and the sum by 2. Next, a and e are non-adjacent, and their degree sum is 5, so we'll add an edge. While a is non-adjacent to f, the degree sum is already 6, and so these two vertices already meet the condition for error's theorem. So we don't add an edge between them. d is non-adjacent to d, but again the degree sum is already 6, and so we don't add an edge between them. c is non-adjacent to e, but the degree sum is 6, so we don't add an edge between them. However, the degree of c and f is only 5, so we join them with an edge. d is non-adjacent to e, and since the degree sum is 5, we put an edge between them. d is non-adjacent to f, but the degree sum is already 6, so we don't add an edge. e is non-adjacent to c, but their degree sum is 8, so we don't add an edge. f is non-adjacent to d or a, but, and so we wait for it, don't add an edge. And now, every pair of vertices, u and v, satisfies the degree sum greater than or equal to 6. So there is a Hamilton cycle, which we can find. This is an algorithm because it always ends and always produces a Hamiltonian graph, but it relies on making choices. Does it make a difference which choices we make? Let's try a different sequence of choices. This time let's start with d, we can join it to f, we can join ec, then af, then de, and this gives us a Hamiltonian graph. When an algorithm could lead to different answers, we should be concerned that an application will lead to a suboptimal answer. Our original graph wasn't Hamiltonian, but we made it Hamiltonian by adding four edges, or we could have added a different set of four edges, but we could have also added just three edges. And all vertices would have met Orr's condition, and a Hamilton cycle would exist. Maybe just find one, because finding all of them is a hard problem. And this leads to an important question. What are the fewest number of edges we need to add to a graph to make it Hamiltonian? Fortunately, this question is unsolved. But again, that's actually a good thing, because as soon as a problem is solved, it can be programmed into a computer that will do it faster, cheaper, and more accurately than any human. Remember, unsolved problems are opportunities for achievement.