 Let's reformulate the mechanics for a bridge problem as a graph theory problem. We'll assume a connected graph G since otherwise the problem is obviously unsolvable. We want to cross each edge exactly once, which is the characteristic of a trail. The real-world problem should have one more requirement. You have to get back to your starting point, even if it's in New Jersey. A trail that crosses all edges and returns to the starting point is an Euler, or Eulerian, circuit. To avoid learning anything useful, skip ahead to the 7 minute 20 second mark. But remember, it's the journey, not the destination. What we'd like is to prove a statement of the form, if G is, then G has an Euler circuit. It's useful to keep in mind. Consider the converse. So let's start out by proving if G has an Euler circuit, then something. So I suppose G has an Euler circuit. Maybe a bell. Let's build the graph, starting with all its vertices and none of the edges. We'll then add the edges as we need them in the Euler circuit. So initially, all vertices have degrees zero. Starting at our initial vertex, we take an edge to another vertex, then to another, then to another, and so on. And eventually, we get back to our starting point. We see that every time we pass through a vertex, its degree increases by two, once for the edge coming in, and once for the edge leading out. Since the vertices all start with degrees zero, and we might or might not increase the degree by two, this means that all the vertices, except for our initial vertex, always have even degrees. The zero, which is also increased by two every time we pass through it, will always have odd degree until we return to it at the end. Then its degree will increase by one to an even number. And this proves our theorem. Suppose G has an Euler circuit, then all vertices of G have even degree. Ordinarily, we might try to prove the converse. But it's often easier to prove if A then B, if B then C, if C then D, and so on, eventually getting to if Z then A, which takes us back to our starting point. And if we do this, we might learn more as well. So suppose G is a connected graph with N vertices, and all vertices have even degree. Since every vertex must have degree at least two, the degree sum will be at least two N. But remember the Handshake theorem. The degree sum is always twice the number of edges. So this graph must have at least N edges. But we know something about connected graphs with N vertices and N edges. So we know that this graph contains at least one cycle. And so we prove if G is connected and all vertices have even degree, then G has at least one cycle. Since in some sense a cycle represents path redundancy, let's remove this cycle. In other words, we'll find a cycle and then remove all of its edges. If we do that, we see that the degree of every vertex in the cycle has been reduced by an even number. So every vertex in the graph still has even degree. Now, if we're moving that cycle might or might not disconnect the graph, but all of our vertices will still have even degree. So if we do disconnect the graph, we can just work with the connected components separately. So lather, rinse, repeat. So we'll find a cycle, remove it, and eventually get every edge in the graph into a cycle. Consequently, suppose G is connected and all vertices have even degree, then the edges of G can be partitioned into disjoint cycles. Now suppose the edges of a connected graph G can be partitioned into disjoint cycles. Let Z1 be one of the cycles. If this includes all the edges, it's our Euler circuit. Otherwise, there's an edge not included in the cycle, which is part of another disjoint cycle. Since the cycles are disjoint, Z1 together with Z2 is still a trail with no repeated edges, and by looping, we can still return to any starting point. That's a somewhat informal description, so let's make that more formal. So if our two cycles are Z1 and Z2, where the edges are distinct, then Z star, we can go through our first cycle up to the point, where our second cycle branches off, loop around that second cycle, then continue onward to complete the first cycle, is going to be a trail with distinct edges, and we can lather, rinse, repeat, and get the following theorem. If the edges of G can be partitioned into disjoint cycles, then G has an Euler circuit, and that takes us back to our starting point. So remember, proof is valuable in mathematics because it reviews what we know. In this case, we've reviewed the handshake theorem and the theorem that a connected graph with N vertices and N edges has exactly one cycle. It also reveals new results and raises new questions. In this case, the proof revealed an algorithm for finding Euler circuits. As for the new questions, well, we'll leave that for your research project. Our proof relied on joining distinct cycles of our graph, so it's supposed to begin with any vertex and find any cycle that includes the vertex. If this uses all edges, we're done. Otherwise, leave the cycle and find another cycle with the other edges, then lather, rinse, repeat, then find the Euler circuit by starting anywhere, looping as necessary to pick up the edges. For example, let's try to find an Euler circuit for the graph shown, we'll start anywhere and find a cycle. Since we haven't included all the edges, we'll take any edge not on the cycle and find a cycle including that edge. And lather, rinse, repeat, until these last four edges do form a cycle. Then we can produce the Euler circuit by beginning anywhere, following the cycle until we get to another cycle, do a loop, and then continue till we get to another cycle. Do the loop, and continue onward. And eventually, we'll get back to our starting point, completing the Euler circuit.