Eulerian tours. Russell Impagliazzo and Miles Jones Thanks to Janine Tiefenbruck. April 20, 2016

Similar documents
Eulerian Tours and Fleury s Algorithm

Graphs and Puzzles. Eulerian and Hamiltonian Tours.

Eulerian Tours and Fleury s Algorithm

Notes slides from before lecture. CSE 21, Winter 2017, Section A00. Lecture 9 Notes. Class URL:

DNA Sequencing The Shortest Superstring & Traveling Salesman Problems Sequencing by Hybridization

10/15/2009 Comp 590/Comp Fall

Introduction to Graphs

CSCI2950-C Lecture 4 DNA Sequencing and Fragment Assembly

Discrete Mathematics and Probability Theory Fall 2009 Satish Rao,David Tse Note 8

Fundamental Properties of Graphs

14 More Graphs: Euler Tours and Hamilton Cycles

Discrete Mathematics for CS Spring 2008 David Wagner Note 13. An Introduction to Graphs

An Introduction to Graph Theory

11.2 Eulerian Trails

Sequence Assembly Required!

10/8/13 Comp 555 Fall

8.2 Paths and Cycles

Characterization of Graphs with Eulerian Circuits

Chapter 3: Paths and Cycles

Crossing bridges. Crossing bridges Great Ideas in Theoretical Computer Science. Lecture 12: Graphs I: The Basics. Königsberg (Prussia)

v V Question: How many edges are there in a graph with 10 vertices each of degree 6?

Algorithms for Bioinformatics

CHAPTER 10 GRAPHS AND TREES. Alessandro Artale UniBZ - artale/z

Math 776 Graph Theory Lecture Note 1 Basic concepts

Graph Theory. 1 Introduction to Graphs. Martin Stynes Department of Mathematics, UCC January 26, 2011

Introduction III. Graphs. Motivations I. Introduction IV

CSE 21 Spring 2016 Homework 5. Instructions

Lecture 5: Graphs. Rajat Mittal. IIT Kanpur

γ(ɛ) (a, b) (a, d) (d, a) (a, b) (c, d) (d, d) (e, e) (e, a) (e, e) (a) Draw a picture of G.

Genome Reconstruction: A Puzzle with a Billion Pieces Phillip E. C. Compeau and Pavel A. Pevzner

Number Theory and Graph Theory

Encoding/Decoding, Counting graphs

Varying Applications (examples)

DNA Sequencing. Overview

Elements of Graph Theory

Chapter 11: Graphs and Trees. March 23, 2008

Sarah Will Math 490 December 2, 2009

Math 778S Spectral Graph Theory Handout #2: Basic graph theory

Intermediate Math Circles Wednesday, February 22, 2017 Graph Theory III

Chapter 8 Topics in Graph Theory

Section Graphs, Paths, and Circuits. Copyright 2013, 2010, 2007, Pearson, Education, Inc.

Introduction to Graphs

Basics of Graph Theory

Graph Algorithms in Bioinformatics

Discrete Mathematics and Probability Theory Fall 2013 Vazirani Note 7

SCHOOL OF ENGINEERING & BUILT ENVIRONMENT. Mathematics. An Introduction to Graph Theory

Graph Algorithms. Tours in Graphs. Graph Algorithms

GRAPHS, GRAPH MODELS, GRAPH TERMINOLOGY, AND SPECIAL TYPES OF GRAPHS

Algorithms for Bioinformatics

Packet #6: Counting & Graph Theory. Applied Discrete Mathematics

Introduction to Graphs

Matching Theory. Figure 1: Is this graph bipartite?

Decision Problems. Observation: Many polynomial algorithms. Questions: Can we solve all problems in polynomial time? Answer: No, absolutely not.

13. (a) G,G. A circuit of length 1 is a loop. 14. (a) E,E. (c) A,B,C,A. 16. (a) BF, FG

Math 443/543 Graph Theory Notes 2: Transportation problems

Topics Covered. Introduction to Graphs Euler s Theorem Hamiltonian Circuits The Traveling Salesman Problem Trees and Kruskal s Algorithm

Chapter 14 Section 3 - Slide 1

Discrete mathematics

GRAPH THEORY: AN INTRODUCTION

Characterizing Graphs (3) Characterizing Graphs (1) Characterizing Graphs (2) Characterizing Graphs (4)

2. CONNECTIVITY Connectivity

