Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from...

44
Graph Search Methods Spring 2007 CSE, POSTECH

Transcript of Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from...

Page 1: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Graph Search Methods

Spring 2007CSE, POSTECH

Page 2: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Graph Search Methods

A vertex u is reachable from vertex v iff there is a path from v to u.

A search method starts at a given vertex v and visits/labels/marks every vertex that is reachable from v.

23

5

4

1

8

9

67

11

10

Page 3: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Graph Search Methods

Many graph problems solved by a search method– Finding a path from one vertex to another.– Determining whether a graph is connected– Find a spanning tree– Finding a minimum-cost path/spanning tree

Commonly used search methods– Breadth-first search (BFS)– Depth-first search (DFS)

Page 4: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search (BFS) Algorithm

BFS algorithm is the method of starting at a vertex and identifying all vertices reachable from it

Read Section 16.8.1 and the pseudo-code of BFS in Figure 16.7

Similar to the level-order traversal of a binary tree

Page 5: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search (BFS) Algorithm

Visit the starting vertex and put into a FIFO queue Repeatedly remove a vertex from the queue,

visit its unvisited adjacent vertices,put newly visited vertices into the queue

All vertices reachable from the start vertex (including the start vertex) are visited

When the queue becomes empty, the search is terminated

Page 6: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Start search at vertex 1.

23

5

4

1

8

9

67

11

10

Page 7: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Mark/label start vertex and put in a FIFO queue. Remove 1 from Queue;

Visit adjacent unvisited vertices;Put the visited vertices in Queue.

23

5

4

1

8

9

67

11

10

FIFO queue1

Page 8: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Remove 2 from Queue;Visit adjacent unvisited vertices;Put the visited vertices in Queue.

Are there any newly visited vertices?

23

5

4

1

8

9

67

11

10

FIFO queue2 4

Page 9: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Remove 4 from Queue;Visit adjacent unvisited vertices;Put the visited vertices in Queue.

Are there any newly visited vertices?

23

5

4

1

8

9

67

11

10

FIFO queue4 5 3 6

Page 10: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Remove 5 from Queue;Visit adjacent unvisited vertices;Put the visited vertices in Queue.

Are there any newly visited vertices?

23

5

4

1

8

9

67

11

10

FIFO queue5 3 6

Page 11: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Remove 3 from Queue;Visit adjacent unvisited vertices;Put the visited vertices in Queue.

Are there any newly visited vertices?

23

5

4

1

8

9

67

11

10

FIFO queue3 6 9 7

Page 12: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Remove 6 from Queue;Visit adjacent unvisited vertices;Put the visited vertices in Queue.

Are there any newly visited vertices?

23

5

4

1

8

9

67

11

10

FIFO queue6 9 7

Page 13: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Remove 9 from Queue;Visit adjacent unvisited vertices;Put the visited vertices in Queue.

Are there any newly visited vertices?

23

5

4

1

8

9

67

11

10

FIFO queue9 7

Page 14: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Remove 7 from Queue;Visit adjacent unvisited vertices;Put in Queue.

23

5

4

1

8

9

67

11

10

FIFO queue7 8

Page 15: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

23

5

4

1

8

9

67

11

10

FIFO queue8

Remove 8 from Queue;Visit adjacent unvisited vertices;Put in Queue.

Page 16: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

Queue is empty, thus the search terminates.

23

5

4

1

8

9

67

11

10

FIFO queue

Page 17: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Search Example

What was the order of visited vertices?

1, 2, 4, 5, 3, 6, 9, 7, 8 What is the subgraph formed by the edges used to reach n

ew vertices during the BFS? 2

3

5

4

1

8

9

67

Page 18: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Time Complexity

Each visited vertex is put on the queue exactly once. When a vertex is removed from the queue,

we examine its adjacent vertices.– O(n) if adjacency matrix used.– O(vertex degree) if adjacency lists used.

Total time– O(n2) if adjacency matrix used– O(n+e) if adjacency lists used

where e is the sum of vertex degrees andtherefore e is also the number of edges.

Page 19: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Path Finding Problem from vertex u to vertex v

Start a breadth-first search at vertex u. Terminate if either of the following occurs

