Shortest Path Routing Communications networks as graphs Graph terminology Breadth-first search in a graph Properties of breadth-first search

Similar documents
Outlines: Graphs Part-2

6.033 Computer System Engineering

CS473-Algorithms I. Lecture 14-A. Graph Searching: Breadth-First Search. Cevdet Aykanat - Bilkent University Computer Engineering Department

Graphs. Graph G = (V, E) Types of graphs E = O( V 2 ) V = set of vertices E = set of edges (V V)

Lecture 10. Elementary Graph Algorithm Minimum Spanning Trees

Dijkstra s Algorithm and Priority Queue Implementations. CSE 101: Design and Analysis of Algorithms Lecture 5

COT 6405 Introduction to Theory of Algorithms

Graph Algorithms. Chapter 22. CPTR 430 Algorithms Graph Algorithms 1

Previous Lecture. Link Layer & Network Layer. Link Layer. This Lecture. Framing. Sending bits. Chapter 7.C and 7.D

Graph Representation

Graph Algorithms: Chapters Part 1: Introductory graph concepts

Elementary Graph Algorithms

CSE 101. Algorithm Design and Analysis Miles Jones Office 4208 CSE Building Lecture 5: SCC/BFS

Graph Algorithms. Andreas Klappenecker. [based on slides by Prof. Welch]

CHAPTER 23: ELEMENTARY GRAPH ALGORITHMS Representations of graphs

(Re)Introduction to Graphs and Some Algorithms

Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Fall Semester, Introduction to EECS 2

Algorithm Design and Analysis

Algorithm Design and Analysis

Graph Algorithms. Andreas Klappenecker

CS Elementary Graph Algorithms

CS Elementary Graph Algorithms

Chapter 22. Elementary Graph Algorithms

Design and Analysis of Algorithms

Graph: representation and traversal

Elementary Graph Algorithms. Ref: Chapter 22 of the text by Cormen et al. Representing a graph:

Minimum Spanning Trees Ch 23 Traversing graphs

CSE 101. Algorithm Design and Analysis Miles Jones Office 4208 CSE Building Lecture 6: BFS and Dijkstra s

csci 210: Data Structures Graph Traversals

Representations of Graphs

Graph Representations and Traversal

Review: Graph Theory and Representation

CSI 604 Elementary Graph Algorithms

DFS & STRONGLY CONNECTED COMPONENTS

COMP251: Single source shortest paths

Design and Analysis of Algorithms

Design and Analysis of Algorithms

Undirected Graphs. DSA - lecture 6 - T.U.Cluj-Napoca - M. Joldos 1

CS 220: Discrete Structures and their Applications. graphs zybooks chapter 10

Tutorial. Question There are no forward edges. 4. For each back edge u, v, we have 0 d[v] d[u].

Lecture 28: Graphs: Shortest Paths (Part 1)

Algorithms: Lecture 10. Chalmers University of Technology

Classical Shortest-Path Algorithms

ECE250: Algorithms and Data Structures Elementary Graph Algorithms Part A

Data Structures and Algorithms. Chapter 7. Graphs

Data Structures. Elementary Graph Algorithms BFS, DFS & Topological Sort

Chapter 24. Shortest path problems. Chapter 24. Shortest path problems. 24. Various shortest path problems. Chapter 24. Shortest path problems

CSCE 750, Fall 2002 Notes 6 Page Graph Problems ffl explore all nodes (breadth first and depth first) ffl find the shortest path from a given s

Computer Science & Engineering 423/823 Design and Analysis of Algorithms

Scribes: Romil Verma, Juliana Cook (2015), Virginia Williams, Date: May 1, 2017 and Seth Hildick-Smith (2016), G. Valiant (2017), M.

5.4 Shortest Paths. Jacobs University Visualization and Computer Graphics Lab. CH : Algorithms and Data Structures 456

csci 210: Data Structures Graph Traversals