Eulerian Paths and Cycles

Sequencing. Computational Biology IST Ana Teresa Freitas 2011/2012. (BACs) Whole-genome shotgun sequencing Celera Genomics

6.2. Paths and Cycles

Eulerian Cycle (2A) Young Won Lim 4/26/18

Euler and Hamilton paths. Jorge A. Cobb The University of Texas at Dallas

Math 443/543 Graph Theory Notes

BIL694-Lecture 1: Introduction to Graphs

CHAPTER 10 GRAPHS AND TREES. Copyright Cengage Learning. All rights reserved.

Math 443/543 Graph Theory Notes

Institute of Operating Systems and Computer Networks Algorithms Group. Network Algorithms. Tutorial 4: Matching and other stuff

Logic: The Big Picture. Axiomatizing Arithmetic. Tautologies and Valid Arguments. Graphs and Trees

Assignment 4 Solutions of graph problems

14.2 Euler Paths and Circuits filled in.notebook November 18, Euler Paths and Euler Circuits

EECS 203 Lecture 20. More Graphs

Binomial Coefficients

How can we lay cable at minimum cost to make every telephone reachable from every other? What is the fastest route between two given cities?

Junior Circle Meeting 3 Circuits and Paths. April 18, 2010

Master Theorem, Introduction to Graphs

Basic Combinatorics. Math 40210, Section 01 Fall Homework 4 Solutions

Sequence Assembly. BMI/CS 576 Mark Craven Some sequencing successes

K 4 C 5. Figure 4.5: Some well known family of graphs

Graph Theory. Part of Texas Counties.

MAT 145: PROBLEM SET 4

Trees. Russell Impagliazzo and Miles Jones Thanks to Janine Tiefenbruck. April 29, 2016

Assignment # 4 Selected Solutions

Introduction to Graphs

Section 3.4 Basic Results of Graph Theory

Week 11: Eulerian and Hamiltonian graphs; Trees. 15 and 17 November, 2017

Math.3336: Discrete Mathematics. Chapter 10 Graph Theory

INTRODUCTION TO GRAPH THEORY. 1. Definitions

Read Mapping. de Novo Assembly. Genomics: Lecture #2 WS 2014/2015

Graph Theory CS/Math231 Discrete Mathematics Spring2015

Genome 373: Genome Assembly. Doug Fowler

Instant Insanity Instructor s Guide Make-it and Take-it Kit for AMTNYS 2006

SEVENTH EDITION and EXPANDED SEVENTH EDITION

Scheduling, Map Coloring, and Graph Coloring

CS70 - Lecture 6. Graphs: Coloring; Special Graphs. 1. Review of L5 2. Planar Five Color Theorem 3. Special Graphs:

Chapter 5: Euler Paths and Circuits The Mathematics of Getting Around

Graphs. Pseudograph: multiple edges and loops allowed

Transcription:

Eulerian tours Russell Impagliazzo and Miles Jones Thanks to Janine Tiefenbruck http://cseweb.ucsd.edu/classes/sp16/cse21-bd/ April 20, 2016

Seven Bridges of Konigsberg Is there a path that crosses each bridge (exactly) once? Rosen p. 693

Seven Bridges of Konigsberg Observe: exact location on the north side doesn't matter because must come & go via a bridge. Can represent each bridge as an edge.

Seven Bridges of Konigsberg Is there a path where each edge occurs exactly once? Eulerian tour Rosen p. 693

Eulerian tour and Eulerian cycle (or circuit) Eulerian tour (or path): a path in a graph that passes through every edge exactly once. Eulerian cycle (or circuit): a path in a graph that pass through every edge exactly once and starts and ends on the same vertex.

Seven Bridges of Konigsberg redux Which of these puzzles can you draw without lifting your pencil off the paper?

Algorithmic questions related to Euler tours Existence: Does the given graph G contain an Euler tour? Path: Find an Euler tour for the given graph G, if possible. Turns out there are great algorithms for each of these next!

Algorithmic questions related to Euler tours A Hamiltonian tour is a path where each vertex occurs exactly once. Existence: Does the given graph G contain a Hamiltonian tour? Hamiltonian tour Path: Find a Hamiltonian tour for the given graph G, if possible. These questions turn out to be intractable!!!