– successfully when vertex v is visited or– unsuccessfully when queue becomes empty but v is not visited

Time– O(n2) when adjacency matrix used– O(n+e) when adjacency lists used

(e is number of edges)

Page 20: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Is a Graph Connected?

Start a breadth-first search at any vertex of the graph. A graph is connected iff all n vertices are visited. Time

– O(n2) when adjacency matrix used– O(n+e) when adjacency lists used

(e is number of edges)

Page 21: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Connected Components

Start a breadth-first search at any unvisited vertex of the graph.

Newly visited vertices (plus edges between them)define a component.

Repeat until all vertices are visited. Time

– O(n2) when adjacency matrix used– O(n+e) when adjacency lists used

(e is number of edges)

Page 22: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Connected Components

23

5

4

1

8

9

67

11

10

Page 23: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breath-First Spanning Tree

Start a breadth-first search at any vertex of the graph. If a graph is connected, the n-1 edges used to get to

unvisited vertices define a spanning tree breadth-first spanning tree

Time– O(n2) when adjacency matrix used– O(n+e) when adjacency lists used

(e is number of edges)

Page 24: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Breadth-First Spanning Tree

Digraph Example BF Spanning Tree of Digraph (a)

Page 25: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Depth-First Search (DFS) Algorithm

DFS algorithm is an alternative to BFS Similar to the pre-order traversal of a binary tree See Figure 16.18 for the pseudo-code of DFS

Page 26: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Visit the starting vertex v and mark it as reached Select an unreached vertex u adjacent from v If such a vertex does not exist, the search terminates, other

wise a depth-first search from u is initiated When this search is completed, we select another unreach

ed vertex adjacent to from v If such a vertex does not exist, then the search terminates,

otherwise a depth-first search starts from this vertex and so on…..

Depth-First Search (DFS) Algorithm

Page 27: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Start search at vertex 1. Label vertex 1 as reached and do a depth-first search

from either 2 or 4.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 28: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Label vertex 2 and do a depth-first searchfrom either 3, 5 or 6.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 29: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Label vertex 5 and do a depth-first searchfrom either 3, 7 or 9.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 30: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Label vertex 9 and do a depth-first searchfrom either 6 or 8.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 31: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Label vertex 8 and return to vertex 9. From vertex 9 do a DFS(6).

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 32: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Label vertex 6 and do a depth-first searchfrom either 4 or 7.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 33: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Label vertex 4 and return to 6. From vertex 6 do a DFS(7).

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 34: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Label vertex 7 and return to 6. Return to 9.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 35: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Return to 5.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 36: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Do a DFS(3).

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 37: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Label 3 and return to 5. Return to 2. Return to 1.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 38: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

DFS is done and return to invoking method.

23

5

4

1

8

9

67

11

10

Depth-First Search Example

Page 39: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Depth-First Search Example

What was the order of visited vertices?

1, 2, 5, 9, 8, 6, 4, 7, 3 What is the subgraph formed by the edges used to reach n

ew vertices during the BFS? 2

3

5

4

1

8

9

67

Page 40: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Same complexity as BFS. Same properties with respect to path finding,

connected components, and spanning trees. Edges used to reach unlabeled vertices

define a depth-first spanning treewhen the graph is connected.

Depth-First Search Properties

Page 41: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

1

2

6

4

5

37

10

28

1416

25 24

22

1812

Exercise 16.41 – for graph of Figure 16.4(a)

Draw a linked adjacency-list representation

Starting from vertex 4, the order of visited vertices using BFS are?

Show the subgraph formed in part (b)

Redo parts (b) & (c) using DFS

Page 42: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

(a) Draw a linked adjacency-list representation

Exercise 16.41 – solution (a) & (b)

(b) Starting from vertex 4, the order of visited vertices are

4,3,5,7,2,6,1

Page 43: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

(c) Show the subgraph formed in part (b)

Exercise 16.41 – solution (c) & (d)

(d) Redo parts (b) & (c) using DFS

DFS order: 4,3,2,1,6,5,7

Page 44: Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.

Do Exercise 16.41 using Figure 16.16(a) starting from vertex 1

Read Chapter 16

READING