Eulerian Cycles

Eulerian Cycles

10/18/2014 Ma/CS 6a Class 8: Eulerian Cycles By Adam Sheffer The Bridges of Königsberg Can we travel the city while crossing every bridge exactly once? 1 10/18/2014 How Graph Theory Was Born Leonhard Euler 1736 Eulerian Cycle An Eulerian path in a graph 퐺 is a path that passes through every edge of 퐺 exactly once. An Eulerian cycle is an Eulerian path that starts and ends at the same vertex. a b h c 퐸 = 푎 → 푏 → 푐 → 푑 → 푒 → 푓 → 푔 → 푕 → 푎 → 푑 → 푕 → 푒 → 푏 g d → 푔 → 푐 → 푓 → 푎 f e 2 10/18/2014 Is There an Eulerian Cycle in the Graph? 퐾7 Königsberg What Graphs Contain an Eulerian Cycle? Claim. An undirected connected (possibly not simple) graph 퐺 = 푉, 퐸 contains an Eulerian cycle if and only if every vertex of 푉 has an even degree. 3 10/18/2014 Proving One Direction Assume that 퐺 contains an Eulerian cycle and prove that the degrees are even: Choose an arbitrary Eulerian cycle and traverse it starting a vertex 푠 ∈ 푉. For every 푢 ∈ 푉, let 푘푢 denote the number of times that we visit 푢. ◦ Each time we visit 푢, we enter through one edge and leave through another. Thus, deg 푢 = 2푘푢. ◦ The only exception is deg 푠 = 2푘푠 − 2. Proving the Other Direction Assume that every vertex has an even degree and prove that there exists an Eulerian cycle. ◦ We prove the claim by presenting an algorithm that always finds such a cycle. 4 10/18/2014 The Algorithm – Part 1 Choose an arbitrary vertex 푣 ∈ 푉 and start a path from it. ◦ At each step, choose an edge, cross it, and throw it away from the graph. ◦ Stop only when returning to 푣. 푏 푎 푐 푎 → 푓 → 푑 → 푎 푓 푑 푒 Correctness Claim. As long as we did not return to 푣, we cannot get stuck: Proof. For any vertex 푢 ∈ 푉 ∖ 푣 , we claim that we cannot get stuck in 푢: ◦ Before every visit of 푢, it has an even degree. ◦ While visiting 푢, it has an odd degree. ◦ It is impossible to visit 푢 when it has degree 0. 5 10/18/2014 The Algorithm – Part 2 If the cycle that we found contains every edge of the graph, we are done. Otherwise, one of the vertices that we visited still has a positive degree. ◦ Because the graph is connected! Choose such a vertex and traverse 푏 the graph as before, until we 푎 푐 return to our starting point. 푓 → 푒 → 푑 → 푐 → 푓 푓 푑 푒 The Algorithm – Part 2 (cont.) We now have two edge-disjoint cycles, with at least one common vertex between them. We combine them into one cycle. af d a 푏 푎 푐 f e d c f 푓 푑 af e d c f d a 푒 6 10/18/2014 The Algorithm – Part 3 Repeat part 2 until no edges remain in the graph. af e d c f d a 푏 푎 푐 c b ac 푓 푑 푒 a f e d c b a c f d a Correctness of the Algorithm Already proved: The algorithm cannot get stuck while constructing a cycle. Since 퐺 is connected, if there are remaining edges at the beginning of a step, at least one edge must be connected to the existing cycle. Termination. At the end of each step we obtain a cycle with a larger number of edges. Thus, the process terminates after ≤ |퐸| steps. 7 10/18/2014 Eulerian Cycles in Directed Graphs Does the even degree condition still hold in a directed graph? 푏 푎 푐 NO! 푓 푑 푒 What should the new condition be? ◦ Indegree = Outdegree. Eulerian Paths Claim. A connected undirected graph contains an Eulerian path (which is not a cycle) if and only if it contains exactly two vertices with odd degrees. Recall. An Eulerian path is an Eulerian cycle that does not necessarily start and end in the same vertex. 8 10/18/2014 Example: Eulerian Paths Proof – One Direction Assume that a (non-cycle) Eulerian path exists and show that exactly two vertices have an odd degree: ◦ Similarly to the previous proof, we travel along the path. ◦ A vertex that we visit 푘 times has degree 2푘. ◦ If we visited the first/last vertex 푘 times, it is of degree 2푘 − 1. 9 10/18/2014 Proof – The Other Direction Assume that exactly two vertices have an odd degree and prove that an Eulerian path exists: ◦ Add a new edge between these two vertices. ◦ We obtain a graph with no odd degrees. Thus, it contains an Eulerian cycle. ◦ Removing the new edge turns this cycle to an Eulerian path in the origianl graph. Covering with Several Paths Problem. Let 퐺 = 푉, 퐸 be a connected (not necessarily simple) graph with exactly 2푘 vertices of an odd degree. Prove that the edges of the graph can be covered by 푘 edge-disjoint paths. 10 10/18/2014 Solution By induction on 푘: ◦ Basis: when 푘 = 1, this is the case of a graph containing an Eulerian path. ◦ Step: Assume for 2푘 − 2 and prove for 2푘. ◦ Add an edge 푒 between two vertices with odd degrees. The resulting graph has 2푘 − 2 vertices with odd degrees. ◦ Induction hypothesis: the edges of the graph can be covered by 푘 − 1 edge disjoint paths. ◦ Removing 푒 may split one path into two, resulting in 푘 edge disjoint paths Running Times Given a graph 퐺 = 푉, 퐸 with 푛 = 푉 + 퐸 . ◦ Algorithm A computes something on 퐺 in 105푛2 steps. ◦ Algorithm B computes the same thing in 10−2푛3 steps. Which algorithm is better? ◦ Algorithm A is better when 푛 ≥ 107. ◦ Asymptotic computational complexity – we only care about large values of 푛. 11 10/18/2014 Asymptotic complexity – Shortest Paths Given a graph 퐺 = 푉, 퐸 and vertices 푠, 푡 ∈ 푉, we wish to find the shortest path between 푠 and 푡. ◦ Go over every possible path in 퐺. There could be about 푉 ! such simple paths. ◦ BFS from 푠 – finds the shortest path in at most 푐 푉 + |퐸| time (for some constant 푐). Which is better? ◦ Since 퐺 is simple, 퐸 < 푉 2. ◦ 푉 2 is MUCH better than 푉 !. Checking Some Values of |푉| |V| ퟏퟎퟔ 푽 ퟐ |V|! 1 106 1 5 2.5 ⋅ 107 120 10 108 3.6 ⋅ 106 50 2.5 ⋅ 109 ~3 ⋅ 1064 100 1010 ~9 ⋅ 10157 1000 1012 ~4 ⋅ 102567 12 10/18/2014 What Can a Computer Do? 16 8 24 10 ⋅ 3 ⋅ 10 = 3 ⋅ 10 . Second per year In This Course We will not seriously analyze running times of algorithms. We will consider a running time to be “reasonable” if it is polynomial in 푛 (the size of the input). For example, 푐푛!, 푐2푛, 푐2 푛 are not reasonable running times. 13 10/18/2014 The End I need more jokes for last slides! Send me stuff! 14.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    14 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us