Algorithmic questions related to Euler tours Hamiltonian tour Actually, it is not known how to determine in any reasonable amount of time whether a graph G has a Hamilton Tour, or how to find one. An Opportunity: You can earn $1,000,000 if you can give an algorithm that finds a Hamilton Tour (if one exists) in an arbitrary graph on n vertices that takes time O(n k ) for constant k.

Light Switches A light bulb is connected to 3 switches in such a way that it lights up only when all the switches are in the proper position. But you don't know what the proper position of each switch is! What's the minimum number of single flips of a switch to guarantee that the light bulb turns on? A. 4 B. 8 C. 16 D. 64 E. None of the above

Light Switches Configuration 1 if switch is UP, 0 if DOWN Connect configuration if off by one switch. Rephrasing the problem: Looking for Hamiltonian tour through graph.

Our Strategy Puzzle / Problem Model as a graph Choose vertex set & edge set sometimes many possible options Use graph algorithms to solve puzzle / problem

DNA Reconstruction Problem Given collection of short DNA strings. Find longer DNA string that includes them all. Many possible formulations as a graph problem. Successful solution was a big step in Human Genome Project.

DNA Reconstruction: as a Hamiltonian tour Given collection of short DNA strings. S = { ATG, AGG, TGC, TCC, GTC, GGT, GCA, CAG } Find longer DNA string that includes them all. Vertex set: S, i.e. a vertex for each short DNA string Edge set: edge from v to w if the first two letters of w equal the last two letters of v ATG AGG TGC TCC GTC GGT GCA CAG

DNA Reconstruction: as a Hamiltonian tour Given collection of short DNA strings. S = { ATG, AGG, TGC, TCC, GTC, GGT, GCA, CAG } Find longer DNA string that includes them all. Vertex set: S, i.e. a vertex for each short DNA string Edge set: edge from v to w if the first two letters of w equal the last two letters of v ATG AGG TGC TCC GTC GGT GCA CAG What's a Hamiltonian tour?

DNA Reconstruction: as an Eulerian tour Given collection of short DNA strings. S = { ATG, AGG, TGC, TCC, GTC, GGT, GCA, CAG } Find longer DNA string that includes them all. Vertex set: All length-two strings that appear in a word in S Edge set: edge from ab to bc if abc is in S. AG GG CA AT TG GC TC GT CC What's an Eulerian tour?

Finding Eulerian tours Consider only undirected graphs. 1 st goal: Determine whether a given undirected graph G has an Eulerian tour. 2 nd goal: Actually find an Eulerian tour in an undirected graph G, when possible.

Finding Eulerian tours How many paths are there between vertex A and vertex I? A. None. B. Exactly one. C. Exactly two. D. More than two. E. None of the above.

Connectedness An undirected graph G is connected if for any ordered pair of vertices (v,w) there is a path from v to w. Connected Not connected

Connectedness An undirected graph G is connected if for any ordered pair of vertices (v,w) there is a path from v to w. An undirected graph G is disconnected if A. for any ordered pair of vertices (v,w) there is no path from v to w. B. there is an ordered pair of vertices (v,w) with a path from v to w. C. there is an ordered pair of vertices (v,w) with no path from v to w. D. for every ordered pair of vertices (v,w) there is a path from v to w. E. None of the above.

Connected Components Disconnected graphs can be broken up into pieces where each is connected. Each connected piece of the graph is a connected component.

Finding Eulerian tours Let G = (V,E) be an - undirected - connected graph with n vertices. 1 st goal: Determine whether G has an Eulerian tour. 2 nd goal: If yes, find the tour itself.

Finding Eulerian tours Observation: If v is an intermediate* vertex on a path p, then p must enter v the same number of times it leaves v. * not the start vertex, not the end vertex. v

Finding Eulerian tours Observation: If v is an intermediate* vertex on a path p, then p must enter v the same number of times it leaves v. If p is an Eulerian tour, it contains all edges. So, each edge incident with v is in p. * not the start vertex, not the end vertex. v

Recall: Degree The degree of a vertex in an undirected graph is the total number of edges incident with it, except that a loop contributes twice. Rosen p. 652

Finding Eulerian tours Observation: If v is an intermediate* vertex on a path p, then p must enter v the same number of times it leaves v. If p is Eulerian tour, it has all edges: each edge incident with v is in p. There are degree(v) many of these * not the start vertex, not the end vertex. v

