You are on page 1of 113

FACULTY OF INFORMATION TECHNOLOGY

Fall, 2023

Discrete Mathematics
Lecture 11: Graph – Part 3
Search Algorithms

Ta Quang Hung
Part 1: Introduction

Graph Theory Part 2: Depth-First-Search (DFS)


Part 3: Breath-First-Search (BFS)
Part 4: Summary

Contents

1 Introduction
2 Depth-First-Search (DFS) Algorithm
3 Breadth-First-Search (BFS) Algorithm

4 Summary

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 2
Part 1: Introduction

Introduction Part 2: Depth-First-Search (DFS)


Part 3: Breath-First-Search (BFS)
Part 4: Summary

Search Algorithms
• Modern computing and the internet have made accessible a vast amount
of information. The ability to efficiently search through this information is
fundamental to processing it. This chapter describes classical searching
algorithms that have proven to be effective in numerous diverse
applications for decades. Without algorithms like these, the development
of the computational infrastructure that we enjoy in the modern world
would not have been possible.
• The term symbol table to describe an abstract mechanism where we
save information (a value) that we can later search for and retrieve by
specifying a key. The nature of the keys and the values depends upon
the application. There can be a huge number of keys and a huge amount
of information, so implementing an efficient symbol table is a significant
computational challenge.

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 3
Part 1: Introduction

Introduction Part 2: Depth-First-Search (DFS)


Part 3: Breath-First-Search (BFS)
Part 4: Summary

