Presentation is loading. Please wait.

Presentation is loading. Please wait.

Connected components and graph traversal Prof. Noah Snavely CS1114

Similar presentations


Presentation on theme: "Connected components and graph traversal Prof. Noah Snavely CS1114"— Presentation transcript:

1 Connected components and graph traversal Prof. Noah Snavely CS1114 http://cs1114.cs.cornell.edu

2 2 Administrivia  Assignment 2 is out –First part due tomorrow by 5pm –Second part due next Friday by 5pm  First prelim will be in two weeks –Thursday, February 26, in class

3 3 What is a graph?  Loosely speaking, a set of things that are paired up in some way  Precisely, a set of vertices V and edges E –Vertices sometimes called nodes –An edge (or link) connects a pair of vertices V1 V2 V3 V4 V5 V = { V1, V2, V3, V4, V5 } E = { (V1,V3), (V2,V5), (V3,V4) }

4 Images as graphs 4

5 5

6 6

7 More graph problems 7

8 8 Hamiltonian & Eulerian cycles  Two questions that are useful for problems such as mailman delivery routes  Hamiltonian cycle: –A cycle that visits each vertex exactly once (except the start and end)  Eulerian cycle: –A cycle that uses each edge exactly once

9 Hamiltonian & Eulerian cycles 9 V5 V1 V2 V4V3 V10 V6 V7 V9V8  Is it easier to tell if a graph has a Hamiltonian or Eulerian cycle?

10 10 Planarity testing  A graph is planar if you can draw it without the edges crossing –It’s OK to move the edges or vertices around, as long as edges connect the same vertices V1 V2 V3 V4 V5

11 11  Is this graph planar? V1V2V3V4V5V6  Can you prove it?

12 12 Four-color theorem  Any planar graph can be colored using no more than 4 colors

13 “Small world” phenomenon (Six degrees of separation)  How close together are nodes in a graph (e.g., what’s the average number of hops connecting pairs of nodes?) 13  Milgram’s small world experiment: Send postcard to random person A in Omaha; task is to get it to a random person B in Boston If A knows B, send directly Otherwise, A sends to someone A knows who is most likely to know B People are separated by 5.5 links on average

14 14 Friend wheel

15 Another graph 15

16 Graph of Flickr images 16 Flickr images of the Pantheon, Rome (built 126 AD) Images are matched using visual features

17 Image graph of the Pantheon 17

18 18 Connected components  Even if all nodes are not connected, there will be subsets that are all connected –Connected components –Component 1: { V1, V3, V5 } –Component 2: { V2, V4 } V5 V4 V1 V3 V2

19 Blobs are components! 19

20 20 Blobs are components! A0000000B0 00000000C0 0000000000 0000000000 0000D00000 000EFG0000 000H000000 0000000000 0000000000 0000000000 A C B D F E H G

21 21 Finding blobs 1.Pick a 1 to start with, where you don’t know which blob it is in –When there aren’t any, you’re done 2.Give it a new blob color 3.Assign the same blob color to each pixel that is part of the same blob

22 22 Finding components 1.Pick a 1 to start with, where you don’t know which component it is in –When there aren’t any, you’re done 2.Give it a new component color 3.Assign the same component color to each pixel that is part of the same component –Basic strategy: color any neighboring 1’s, have them color their neighbors, and so on

23 23 Coloring a component 1000000010 0000000010 0000000000 0000000000 0000100000 0001110000 0001110000 0001110000 0001110000 0000000000

24 24 Coloring a component 1000000010 0000000010 0000000000 0000000000 0000100000 0001110000 0001110000 0001110000 0001110000 0000000000

25 25 Coloring a component 1000000010 0000000010 0000000000 0000000000 0000100000 0001110000 0001110000 0001110000 0001110000 0000000000

26 26 Coloring a component 1000000010 0000000010 0000000000 0000000000 0000100000 0001110000 0001110000 0001110000 0001110000 0000000000

27 27 Strategy  For each vertex we visit, we color its neighbors and remember that we need to visit them at some point –Need to keep track of the vertices we still need to visit in a todo list –After we visit a vertex, we’ll pick one of the vertices in the todo list to visit next

28 28 1000000010 0000000010 0000000000 0000000000 0000A00000 000BCD0000 000EFG0000 000HIJ0000 000KLM0000 0000000000 Current node: A Todo List: [ ]

29 29 1000000010 0000000010 0000000000 0000000000 0000A00000 000BCD0000 000EFG0000 000HIJ0000 000KLM0000 0000000000 Current node: A Todo List: [ C ] Done with A, choose next from Todo List

30 30 1000000010 0000000010 0000000000 0000000000 0000A00000 000BCD0000 000EFG0000 000HIJ0000 000KLM0000 0000000000 Current node: C Todo List: [ ]

31 31 1000000010 0000000010 0000000000 0000000000 0000A00000 000BCD0000 000EFG0000 000HIJ0000 000KLM0000 0000000000 Current node: C Todo List: [ B, F, D ]

32 32 1000000010 0000000010 0000000000 0000000000 0000A00000 000BCD0000 000EFG0000 000HIJ0000 000KLM0000 0000000000 Current node: B Todo List: [ F, D ]

33 33 1000000010 0000000010 0000000000 0000000000 0000A00000 000BCD0000 000EFG0000 000HIJ0000 000KLM0000 0000000000 Current node: B Todo List: [ F, D, E ]

34 34 Strategy  We need to keep track of the vertices we need to “visit” (possibly label with our blob number) –Although, by the time we get there, they may already have been labeled  Visit A, and label it –Need to visit its neighbors: B, C, D, E –Pick one to visit next, keep track of the rest Visit B, and label it Need to visit its neighbors X, Y Pick one to visit next, keep track of the rest

35 35 Graph traversal  Select an uncolored vertex, add it to the todo list  While the todo list is not empty –Remove a vertex V from the todo list –Add the uncolored neighbors of V to the todo list and color them

36 36 Stacks and Queues  One way to implement the todo list is as a stack –LIFO: Last In First Out –Think of a pile of trays in a cafeteria Trays at the bottom can stay there a while…  The alternative is a queue –FIFO: First In First Out –Think of a line of (well-mannered) people –First come, first served

37 Next time  More on stacks and queues 37


Download ppt "Connected components and graph traversal Prof. Noah Snavely CS1114"

Similar presentations


Ads by Google