Finding Eulerian tours Observation: If v is an intermediate* vertex on a path p, then p must enter v the same number of times it leaves v. If p is Eulerian tour, it has all edges: each edge incident with v is in p. Half these edges are entering v, half are leaving v degree(v) is even! There are degree(v) many of these

(Summary of) Observation: Finding Eulerian tours In an Eulerian tour, any intermediate vertex has even degree. If tour is a circuit, all vertices are intermediate so all have even degree. If tour is not a circuit, starting and ending vertices will have odd degree.

Finding Eulerian tours Theorem: If G has an Eulerian tour, G has at most two odd degree vertices. Which of the following statements is the converse to the theorem? A. If G does not have an Eulerian tour, then G does not have at most two odd degree vertices. B. If G has at most two odd degree vertices, then G has an Eulerian tour. C. If G does not have at most two odd degree vertices, then G does not have an Eulerian tour. D. More than one of the above. E. None of the above.

Finding Eulerian tours Theorem: If G has an Eulerian tour, G has at most two odd degree vertices. Question: is the converse also true? i.e If G has at most two odd degree vertices, then must G have an Eulerian tour?

Finding Eulerian tours Theorem: If G has an Eulerian tour, G has at most two odd degree vertices. Question: is the converse also true? i.e If G has at most two odd degree vertices, then must G have an Eulerian tour? Answer: give algorithm to build the Eulerian tour! We'll develop some more graph theory notions along the way.

Eulerian tour? Finding Eulerian tours

Finding Eulerian tours Eulerian tour? Start at 4. Where should we go next? A. Along edge to 2. B. Along edge to 3. C. Along edge to 5. D. Any of the above.

Bridges A bridge is an edge, which, if removed, would cause G to be disconnected. A D B C E Which of the edges in this graph are bridges? A. All of them. B. D, E C. A, B, C D. C, D E. None of the above.

