Download presentation

Presentation is loading. Please wait.

Published byGabriella Gulsby Modified over 2 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

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google