Graph Search. Adnan Aziz

Graphs. CSE 2320 Algorithms and Data Structures Alexandra Stefan and Vassilis Athitsos University of Texas at Arlington

Single Source Shortest Path

Basic Graph Algorithms (CLRS B.4-B.5, )

Introduction to Algorithms. Lecture 11

Computer Science & Engineering 423/823 Design and Analysis of Algorithms

Undirected Graphs. V = { 1, 2, 3, 4, 5, 6, 7, 8 } E = { 1-2, 1-3, 2-3, 2-4, 2-5, 3-5, 3-7, 3-8, 4-5, 5-6 } n = 8 m = 11

Outline. 1 Introduction. 2 Algorithm. 3 Example. 4 Analysis. 5 References. Idea

Trees. Arash Rafiey. 20 October, 2015

Graph Traversal CSCI Algorithms I. Andrew Rosenberg

Unit 2: Algorithmic Graph Theory

CS 161 Lecture 11 BFS, Dijkstra s algorithm Jessica Su (some parts copied from CLRS) 1 Review

Algorithm Design and Analysis

Copyright 2000, Kevin Wayne 1

22.1 Representations of graphs

Graph representation

Section 3.1: Nonseparable Graphs Cut vertex of a connected graph G: A vertex x G such that G x is not connected. Theorem 3.1, p. 57: Every connected

W4231: Analysis of Algorithms

CS 561, Lecture 10. Jared Saia University of New Mexico

Chapter 22: Elementary Graph Algorithms. Definitions:

Homework Assignment #3 Graph

Breadth-First Search, 1. Slides for CIS 675 DPV Chapter 4. Breadth-First Search, 3. Breadth-First Search, 2

Title. Ferienakademie im Sarntal Course 2 Distance Problems: Theory and Praxis. Nesrine Damak. Fakultät für Informatik TU München. 20.

Sample Solutions to Homework #4

CS 341: Algorithms. Douglas R. Stinson. David R. Cheriton School of Computer Science University of Waterloo. February 26, 2019

Graph implementations :

Outline. Computer Science 331. Analysis of Prim's Algorithm

Data Structures and Algorithms. Werner Nutt

22 Elementary Graph Algorithms. There are two standard ways to represent a

Internet: Best Effort. L11: Protocols and Network layer. Protocol. End hosts implement everything else

CSE 417: Algorithms and Computational Complexity. 3.1 Basic Definitions and Applications. Goals. Chapter 3. Winter 2012 Graphs and Graph Algorithms

Lecture 10: Strongly Connected Components, Biconnected Graphs

COP 4531 Complexity & Analysis of Data Structures & Algorithms

Unweighted directed graphs

3.1 Basic Definitions and Applications

Minimum Spanning Trees and Prim s Algorithm

Redes de Computadores. Shortest Paths in Networks

3.1 Basic Definitions and Applications. Chapter 3. Graphs. Undirected Graphs. Some Graph Applications

Algorithms on Graphs: Part III. Shortest Path Problems. .. Cal Poly CSC 349: Design and Analyis of Algorithms Alexander Dekhtyar..

Jana Kosecka. Red-Black Trees Graph Algorithms. Many slides here are based on E. Demaine, D. Luebke slides

Chapter 3. Graphs. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Lecture 3: Graphs and flows

Lecture 22 Tuesday, April 10

CSE331 Introduction to Algorithms Lecture 15 Minimum Spanning Trees

Distributed minimum spanning tree problem

CS473-Algorithms I. Lecture 13-A. Graphs. Cevdet Aykanat - Bilkent University Computer Engineering Department

(Refer Slide Time: 00:18)

Graph Algorithms. Definition

Transcription:

Shortest Path Routing Communications networks as graphs Graph terminology Breadth-first search in a graph Properties of breadth-first search 6.082 Fall 2006 Shortest Path Routing, Slide 1

