Download presentation

Presentation is loading. Please wait.

Published byGabriella Gulsby Modified over 6 years ago

1
**Lecture 7 March 1, 11 discuss HW 2, Problem 3**

02/16/11 02/16/11 Lecture March 1, 11 discuss HW 2, Problem 3 strong connectivity algorithm using BFS topological sorting and its applications Chapter 4 (start) Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 1

2
02/16/11 02/16/11 Flood Fill Flood fill. Given lime green pixel in an image, change color of entire blob of neighboring lime pixels to blue. Node: pixel. Edge: two neighboring lime pixels. Blob: connected component of lime pixels. recolor lime green blob to blue Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 2

3
**Flood Fill Node: pixel. Edge: two neighboring lime pixels.**

02/16/11 02/16/11 Flood Fill Flood fill. Given lime green pixel in an image, change color of entire blob of neighboring lime pixels to blue. Node: pixel. Edge: two neighboring lime pixels. Blob: connected component of lime pixels. recolor lime green blob to blue Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 3

4
**BFS algorithm to perform flood-fill**

02/16/11 BFS algorithm to perform flood-fill void changeColor(int j, int k, color NewColor) { Set visited[j,k] = false for all j,k; Initialize a queue Q; color currentColor = color of pixel at Image(j, k); insert([j,k]) into Q; visited[j,k] = true; while (Q is not empty) { p = delete(Q); let x = p -> getx(); y = p -> gety(); color[x,y] = NewColor; for each neighbor n of p do if (color[n] == currentColor && !visited[n]) { visited[n] = true; insert(n) into Q; } // end if } // end for; } //end while; } // end changeColor Copyright 2000, Kevin Wayne

5
02/16/11 02/16/11 Strong Connectivity Def. Node u and v are mutually reachable if there is a path from u to v and also a path from v to u. Def. A graph is strongly connected if every pair of nodes is mutually reachable. Lemma. Let s be any node. G is strongly connected iff every node is reachable from s, and s is reachable from every node. Pf. Follows from definition. Pf. Path from u to v: concatenate u-s path with s-v path Path from v to u: concatenate v-s path with s-u path. ▪ Theorem. [Tarjan 1972] Can decompose a graph into its "strong components" in O(m + n) time. ok if paths overlap s u v Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 5

6
**Strong Connectivity: Algorithm**

02/16/11 02/16/11 Strong Connectivity: Algorithm Theorem. Can determine if G is strongly connected in O(m + n) time. Pf. Pick any node s. Run BFS from s in G. Run BFS from s in Grev. Return true iff all nodes reached in both BFS executions. Correctness follows immediately from previous lemma. reverse orientation of every edge in G Theorem. [Tarjan 1972] Can decompose a graph into its "strong components" in O(m + n) time. strongly connected not strongly connected Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 6

7
**3.6 DAGs and Topological Ordering**

02/16/11 02/16/11 Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 7

8
**Directed Acyclic Graphs**

02/16/11 02/16/11 Directed Acyclic Graphs Def. An DAG is a directed graph that contains no directed cycles. Ex. Precedence constraints: edge (vi, vj) means vi must precede vj. Def. A topological order of a directed graph G = (V, E) is an ordering of its nodes as v1, v2, …, vn so that for every edge (vi, vj) we have i < j. v2 v3 v6 v5 v4 v1 v2 v3 v4 v5 v6 v7 v7 v1 a topological ordering a DAG Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 8

9
**Precedence Constraints**

02/16/11 02/16/11 Precedence Constraints Precedence constraints. Edge (vi, vj) means task vi must occur before vj. Applications. Clock-speed determination in combinational circuit Scheduling to maximize profit Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 9

10
**Directed Acyclic Graphs**

02/16/11 02/16/11 Directed Acyclic Graphs Lemma. If G has a topological order, then G is a DAG. Pf. (by contradiction) Suppose that G has a topological order v1, …, vn and that G also has a directed cycle C. Let's see what happens. Let vi be the lowest-indexed node in C, and let vj be the node just before vi; thus (vj, vi) is an edge. By our choice of i, we have i < j. On the other hand, since (vj, vi) is an edge and v1, …, vn is a topological order, we must have j < i, a contradiction. ▪ the directed cycle C v1 vi vj vn the supposed topological order: v1, …, vn Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 10

11
**Directed Acyclic Graphs**

02/16/11 02/16/11 Directed Acyclic Graphs Lemma. If G has a topological order, then G is a DAG. Q. Does every DAG have a topological ordering? Q. If so, how do we compute one? Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 11

12
**Directed Acyclic Graphs**

02/16/11 02/16/11 Directed Acyclic Graphs Lemma. If G is a DAG, then G has a node with no incoming edges. Pf. (by contradiction) Suppose that G is a DAG and every node has at least one incoming edge. Let's see what happens. Pick any node v, and begin following edges backward from v. Since v has at least one incoming edge (u, v) we can walk backward to u. Then, since u has at least one incoming edge (x, u), we can walk backward to x. Repeat until we visit a node, say w, twice. Let C denote the sequence of nodes encountered between successive visits to w. C is a cycle. ▪ w x u v Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 12

13
**Directed Acyclic Graphs**

02/16/11 02/16/11 Directed Acyclic Graphs Lemma. If G is a DAG, then G has a topological ordering. Pf. (by induction on n) Base case: true if n = 1. Given DAG on n > 1 nodes, find a node v with no incoming edges. G - { v } is a DAG, since deleting v cannot create cycles. By inductive hypothesis, G - { v } has a topological ordering. Place v first in topological ordering; then append nodes of G - { v } in topological order. This is valid since v has no incoming edges. ▪ DAG v Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 13

14
**Topological Sorting Algorithm: Running Time**

02/16/11 02/16/11 Topological Sorting Algorithm: Running Time Theorem. Algorithm finds a topological order in O(m + n) time. Pf. Maintain the following information: count[w] = remaining number of incoming edges S = set of remaining nodes with no incoming edges Initialization: O(m + n) via single scan through graph. Update: to delete v remove v from S decrement count[w] for all edges from v to w, and add w to S if c count[w] hits 0 this is O(1) per edge ▪ Alternative. Order nodes in reverse order that DFS finishes visiting them. Copyright 2000, Kevin Wayne Copyright 2000, Kevin Wayne 14

15
**Application to circuit problem**

Recall the problem of estimating the maximum delay in a combinational circuit. Step 1: model this problem as that of finding the longest path in a weighted, acyclic graph. Step 2: perform topological sorting on vertices. Suppose one such vertex labeling is v1, v2, …, vn. Then the maximum delay can be calculated as follows: assume that the delay has been calculated for the first j vertices. Then, delay(vj+1) = max { delay(vi1) + w(vj+1, vi1 ), delay(vi2) + w(vj+1 , vi2) + … } where vi1, vi2 , …, are the out-edges of vertex vj+1

16
**Summary of Chapter 3 graph models are widely used.**

Road networks, computer networks, social networks biological networks, electrical networks, etc. Scheduling problems, image processing, computer vision, etc. DFS and BFS are two fundamental ways to explore a graph. Can be used to determine all reachable vertices from a starting vertex, test if a graph is (strongly) connected etc. flood-fill, OCR and many other applications Topological sorting- ordering vertices in acyclic graph Application to clock speed in combinational circuit

Similar presentations

© 2021 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google