Bridges A bridge is an edge, which, if removed, would cause G to be disconnected. Connection with Eulerian tours: In an Eulerian tour, we have to visit every edge on one side of the bridge before we cross it (because there's no coming back). ** Do you see divide & conquer in here?

Eulerian Tours HOW Fleury's Algorithm 1. Check that G has at most 2 odd degree vertices. 2. Start at vertex v, an odd degree vertex if possible. 3. While there are still edges in G, 4. If there is more than one edge incident on v 5. Cross any edge incident on v that is not a bridge and delete it 6. Else, 7. Cross the only edge available from v and delete v.

Eulerian Tours WHY Fleury's Algorithm 1. Check that G has at most 2 odd degree vertices. 2. Start at vertex v, an odd degree vertex if possible. 3. While there are still edges in G, 4. If there is more than one edge incident on v 5. Cross any edge incident on v that is not a bridge and delete it 6. Else, 7. Cross the only edge available from v and delete v. Will there always be such an edge? Will go through each edge at most once, so if while loop iterates E times, get an Eulerian tour.

Fleury s algorithm correctness. invariants 1. If v has odd degree then there is exactly one other vertex w of odd degree. If v has even degree, all other vertices have even degree. 2. G stays connected (deleting edges as we use them.)

Fleury s algorithm correctness. invariants 1. If v has odd degree then there is exactly one other vertex w of odd degree. If v has even degree, all other vertices have even degree. Proof: Base Case: since G has at most 2 odd degree vertices and we pick one as v, there must only be one other. Induction Hypothesis: Suppose after k iterations, the current vertex has odd degree and one other vertex has odd degree or all vertices have even degree. Call the current vertex v. Then we must cross an edge to get to a neighbor of v call it y. If y is not w then y has even degree and when you delete the edge (v,y), v now has even degree and y has odd degree and y is the new current vertex. if y is w then when you delete the edge (v,y) v has even degree and w has even degree so all vertices have even degree.

Fleury s algorithm correctness. invariants 2. G stays connected (deleting edges as we use them.) Proof: Base Case: G starts as being connected. Inductive hypothesis: Assume after k iterations, G is still connected. If we remove the current vertex v and all the edges from v, the graph could split into connected components C_1, C_m

Fleury s algorithm correctness. invariants 2. G stays connected (deleting edges as we use them.) If we remove the current vertex v and all the edges from v, the graph could split into connected components C_1, C_m

Fleury s algorithm correctness. invariants 2. G stays connected (deleting edges as we use them.) If we remove the current vertex v and all the edges from v, the graph could split into connected components C_1, C_m Case 1: There is a single component, m=1 and there is only one edge from v. Then G stays connected because it becomes C_1 and we delete v after the one edge is removed.

Fleury s algorithm correctness. invariants 2. G stays connected (deleting edges as we use them.) Case 2: There is a component C_i with at least 2 edges from v. Then neither is a bridge and Fleury s algorithm can take any of these edges and the graph will stay connected.

Fleury s algorithm correctness. invariants 2. G stays connected (deleting edges as we use them.) Case 3: There are at least 2 components and all have single edges from v. THIS CASE CANNOT HAPPEN!!!!!!!!

Fleury s algorithm correctness. invariants 2. G stays connected (deleting edges as we use them.) Case 3: There are at least 2 components and all have single edges from v. THIS CASE CANNOT HAPPEN!!!!!!!! w would be in at most one of the at least two components. So pick a component C_i so that there is one edge from v to C_i which has no odd degree vertices. Consider the subgraph consisting just of v and C_i. This graph has only one odd degree vertex. But this contradicts the handshake lemma!!!!!

Fleury s algorithm correctness. invariants Conclusion: Throughout the algorithm, the graph stays connected. In particular, we end when there are no edges leaving our current vertex v, which means there cannot be any other vertices or the graph would be disconnected. So we have deleted all edges, and hence gone over each edge exactly once. v Bridge!

Eulerian Tours WHY Fleury's Algorithm 1. Check that G has at most 2 odd degree vertices. 2. Start at vertex v, an odd degree vertex if possible. 3. While there are still edges in G, 4. If there is more than one edge incident with v 5. Cross any edge incident with v that is not a bridge 6. Else, cross the only edge available from v. 7. Delete the edge just crossed from G, update v. Will there always be such an edge? v Bridge!

Eulerian Tours WHY Fleury's Algorithm 1. Check that G has at most 2 odd degree vertices. 2. Start at vertex v, an odd degree vertex if possible. 3. While there are still edges in G, 4. If there is more than one edge incident with v 5. Cross any edge incident with v that is not a bridge 6. Else, cross the only edge available from v. 7. Delete the edge just crossed from G, update v. Will there always be such an edge? v Bridge!

Eulerian Tours WHY Fleury's Algorithm 1. Check that G has at most 2 odd degree vertices. 2. Start at vertex v, an odd degree vertex if possible. 3. While there are still edges in G, 4. If there is more than one edge incident with v 5. Cross any edge incident with v that is not a bridge 6. Else, cross the only edge available from v. 7. Delete the edge just crossed from G, update v. Will there always be such an edge? Bridge! v

Eulerian Tours WHY Fleury's Algorithm 1. Check that G has at most 2 odd degree vertices. 2. Start at vertex v, an odd degree vertex if possible. 3. While there are still edges in G, 4. If there is more than one edge incident with v 5. Cross any edge incident with v that is not a bridge 6. Else, cross the only edge available from v. 7. Delete the edge just crossed from G, update v. Will there always be such an edge? v

Eulerian Tours WHY Fleury's Algorithm 1. Check that G has at most 2 odd degree vertices. 2. Start at vertex v, an odd degree vertex if possible. 3. While there are still edges in G, 4. If there is more than one edge incident with v 5. Cross any edge incident with v that is not a bridge 6. Else, cross the only edge available from v. 7. Delete the edge just crossed from G, update v. Will there always be such an edge? etc. v

Seven Bridges of Konigsberg 3 5 3 3 Is there a path where each edge occurs exactly once? Eulerian tour No! Rosen p. 693

Seven Bridges of Konigsberg redux 3 3 5 5 2 4 4 3 3 5 5 3 3 3 3 4 4 2 4 2 Which of these puzzles can you draw without lifting your pencil off the paper? A. No B. No C. No D. Yes

Eulerian Tours: recap Consider only undirected graphs. 1 st goal: Determine whether a given undirected graph G has an Eulerian tour. G has an Eulerian tour if and only if G has at most 2 odd-degree vertices. 2 nd goal: Actually find an Eulerian tour in an undirected graph G, when possible. Fleury's Algorithm: don't burn your bridges.

Eulerian Tours: recap Number of odd degree vertices Is such a graph possible? 0 1 2 >2, odd >2, even yes no yes no yes Is an Eulerian tour possible? yes, an Eulerian circuit yes no