Routing in an arbitrary network Suppose we d like to send a packet from node D to node F. There are several possible routes for the packet to take which should we choose? One common choice to find a shortest path, i.e., a path that traverses the fewest number of communication links, since this will minimize the use of routing resources. To find a shortest path, we ll turn to an elementary graph algorithm: breadth-first search. Network algorithms are often closely related to graph algorithms for obvious reasons! 6.082 Fall 2006 Shortest Path Routing, Slide 2

Networks As Graphs A network composed of nodes and bidirectional communication links is easily converted into an undirected graph composed of vertices and edges: A B C D E F G H 6.082 Fall 2006 Shortest Path Routing, Slide 3

Graph Terminology A B C D E F G H V = { A B C D E F G H } E = { (A,E) (A,B) (B,F) (C,D) (C,F) (C,G) (D,G) (D,H) (F,G) (G,H) } A graph is composed of a set V of vertices - V is the number of elements in V a set E of directed or undirected edges of the form (u,v) where u, v V - (u,v) is an edge connecting vertex u and vertex v - Adj[u] contains all vertices v such that (u,v) E - a graph is called sparse if E «V 2 total memory required to store graph = O( V + E ) O(V+E) 6.082 Fall 2006 Shortest Path Routing, Slide 4

Breadth-first search Given a graph G = (V,E) and a distinguished source vertex s, breadth-first search systematically explores the edges of G to discover every vertex that is reachable from s. It produces a breadth-first tree with root s that contains all reachable vertices. Path from root to node v in tree will be a shortest path from s to v. It s called breadth-first because the algorithm discovers all nodes of distance K from s before discovering any nodes of distance K+1. D C G H F B A E d=1 d=2 d=3 d=4 d=5 6.082 Fall 2006 See section 22.2 of Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein Shortest Path Routing, Slide 5

Breadth-first Search Procedure def BFS(G,s): # G is a graph with V and Adj dist = {} # maps vertex to distance from s parent = {} # maps vertex to parent in BFS tree color = {} # maps vertex to color: white=undiscovered # gray=discovered, black=processed for u in G.V: # loop through all nodes color[u] = 'white' # node hasn t been discovered yet dist[u] = infinity # no distance from root yet parent[u] = None # no parent in BFS tree yet color[s] = 'gray' # root has been discovered dist[s] = 0 # root is distance 0 from itself parent[s] = None # root has no parent! Q = Queue(0) # set up first-in, first-out queue Q.put(s) # root is the first entry in the queue while not Q.empty(): # loop until queue is empty u = Q.get() # get next vertex from the queue for v in G.Adj[u]: # loop through all its neighbors if color[v]=='white': # if v hasn t been discovered color[v] = 'gray' # mark v as discovered dist[v] = dist[u]+1 # v is one hop further than parent parent[v] = u # parent is vertex from Queue Q.put(v) # process v s neighbors later color[u] = 'black' # mark vertex from Queue as processed 6.082 Fall 2006 Shortest Path Routing, Slide 6

Example (root = B) 1 A B C D E F G H Q: B 0 6 A B C D E F G H Q: E D H 2 3 3 2 A B C D E F G H Q: F A 1 1 7 A B C D E F G H Q: D H 3 3 3 A B C D E F G H Q: A C G 1 2 2 8 A B C D E F G H Q: H 3 4 A B C D E F G H Q: C G E 2 2 2 9 A B C D E F G H Q: 5 A B C D E F G H Q: G E D 2 2 3 Node colors and Q shown at start of each iteration of while loop 6.082 Fall 2006 Shortest Path Routing, Slide 7

Questions to ask about algorithms Does algorithm terminate on all inputs? Does it provably compute the desired result? In BFS, does dist[u] equal the shortest-path distance from s to u? Does it discover all nodes reachable from s? How much space and time does the algorithm require? Usually expressed in terms of asymptotic behavior, e.g., O( ) where is related to the size of the input. In BFS: the size of the graph is given by V and E. 6.082 Fall 2006 Shortest Path Routing, Slide 8

