Logistics Quizzes Quiz 5: 74% Other quizzes: ~98% Ill drop lowest - - PowerPoint PPT Presentation

logistics
SMART_READER_LITE
LIVE PREVIEW

Logistics Quizzes Quiz 5: 74% Other quizzes: ~98% Ill drop lowest - - PowerPoint PPT Presentation

Logistics Quizzes Quiz 5: 74% Other quizzes: ~98% Ill drop lowest 2 quizzes HW HW 2 back: average 44.9/50, 5.2 hours HW 3 due HW 4 out tonight No reading for Thursday Questions? Today BFS/DFS Connected components Bipartite testing


slide-1
SLIDE 1

Logistics

Quizzes Quiz 5: 74% Other quizzes: ~98% I’ll drop lowest 2 quizzes HW HW 2 back: average 44.9/50, 5.2 hours HW 3 due HW 4 out tonight No reading for Thursday

Questions?

slide-2
SLIDE 2

Today

BFS/DFS Connected components Bipartite testing Directed Graphs

slide-3
SLIDE 3

Connected Components

Definitions, example, proof on board

slide-4
SLIDE 4

“Meta”-BFS algorithm

while there is an unexplored node s BFS(s) end Example Running time? argue O(m+n) running time on board

slide-5
SLIDE 5

Representing Graphs: Adjacency List

Adjacency list. Each node keeps a (linked) list of neighbors. Find all edges incident to u: O(nu)

1 3 5 4 2

1 2 3 4 5 2 4 5 1 3 4 2 5 1 2 1 3

slide-6
SLIDE 6

Running Time?

Set explored[u] to be false for all u A = { s } /

/ set of discovered but not explored nodes

while A is not empty Take a node u from A if explored[u] is false set explored[u] = true for each edge (u,v) incident to u add v to A end end end

Same reasoning we just did: but now “charge” each line of code to either a node or an edge

O(n) O(m) O(m) O(m) O(n)

slide-7
SLIDE 7

Graph Traversal: Summary

BFS/DFS: O(n+m) Is G connected? Find connected components of G Find distance of every vertex from source Get BFS/DFS trees (useful in some other problems) BFS: explore by distance, layers, queue DFS: explore deeply, recursive, stack

slide-8
SLIDE 8

Application of BFS: Bipartite Testing

slide-9
SLIDE 9

Bipartite Graphs

A bipartite graph is an undirected graph G = (V, E) in which the nodes can be colored red or blue such that every edge has one red and one blue end.

is a bipartite graph is NOT a bipartite graph

Examples? How can we check if a given graph is bipartite?

slide-10
SLIDE 10

Simple Observation: Odd Cycles

  • Lemma. If G has a cycle of odd length, then G

is not bipartite Proof on board

slide-11
SLIDE 11

BFS and Bipartite Graphs

  • Lemma. Let G be a connected graph, and let L0, …, Lk be the

layers produced by BFS starting at node s. Exactly one of the following holds: (i) No edge of G joins two nodes of the same layer, and G is bipartite. (ii) An edge of G joins two nodes of the same layer, and G contains an odd-length cycle (and hence is not bipartite).

slide-12
SLIDE 12

Layer 1 Layer 2 Layer 3 Layer 4 Layer 0

BFS and Bipartite Graphs

  • Lemma. Let G be a connected graph, and let L0, …, Lk be the

layers produced by BFS starting at node s. Exactly one of the following holds: (i) No edge of G joins two nodes of the same layer, and G is bipartite. (ii) An edge of G joins two nodes of the same layer, and G contains an odd-length cycle (and hence is not bipartite).

slide-13
SLIDE 13

BFS and Bipartite Graphs

Layer 1 Layer 2 Layer 3 Layer 4 Layer 0

  • Lemma. Let G be a connected graph, and let L0, …, Lk be the

layers produced by BFS starting at node s. Exactly one of the following holds: (i) No edge of G joins two nodes of the same layer, and G is bipartite. (ii) An edge of G joins two nodes of the same layer, and G contains an odd-length cycle (and hence is not bipartite).

slide-14
SLIDE 14

Algorithm for Bipartite-Testing

Run BFS Check each non-tree edge If any has endpoints in same layer, then G is not bipartite Otherwise, G is bipartite Running Time?