Search Algorithms (cont'd)


• Symbol tables are sometimes called dictionaries, by
analogy with the time-honored system of providing definitions
for words by listing them alphabetically in a reference book.
In an English-language dictionary, a key is a word and its
values is the entry associated with the word that contains the
definition, pronunciation, and etymology.
• Symbol tables are also sometimes called indices, by analogy
with another time-honored system of providing access to
terms by listing them alphabetically at the end of a book such
as a textbook. In a book index, a key is a term of interest and
its value is the list of page numbers that tell readers where to
find that term in the book.

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 4
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

Depth-First-Search (DFS) Algorithm


• DFS is a general technique for traversing a graph.
• A DFS traversal of a graph G
 Visit all the vertices and edges of G.
 Determines whether G is connected.
 Computes the connected components of G.
 Computes a spanning forest of G.
• DFS on a graph with n vertices and m edges take O(n+m)
time.
• DFS can be further extended to solve other graph problems
 Find and report a path between two given vertices.
 Find a cycle.

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 5
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm (contd.)


DepthFirstSearch(s)
FOR (u=0: u<n; u= u+1) % scan all nodes
reached[u] = false; % set reached nodes to false
P.push(s); % push node s to stack P
WHILE (!P.Empty()) % Do while P is not empty
{
u = P.Pop(); % get data from stack, assign to a variable u
IF (!reached[u]) % if u is not reached node, then do
{
reached[u] = true; % set u is reached node.
FOR (x=adjList[u].Begin; x!=null; x=x.succ) % scan all adjacent nodes of u
{
v = x.Data; % get data of every adjacent nodes
of u
P.Push(v); % then push to stack P.
} % finish scan all adjacent nodes of u

}
} Part 3: Graph Theory Discrete % stack
Mathematics
The University P is
of New empty,
South all nodes are
Wales Page 6
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7

3 4

Visited vertex
Unexplored vertex 0 1 2 3 4 5 6 7
Solving vertex

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 7
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
0

3 4

Visited vertex
Unexplored vertex 0 1 2 3 4 5 6 7
Solving vertex

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 8
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7

3 4

Visited vertex
Unexplored vertex 0 1 2 3 4 5 6 7
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 9
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7

3 4

Visited vertex 0
Unexplored vertex 1 2 3 4 5 6 7
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 10
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
2

3 4

Visited vertex 0
Unexplored vertex 1 2 3 4 5 6 7
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 11
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
3
2

3 4

Visited vertex 0
Unexplored vertex 1 2 3 4 5 6 7
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 12
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
5
3
2
3 4

Visited vertex 0
Unexplored vertex 1 2 3 4 5 6 7
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 13
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
3
2

3 4

Visited vertex 0
Unexplored vertex 1 2 3 4 5 6 7
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 14
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
3
2

3 4

Visited vertex 0 5
Unexplored vertex 1 2 3 4 6 7
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 15
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
0
3
2
3 4

Visited vertex 0 5
Unexplored vertex 1 2 3 4 6 7
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 16
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
3
3 4 2

Visited vertex 0 5
Unexplored vertex 1 2 3 4 6 7
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 17
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
7
4
0
3 4 3
2
Visited vertex 0 5
Unexplored vertex 1 2 3 4 6 7
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 18
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
3
3 4 2

Visited vertex 0 5
Unexplored vertex 1 2 3 4 6 7
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 19
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
3
3 4 2

Visited vertex 0 5 7
Unexplored vertex 1 2 3 4 6
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 20
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
4
0
3 4 3
2
Visited vertex 0 5 7
Unexplored vertex 1 2 3 4 6
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 21
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
5
4
4
3 4 0
3
Visited vertex 0 5 7 2
Unexplored vertex 1 2 3 4 6
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 22
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
4
0
3 4 3
2
Visited vertex 0 5 7
Unexplored vertex 1 2 3 4 6
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 23
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
3
3 4 2

Visited vertex 0 5 7
Unexplored vertex 1 2 3 4 6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 24
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
3
3 4 2

Visited vertex 0 4 5 7
Unexplored vertex 1 2 3 6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 25
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
3
4
0
3 4 3
2
Visited vertex 0 4 5 7
Unexplored vertex 1 2 3 6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 26
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
5
3
4
3 4 0
3
Visited vertex 0 4 5 7 2
Unexplored vertex 1 2 3 6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 27
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
7
5
3
3 4 4
0
Visited vertex 0 4 5 7 3
Unexplored vertex 1 2 3 6 2
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 28
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
5
3
4
3 4 0
3
Visited vertex 0 4 5 7 2
Unexplored vertex 1 2 3 6
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 29
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
3
4
0
3 4 3
2
Visited vertex 0 4 5 7
Unexplored vertex 1 2 3 6
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 30
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
3
3 4 2

Visited vertex 0 4 5 7
Unexplored vertex 1 2 3 6
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 31
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
3
3 4 2

Visited vertex 0 3 4 5 7
Unexplored vertex 1 2 6
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 32
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
0
4
0
3 4 3
2
Visited vertex 0 3 4 5 7
Unexplored vertex 1 2 6
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 33
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
4
3 4 0
3
Visited vertex 0 3 4 5 7 2
Unexplored vertex 1 2 6
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 34
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
6
4
0
3 4 4
0
Visited vertex 0 3 4 5 7 3
Unexplored vertex 1 2 6 2
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 35
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
4
3 4 0
3
Visited vertex 0 3 4 5 7 2
Unexplored vertex 1 2 6
Solving vertex 6

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 36
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
4
3 4 0
3
Visited vertex 0 3 4 5 6 7 2
Unexplored vertex 1 2
Solving vertex 6

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 37
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
3
4
0
3 4 4
0
Visited vertex 0 3 4 5 6 7 3
Unexplored vertex 1 2 2
Solving vertex 6

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 38
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
4
3 4 0
3
Visited vertex 0 3 4 5 6 7 2
Unexplored vertex 1 2
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 39
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
0
4
0
3 4 3
2
Visited vertex 0 3 4 5 6 7
Unexplored vertex 1 2
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 40
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
4
0
3
3 4 2

Visited vertex 0 3 4 5 6 7
Unexplored vertex 1 2
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 41
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
0
3
2
3 4

Visited vertex 0 3 4 5 6 7
Unexplored vertex 1 2
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 42
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
3
2

3 4

Visited vertex 0 3 4 5 6 7
Unexplored vertex 1 2
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 43
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
2

3 4

Visited vertex 0 3 4 5 6 7
Unexplored vertex 1 2
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 44
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7

3 4

Visited vertex 0 3 4 5 6 7
Unexplored vertex 1 2
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 45
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
0

3 4

Visited vertex 0 2 3 4 5 6 7
Unexplored vertex 1
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 46
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
1
0

3 4

Visited vertex 0 2 3 4 5 6 7
Unexplored vertex 1
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 47
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
0

3 4

Visited vertex 0 2 3 4 5 6 7
Unexplored vertex 1
Solving vertex 1

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 48
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
2
0

3 4

Visited vertex 0 1 2 3 4 5 6 7
Unexplored vertex
Solving vertex 1

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 49
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7
0

3 4

Visited vertex 0 1 2 3 4 5 6 7
Unexplored vertex
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 50
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7

3 4

Visited vertex 0 1 2 3 4 5 6 7
Unexplored vertex
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 51
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Simulation

1 0 5

Stack
2 6 7

3 4

Visited vertex 0 1 2 3 4 5 6 7
Unexplored vertex
Solving vertex

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 52
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS Algorithm: Properties

1. DFS(G,v) visits all the vertices and edges in


the connected component of v.
2. The discovery edges labeled by DFS(G,v)
form a spanning tree of the connected
component of v.

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 53
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

Breadth-First-Search (BFS) Algorithm


• BFS is a general technique for traversing a graph.
• A BFS traversal of a graph G
 Visit all the vertices and edges of G.
 Determines whether G is connected.
 Computes the connected components of G.
 Computes a spanning forest of G.
• BFS on a graph with n vertices and m edges take O(n+m)
time.
• BFS can be further extended to solve other graph problems
 Find and report a paht with the minimum number of edges between
two given vertices.
 Find a simple cycle, if there is one.

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 54
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm (contd.)


BreadthFirstSearch(s)
FOR (u=0: u<n; u= u+1) % scan all nodes
reached[u] = false; % set reached nodes to false
Q.enqueue(s); % push node s to queue Q
WHILE (!Q.Empty()) % Do while Q is not empty
{
u = Q.Dequeue(); % get data from queue, assign to u
IF (!reached[u]) % if u is not reached node, then do
{
reached[u] = true; % set u is reached node.
FOR (x=adjList[u].Begin; x!=null; x=x.succ) % scan all adjacent nodes of u
{
v = x.Data; % get data of every adjacent nodes
of u
Q.Enqueue(v); % then push to queue Q.
} % finish scan all adjacent nodes of u

}
} Part 3: Graph Theory Discrete % queue
of NewQSouth
Mathematics
The University is empty,
Walesall nodesPage
are 55
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm (contd.)

• Each vertex is labeled twice


– once as unexpolored.
– once as visited.
• Each edge is labeled twice
– once as unexplored.
– once as discovery or cross.

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 56
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex
Unexplored vertex 0 1 2 3 4 5 6 7
Solving vertex

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 57
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex
Unexplored vertex 0 1 2 3 4 5 6 7
0
Solving vertex

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 58
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex
Unexplored vertex 0 1 2 3 4 5 6 7
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 59
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex 0
Unexplored vertex 1 2 3 4 5 6 7
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 60
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex 0
Unexplored vertex 1 2 3 4 5 6 7
1
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 61
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex 0
2
Unexplored vertex 1 2 3 4 5 6 7
1
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 62
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

3
Visited vertex 0
2
Unexplored vertex 1 2 3 4 5 6 7
1
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 63
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4
5
3
Visited vertex 0
2
Unexplored vertex 1 2 3 4 5 6 7
1
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 64
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

5
Visited vertex 0
3
Unexplored vertex 1 2 3 4 5 6 7
2
Solving vertex 1

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 65
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

5
Visited vertex 0 1
3
Unexplored vertex 2 3 4 5 6 7
2
Solving vertex 1

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 66
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4
0
5
Visited vertex 0 1
3
Unexplored vertex 2 3 4 5 6 7
2
Solving vertex 1

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 67
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

2
3 4
0
5
Visited vertex 0 1
3
Unexplored vertex 2 3 4 5 6 7
2
Solving vertex 1

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 68
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4
2
0
Visited vertex 0 1
5
Unexplored vertex 2 3 4 5 6 7
3
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 69
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4
2
0
Visited vertex 0 1 2
5
Unexplored vertex 3 4 5 6 7
3
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 70
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

0
3 4
2
0
Visited vertex 0 1 2
5
Unexplored vertex 3 4 5 6 7
3
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 71
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

1
0
3 4
2
0
Visited vertex 0 1 2
5
Unexplored vertex 3 4 5 6 7
3
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 72
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

1
3 4
0
2
Visited vertex 0 1 2
0
Unexplored vertex 3 4 5 6 7
5
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 73
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

1
3 4
0
2
Visited vertex 0 1 2 3
0
Unexplored vertex 4 5 6 7
5
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 74
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

0
1
3 4
0
2
Visited vertex 0 1 2 3
0
Unexplored vertex 4 5 6 7
5
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 75
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
4
0
1
3 4
0
2
Visited vertex 0 1 2 3
0
Unexplored vertex 4 5 6 7
5
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 76
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2 6
6 7
4
0
1
3 4
0
2
Visited vertex 0 1 2 3
0
Unexplored vertex 4 5 6 7
5
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 77
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
6
4
0
3 4
1
0
Visited vertex 0 1 2 3
2
Unexplored vertex 4 5 6 7
0
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 78
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
6
4
0
3 4
1
0
Visited vertex 0 1 2 3 5
2
Unexplored vertex 4 6 7
0
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 79
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2 0
6 7
6
4
0
3 4
1
0
Visited vertex 0 1 2 3 5
2
Unexplored vertex 4 6 7
0
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 80
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5
4
2 0
6 7
6
4
0
3 4
1
0
Visited vertex 0 1 2 3 5
2
Unexplored vertex 4 6 7
0
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 81
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5 6
4
2 0
6 7
6
4
0
3 4
1
0
Visited vertex 0 1 2 3 5
2
Unexplored vertex 4 6 7
0
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 82
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1
7
0 5 6
4
2 0
6 7
6
4
0
3 4
1
0
Visited vertex 0 1 2 3 5
2
Unexplored vertex 4 6 7
0
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 83
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5 7
6
2 4
6 7
0
6
4
3 4
0
1
Visited vertex 0 1 2 3 5
0
Unexplored vertex 4 6 7
2
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 84
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5
7
2 6
6 7
4
0
6
3 4
4
0
Visited vertex 0 1 2 3 5
1
Unexplored vertex 4 6 7
0
Solving vertex 2

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 85
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2 7
6 7
6
4
0
3 4
6
4
Visited vertex 0 1 2 3 5
0
Unexplored vertex 4 6 7
1
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 86
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
7
6
4
3 4
0
6
Visited vertex 0 1 2 3 5
4
Unexplored vertex 4 6 7
0
Solving vertex 1

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 87
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

7
6
3 4
4
0
Visited vertex 0 1 2 3 5
6
Unexplored vertex 4 6 7
4
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 88
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

7
3 4
6
4
Visited vertex 0 1 2 3 5
0
Unexplored vertex 4 6 7
6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 89
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

7
3 4
6
4
Visited vertex 0 1 2 3 4 5
0
Unexplored vertex 6 7
6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 90
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3
7
3 4
6
4
Visited vertex 0 1 2 3 4 5
0
Unexplored vertex 6 7
6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 91
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
5
3
7
3 4
6
4
Visited vertex 0 1 2 3 4 5
0
Unexplored vertex 6 7
6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 92
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2 7
6 7
5
3
7
3 4
6
4
Visited vertex 0 1 2 3 4 5
0
Unexplored vertex 6 7
6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 93
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
7
5
3
3 4
7
6
Visited vertex 0 1 2 3 4 5
4
Unexplored vertex 6 7
0
Solving vertex 6

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 94
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
7
5
3
3 4
7
6
Visited vertex 0 1 2 3 4 5 6
4
Unexplored vertex 7
0
Solving vertex 6

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 95
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2 3
6 7
7
5
3
3 4
7
6
Visited vertex 0 1 2 3 4 5 6
4
Unexplored vertex 7
0
Solving vertex 6

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 96
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5
5
2 3
6 7
7
5
3
3 4
7
6
Visited vertex 0 1 2 3 4 5 6
4
Unexplored vertex 7
0
Solving vertex 6

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 97
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2 5
6 7
3
7
5
3 4
3
7
Visited vertex 0 1 2 3 4 5 6
6
Unexplored vertex 7
4
Solving vertex 0

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 98
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
5
3
7
3 4
5
3
Visited vertex 0 1 2 3 4 5 6
7
Unexplored vertex 7
6
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 99
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

5
3
3 4
7
5
Visited vertex 0 1 2 3 4 5 6
3
Unexplored vertex 7
7
Solving vertex 6

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 100
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

5
3 4
3
7
Visited vertex 0 1 2 3 4 5 6
5
Unexplored vertex 7
3
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 101
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

5
3 4
3
7
Visited vertex 0 1 2 3 4 5 6 7
5
Unexplored vertex
3
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 102
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

4
5
3 4
3
7
Visited vertex 0 1 2 3 4 5 6 7
5
Unexplored vertex
3
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 103
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7
5
4
5
3 4
3
7
Visited vertex 0 1 2 3 4 5 6 7
5
Unexplored vertex
3
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 104
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

5
4
3 4
5
3
Visited vertex 0 1 2 3 4 5 6 7
7
Unexplored vertex
5
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 105
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

5
3 4
4
5
Visited vertex 0 1 2 3 4 5 6 7
3
Unexplored vertex
7
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 106
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4
5
4
Visited vertex 0 1 2 3 4 5 6 7
5
Unexplored vertex
3
Solving vertex 7

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 107
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

5
Visited vertex 0 1 2 3 4 5 6 7
4
Unexplored vertex
5
Solving vertex 3

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 108
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex 0 1 2 3 4 5 6 7
5
Unexplored vertex
4
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 109
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex 0 1 2 3 4 5 6 7
Unexplored vertex
5
Solving vertex 4

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 110
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex 0 1 2 3 4 5 6 7
Unexplored vertex
Solving vertex 5

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 111
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

BFS Algorithm: Simulation

Queue
1

0 5

2
6 7

3 4

Visited vertex 0 1 2 3 4 5 6 7
Unexplored vertex
Solving vertex

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 112
Depth-First-Search Algorithm
Searching Breadth-First-Search Algorithm

DFS vs. BFS

Applications DFS BFS


Spanning forest, Yes Yes
connected
components,
paths, cycles.

Shortest paths Yes


Biconnected Yes
components

Part 3: Graph Theory Discrete Mathematics


The University of New South Wales Page 113

You might also like