BFS: time & space Initialization of dist, parent, color takes O(V) time and they require O(V) space. Queue.put and Queue.get take constant time, i.e., time does not depend on size of queue. Maximum queue size is O(V). Each vertex is enqueued and dequeued exactly once, so time for all queue operations is O(V). The sum of the lengths of the Adj[] lists is O(E) and each adjacency list is scanned once when node is dequeued, so the total amount of time spent scanning adjacency lists is O(E). Total processing time: O(V+E) Total processing space: O(V+E) 6.082 Fall 2006 Shortest Path Routing, Slide 9

The B in BFS The queue is used to organize the search to be breadth first -- we process all the nodes at distance K before processing their neighbors at distance K+1 Queue ordering from example: B F A C G E D H distance: 0 1 1 2 2 2 3 3 A vertex s color is used to distinguished nodes that have been processed from nodes that haven t the search processes each node exactly once. Note that all nodes on the queue are colored gray: they ve been discovered but their adjacency lists have not been scanned. Nodes not on the queue are either Black (the node and its neighbors have been discovered) or White (the node hasn t yet been discovered) 6.082 Fall 2006 Shortest Path Routing, Slide 10

Back to networks How does a node learn about it s neighbors? Periodically send HELLO packets on outgoing links Remember source address of arriving HELLO packets What happens when link goes down? How does a node get Adj[] lists from other nodes? Periodically broadcast neighbor list to all nodes (LSA packets) Remember most recent LSA packet from each source What happens when link goes down? How does a node build its shortest path routing table? Run modified BFS using LSA info Only want outgoing link to use for first hop (don t need distance or complete route to destination). 6.082 Fall 2006 Shortest Path Routing, Slide 11

Slides for Friday 6.082 Fall 2006 Shortest Path Routing, Slide 12

Other shortest-path routing algorithms In the link-state routing algorithm of Lab 9 Each node receives neighbor info from every node in the network Each node knows about all the paths through the network Each node selects shortest path using BFS If all we want is the shortest path why learn about all paths? To choose the right outgoing link, all a node needs to know is which of its neighbors has the shortest path to the destination Idea: Have neighbors only tell us enough info for us to make the right routing decision 6.082 Fall 2006 Shortest Path Routing, Slide 13

Path Vector Routing Protocol Initialization Each node knows the path to itself A 1 1 2 1 D E 3 2 For example, D initializes its paths 1 DST D Link End layer Path null 3 C 2 1 B Slides are from lectures by Nick Mckeown, Ion Stoica, Frans Kaashoek, Hari Balakrishnan, Sam Madden, and Dina Katabi 6.082 Fall 2006 Shortest Path Routing, Slide 14

Step 1: Advertisement Path Vector Each node tells its neighbors its path to each node in the graph A 1 1 D 2 1 E 3 2 1 For example, D receives: 3 C 2 1 B From A: To Path A null From C: To Path C null From E: To Path E null 6.082 Fall 2006 Shortest Path Routing, Slide 15

Path Vector Step 2: Update Route Info Each node use the advertisements to update its paths D received: From A: From C: From E: To Path To Path To Path A null C null E null D updates its paths: DST Link Path D End layer null DST Link Path D End layer null A 1 <A> C 3 <C> E 2 <E> Note: At the end of first round, each node has learned all one-hop paths 6.082 Fall 2006 Shortest Path Routing, Slide 16

Path Vector Periodically repeat Steps 1 & 2 In round 2, D receives: From A: To D updates its paths: DST Link D End layer null A 1 <A> C 3 <C> E 2 <E> Path From C: To Path A null C null D <D> D E <D> <E> B <B> Path DST Link From E: To E D C Path D A End layer 1 null <A> C 3 <C> E 2 <E> B 3 <C, B> Path null <D> <C> Note: At the end of round 2, each node has learned all two-hop paths 6.082 Fall 2006 Shortest Path Routing, Slide 17

