Lecture 14 CSE 331 Sep 30, 2016.

Slides:



Advertisements
Similar presentations
Graph.
Advertisements

Lecture 16 CSE 331 Oct 9, Announcements Hand in your HW4 Solutions to HW4 next week Remember next week I will not be here so.
Lecture 12 CSE 331 Sep 30, Announcements Final exam: Dec 16, 11:45am-2:45pm, NSC 210 HW 2 solutions at the end of the lecture Mid term: Oct 16,
Lecture 15 CSE 331 Oct 7, Mid-term stuff Chapters 1-3 in [KT] Sample mid-term (and graded HW3) at the END of class The web version has the correct.
Lecture 14 CSE 331 Oct 5, Extra lectures on proofs Tuesday 5-6pm (Jeff) Wednesday 4:30-6pm (Atri) Commons 9 Prefer my name to Professor/Dr. Rudra.
Lecture 18 CSE 331 Oct 11, Mid term Next Monday in class.
Lecture 13 CSE 331 Oct 2, Announcements Mid term in < 2 weeks Graded HW2 at the END of the class.
CSE 331: Review. Main Steps in Algorithm Design Problem Statement Algorithm Real world problem Problem Definition Precise mathematical def “Implementation”
CSE 421 Algorithms Richard Anderson Autumn 2015 Lecture 5.
Data Structures & Algorithm Analysis lec(8):Graph T. Souad alonazi
Breadth-First Search (BFS)
Lecture 16 CSE 331 Oct 5, 2011.
Topological Sorting.
CSE 373 Topological Sort Graph Traversals
Lecture 11 Graph Algorithms
Graph Algorithms BFS, DFS, Dijkstra’s.
CSE 2331/5331 Topic 9: Basic Graph Alg.
Csc 2720 Instructor: Zhuojun Duan
Lecture 12 Graph Algorithms
Lecture 20 CSE 331 Oct 15, 2010.
Lecture 15 CSE 331 Oct 3, 2016.
Lecture 16 CSE 331 Oct 5, 2016.
Depth-First Search.
CS120 Graphs.
More Graph Algorithms.
Graph.
Graph Algorithm.
Lecture 15 CSE 331 Oct 5, 2012.
Lecture 15 CSE 331 Sep 29, 2014.
Lecture 15 CSE 331 Oct 3, 2016.
Graphs Chapter 15 explain graph-based algorithms Graph definitions
Lecture 12 CSE 331 Sep 26, 2016.
Lecture 12 CSE 331 Sep 25, 2017.
"Learning how to learn is life's most important skill. " - Tony Buzan
Lecture 14 CSE 331 Sep 30, 2011.
Lecture 17 CSE 331 Oct 10, 2012.
Lecture 13 CSE 331 Oct 1, 2012.
Chapter 22: Elementary Graph Algorithms I
Graph Representation (23.1/22.1)
What is a Graph? a b c d e V= {a,b,c,d,e} E= {(a,b),(a,c),(a,d),
Lecture 13 CSE 331 Sep 27, 2017.
Lecture 16 CSE 331 Oct 4, 2017.
Lecture 13 CSE 331 Sep 24, 2013.
Richard Anderson Autumn 2016 Lecture 5
Lecture 19 CSE 331 Oct 13, 2010.
Lecture 14 CSE 331 Oct 3, 2012.
Lecture 12 CSE 331 Sep 28, 2012.
Lecture 12 CSE 331 Sep 26, 2011.
Lecture 14 CSE 331 Sep 29, 2017.
Lecture 16 CSE 331 Oct 8, 2012.
Lecture 16 CSE 331 Oct 2, 2013.
Graph Algorithms "A charlatan makes obscure what is clear; a thinker makes clear what is obscure. " - Hugh Kingsmill CLRS, Sections 22.2 – 22.4.
Lecture 15 CSE 331 Oct 3, 2011.
Depth-First Search CSE 2011 Winter April 2019.
Lecture 11 CSE 331 Sep 19, 2014.
Lecture 11 CSE 331 Sep 21, 2017.
Lecture 12 CSE 331 Sep 22, 2014.
Lecture 17 CSE 331 Oct 7, 2011.
GRAPHS G=<V,E> Adjacent vertices Undirected graph
CSE 417: Algorithms and Computational Complexity
Lecture 11 CSE 331 Sep 22, 2016.
Important Problem Types and Fundamental Data Structures
Richard Anderson Winter 2019 Lecture 6
Lecture 15 CSE 331 Oct 4, 2010.
Analysis and design of algorithm
Lecture 10 Graph Algorithms
Lecture 11 Graph Algorithms
Richard Anderson Winter 2019 Lecture 5
Lecture 13 CSE 331 Sep 28, 2016.
Richard Anderson Autumn 2015 Lecture 6
Presentation transcript:

Lecture 14 CSE 331 Sep 30, 2016

Peer Notetaker needed

Mini Project Pitch due WED Form your group on Autolab BEFORE submitting your pitch Do not forget to add URL to your references

HW 4 is now posted

Today’s agenda Run-time analysis of BFS (DFS)

Stacks and Queues Last in First out First in First out

Graph representations 1 Better for sparse graphs and traversals Adjacency matrix Adjacency List (u,v) in E? O(1) O(n) [ O(nv) ] All neighbors of u? O(n) O(nu) O(n2) Space? O(m+n)

Questions?

2 # edges = sum of # neighbors 2m = Σ u in V nu Rest of the graph Give 2 pennies to each edge Total # of pennies = 2m nv=3 u nu=4 v Each edges gives one penny to its end points # of pennies u receives = nu

Breadth First Search (BFS) Build layers of vertices connected to s L0 = {s} Assume L0,..,Lj have been constructed Lj+1 set of vertices not chosen yet but are connected to Lj Use CC[v] array Stop when new layer is empty Use linked lists

Rest of Today’s agenda Quick run time analysis for BFS Quick run time analysis for DFS (and Queue version of BFS) Helping you schedule your activities for the day

O(m+n) BFS Implementation Input graph as Adjacency list BFS(s) Array CC[s] = T and CC[w] = F for every w≠ s Set i = 0 Set L0= {s} While Li is not empty Linked List Li+1 = Ø For every u in Li For every edge (u,w) Version in KT also computes a BFS tree If CC[w] = F then CC[w] = T Add w to Li+1 i++

All layers are considered in first-in-first-out order All the layers as one BFS(s) All layers are considered in first-in-first-out order CC[s] = T and CC[w] = F for every w≠ s Set i = 0 Set L0= {s} While Li is not empty Li+1 = Ø For every u in Li Can combine all layers into one queue: all the children of a node are added to the end of the queue For every edge (u,w) If CC[w] = F then CC[w] = T Add w to Li+1 i++

An illustration 1 2 3 4 5 7 8 6 1 7 2 3 8 4 5 6

Queue O(m+n) implementation BFS(s) CC[s] = T and CC[w] = F for every w≠ s O(n) Intitialize Q= {s} O(1) Σu O(nu) = O(Σu nu) = O(m) While Q is not empty Repeated at most once for each vertex u Delete the front element u in Q For every edge (u,w) O(nu) Repeated nu times O(1) If CC[w] = F then O(1) CC[w] = T Add w to the back of Q

Questions?

Implementing DFS in O(m+n) time Same as BFS except stack instead of a queue

A DFS run using an explicit stack 7 8 1 7 7 6 3 2 3 5 8 4 4 5 5 3 6 2 3 1

DFS stack implementation CC[s] = T and CC[w] = F for every w≠ s Same O(m+n) run time analysis as for BFS Intitialize Ŝ = {s} While Ŝ is not empty Pop the top element u in Ŝ For every edge (u,w) If CC[w] = F then CC[w] = T Push w to the top of Ŝ

Questions?

Reading Assignment Sec 3.3, 3.4 and 3.5 of [KT]

Directed graphs Model asymmetric relationships Precedence relationships u needs to be done before w means (u,w) edge

Directed graphs Adjacency matrix is not symmetric Each vertex has two lists in Adj. list rep.

Directed Acyclic Graph (DAG) No directed cycles Precedence relationships are consistent

Topological Sorting of a DAG Order the vertices so that all edges go “forward”