Questions About Path Vector How do we ensure no loops? When a node updates its paths, it never accepts a path that has itself What happens when a node hears multiple paths to the same destination? It picks the better path (e.g., the shorter number of hops) What happens if the graph changes? Algorithm deals well with new links To deal with links that go down, each router should discard any path that a neighbor stops advertising 6.082 Fall 2006 Shortest Path Routing, Slide 18

Hierarchical Routing Interior router Border router domain-1 domain-3 domain-2 Internet: collection of domains/networks Inside a domain: Route over a graph of routers Between domains: Route over a graph of domains Address: concatenation of Domain Id, Node Id 6.082 Fall 2006 Shortest Path Routing, Slide 19

Advantage scalable Smaller tables Smaller messages Delegation Each domain can run its own routing protocol Hierarchical Routing Disadvantage Mobility is difficult Address depends on geographic location Sup-optimal paths E.g., in the figure, the shortest path between the two machines should traverse the yellow domain. But hierarchical routing goes directly between the green and blue domains, then finds the local destination path traverses more routers. 6.082 Fall 2006 Shortest Path Routing, Slide 20

Proof of BFS correctness 6.082 Fall 2006 Shortest Path Routing, Slide 21

Shortest paths Define shortest-path distance δ(s,v) from s to v as the minimum number of edges in any path from vertex s to vertex v. If there is no path from s to v, δ(s,v) =. A path of length δ(s,v) from s to v is said to be a shortest path. Claim: BFS computes shortest-path distances, i.e., after running BFS(G,s), dist[v] = δ(s,v). We ll need to prove a couple of properties about shortest paths before we can prove the claim above 6.082 Fall 2006 Shortest Path Routing, Slide 22

Proof by contradiction Proof techniques Usually trying to prove X is true for all Y. Hypothesize that s not true: There exists a Y for which is X is not true Reason forward from the hypothesis, arriving at a contradiction Conclude that the hypothesis is false and hence the original statement must be true. Proof by induction on a sequence of steps Create an induction hypothesis related to the statement you re trying to prove it should be an invariant that will be maintained by each step of the process (Basis) Show hypothesis is true after the first step (Induction step) Assume hypothesis is true after step N, show it s true after step N+1 Conclude hypothesis is true for all N 6.082 Fall 2006 Shortest Path Routing, Slide 23

Lemma 1 Lemma 1: Let G = (V,E) be a directed or undirected graph, and let s V be an arbitrary vertex. Then for any edge (u,v) E, Proof δ(s,v) δ(s,u) + 1 if u is not reachable from s, δ(s,u) =, and the inequality holds. If u is reachable from s, then so is v. The shortest path from s to v cannot be longer than the shortest path from s to u followed by the edge (u,v), and thus the inequality holds. 6.082 Fall 2006 Shortest Path Routing, Slide 24

Lemma 2 Lemma 2: Let G = (V,E) be a directed or undirected graph, and let s V be an arbitrary vertex. Then after running BFS(G,s), for each v V dist[v] δ(s,v) Proof: If v is not reachable from s, then during initialization dist[v] = = δ(s,v). Otherwise, we proceed by induction on the number of Q.put operations. Our inductive hypothesis is that dist[v] δ(s,v) for each v V. Basis: Just after Q.put(s), dist[s] = 0 = δ(s,s), and dist[v s]=. Induction step: consider a white vertex v discovered during search from vertex u (i.e., there s an edge (u,v) E). Since u was just fetched from Q, the inductive hypothesis implies dist[u] δ(s,u). Thus just after Q.put(v) dist[v] = dist[u] + 1 - by assignment in BFS δ(s,u) + 1 - by inductive hypothesis δ(s,v) - by Lemma 1 6.082 Fall 2006 Shortest Path Routing, Slide 25

Lemma 3 Lemma 3: Suppose that during the execution of BFS on a graph G = (V,E), the queue Q contains the vertices <v 1, v 2,, v r > where v 1 is the head of Q and v r is the tail. Then dist[v r ] dist[v 1 ] + 1, and d[v i ] d[v i +1] for i = 1, 2,, r-1 In words: there are at most two distinct distances for nodes in the queue at any given time and that nearer nodes have been enqueued before nodes that are further away. Proof: by induction on the number of queue operations. Basis: initially the queue contains only s and the lemma is trivially true. Induction step: prove lemma after both dequeuing and enqueuing a vertex. 6.082 Fall 2006 Shortest Path Routing, Slide 26

Proof of Lemma 3 (cont d.) After dequeuing: After the head v 1 has been dequeued, v 2 becomes the new head. By inductive hypothesis dist[v 1 ] dist[v 2 ] and dist[v r ] dist[v 1 ]+1. Putting the two facts together, dist[v r ] dist[v 2 ] + 1 and the remaining inequalities are unaffected. Thus the lemma holds with v 2 as the head. After enqueuing: We perform enqueuing operations while searching the adjacency list of a node u that was just dequeued. By the inductive hypothesis, we know the relationships between dist[u] and the current contents of the queue: dist[u] dist[v 1 ] and dist[v r ] dist[u]+1. When we enqueue a white neighbor of u it becomes v r+1. BFS sets dist[v r+1 ] = dist[u]+1, and so dist[v r+1 ] dist[v 1 ]+1 and dist[v r ] dist[v r+1 ]. The remaining inequalities are unaffected and the thus the lemma holds with v r+1 as the tail. Corollary 4: If v i is enqueued before v j, then dist[v i ] dist[v j ] 6.082 Fall 2006 Shortest Path Routing, Slide 27

Theorem: Correctness of BFS Theorem 5: Let G = (V,E) be a directed or undirected graph, and let s V be an arbitrary vertex. Then after running BFS(G,s) BFS discovers every vertex v V that is reachable from s Upon termination dist[v] = δ(s,v) For every reachable v s, one of the shortest paths from s to v is a shortest path from s to parent[v] followed by the edge (parent[v],v). Proof: Assume, for the purpose of contradiction, that there is some vertex v with the minimum δ(s,v) that is assigned a distance that is not equal to δ(s,v). By Lemma 2, dist[v] > δ(s,v). Vertex v must be reachable from s, for if it is not, δ(s,v) = dist[v]. Let u be the vertex immediately before v on a shortest path from s to v, so that δ(s,v) = δ(s,u) + 1. Because δ(s,u) < δ(s,v), and because of how we chose v, we have dist[u] = δ(s,u). Putting this together: dist[v] > δ(s,v) = δ(s,u) + 1 = dist[u]+1 [5.1] 6.082 Fall 2006 Shortest Path Routing, Slide 28

Proof of Theorem 5 (cont d.) Now consider the time when u is dequeued during BFS. At that time v is either white, gray or black. v is white: then BFS will set dist[v] = dist[u]+1, contradicting [5.1] v is black: then v has already been removed from the queue and, by Corollary 4, dist[v] dist[u], contradicting [5.1] v is gray: then it was painted gray upon dequeuing some other node w which dequeued before u. BFS has set dist[v] = dist[w]+1. But by Corollary 4, dist[w] dist[u], so we have dist[v] dist[u]+1, again contradicting [5.1]. Thus we conclude that dist[v] = δ(s,v). We must have processed all discoverable nodes, otherwise they d have infinite dist values. Finally if parent[v] = u, then dist[v] = dist[u]+1. So a shortest path to v is obtained by a shortest path to u followed by the edge (parent[v],v). 6.082 Fall 2006 Shortest Path Routing, Slide 29