SlideShare a Scribd company logo
7
Most read
12
Most read
18
Most read
Graphs
Breadth First Search
&
Depth First Search
Submitted By:
Jailalita Gautam
Contents







10/27/13

Overview of Graph terminology.
Graph representation.
Breadth first search.
Depth first search.
Applications of BFS and DFS.
References.

NITTTR CHD

2
Graph terminology - overview


A graph consists of











set of vertices V = {v1, v2, ….. vn}
set of edges that connect the vertices E ={e1, e2, …. em}

Two vertices in a graph are adjacent if there is an
edge connecting the vertices.
Two vertices are on a path if there is a sequences
of vertices beginning with the first one and ending
with the second one
Graphs with ordered edges are directed. For
directed graphs, vertices have in and out degrees.
Weighted Graphs have values associated with
edges.

10/27/13

NITTTR CHD

3
Graph representation






There are two standard ways to represent a graph
G=(V,E) : as collection of adjacency list or as an
adjacency matrix.
Adjacency list preferred for sparse graphs- those for
which |E| much less than |V|^2.
Adjacency matrix preferred for dense graphs- |E| is
close to |V|^2.

10/27/13

NITTTR CHD

4
Graph representation – undirected

graph

10/27/13

Adjacency list

NITTTR CHD

Adjacency matrix

5
Graph representation – directed

graph

10/27/13

Adjacency list

NITTTR CHD

Adjacency matrix

6
Breadth first search


Given










a graph G=(V,E) – set of vertices and edges
a distinguished source vertex s

Breadth first search systematically explores the
edges of G to discover every vertex that is
reachable from s.
It also produces a ‘breadth first tree’ with root s that
contains all the vertices reachable from s.
For any vertex v reachable from s, the path in the
breadth first tree corresponds to the shortest path in
graph G from s to v.
It works on both directed and undirected graphs.
However, we will explore only directed graphs.

10/27/13

NITTTR CHD

7
Breadth first search - concepts







To keep track of progress, it colors each
vertex - white, gray or black.
All vertices start white.
A vertex discovered first time during the
search becomes nonwhite.
All vertices adjacent to black ones are
discovered. Whereas, gray ones may have
some white adjacent vertices.

10/27/13

NITTTR CHD

8
BFS – How it produces a Breadth first tree



The tree initially contains only root. – s
Whenever a vertex v is discovered in
scanning adjacency list of vertex u


10/27/13

Vertex v and edge (u,v) are added to the tree.

NITTTR CHD

9
BFS - algorithm
BFS(G, s)
// G is the graph and s is the starting node
1 for each vertex u ∈ V [G] - {s}
2
do color[u] ← WHITE
// color of vertex u
3
d[u] ← ∞
// distance from source s to vertex u
4
π[u] ← NIL
// predecessor of u
5 color[s] ← GRAY
6 d[s] ← 0
7 π[s] ← NIL
8 Q←Ø
// Q is a FIFO - queue
9 ENQUEUE(Q, s)
10 while Q ≠ Ø
// iterates as long as there are gray vertices. Lines 10-18
11
do u ← DEQUEUE(Q)
12
for each v ∈ Adj [u]
13
do if color[v] = WHITE
// discover the undiscovered adjacent vertices
14
then color[v] ← GRAY
// enqueued whenever painted gray
15
d[v] ← d[u] + 1
16
π[v] ← u
17
ENQUEUE(Q, v)
18
color[u] ← BLACK
// painted black whenever dequeued

10/27/13

NITTTR CHD

10
Breadth First Search - example

10/27/13

NITTTR CHD

11
Breadth first search - analysis






Enqueue and Dequeue happen only once for
each node. - O(V).
Total time spent in scanning adjacency lists
is O(E) .
Initialization overhead O(V)
Total runtime O(V+E)

10/27/13

NITTTR CHD

12
Depth first search





It searches ‘deeper’ the graph when possible.
Starts at the selected node and explores as far as
possible along each branch before backtracking.
Vertices go through white, gray and black stages of
color.






White – initially
Gray – when discovered first
Black – when finished i.e. the adjacency list of the vertex is
completely examined.

Also records timestamps for each vertex



10/27/13

d[v]
f[v]

when the vertex is first discovered
when the vertex is finished
NITTTR CHD

13
Depth first search - algorithm
DFS(G)
1 for each vertex u ∈ V [G]
2
do color[u] ← WHITE
3
π[u] ← NIL
4 time ← 0
5 for each vertex u ∈ V [G]
6
do if color[u] = WHITE
7
then DFS-VISIT(u)

// color all vertices white, set their parents NIL
// zero out time
// call only for unexplored vertices
// this may result in multiple sources

DFS-VISIT(u)
1 color[u] ← GRAY ▹White vertex u has just been discovered.
2 time ← time +1
3 d[u] time
// record the discovery time
4 for each v ∈ Adj[u]
▹Explore edge(u, v).
5
do if color[v] = WHITE
6
then π[v] ← u
// set the parent value
7
DFS-VISIT(v)
// recursive call
8 color[u] BLACK
▹ Blacken u; it is finished.
9 f [u] ▹ time ← time +1
10/27/13

NITTTR CHD

14
Depth first search – example

10/27/13

NITTTR CHD

15
Depth first search - analysis
Lines 1-3, initialization take time Θ(V).
 Lines 5-7 take time Θ(V), excluding the time to call
the DFS-VISIT.
 DFS-VISIT is called only once for each node (since
it’s called only for white nodes and the first step in it
is to paint the node gray).
 Loop on line 4-7 is executed |Adj(v)| times. Since
∑vєV |Adj(v)| = Ө (E),
the total cost of executing lines 4-7 of DFS-VISIT is
θ(E).


The total cost of DFS is θ(V+E)
10/27/13

NITTTR CHD

16
BFS and DFS - comparison






Space complexity of DFS is lower than that of BFS.
Time complexity of both is same – O(|V|+|E|).
The behavior differs for graphs where not all the
vertices can be reached from the given vertex s.
Predecessor subgraphs produced by DFS may be
different than those produced by BFS. The BFS
product is just one tree whereas the DFS product
may be multiple trees.

10/27/13

NITTTR CHD

17
BFS and DFS – possible applications




Possible to use in routing / exploration. E.g.,
 I want to explore all the nearest pizza places and want to go to
the nearest one with only two intersections.
 Find distance from my factory to every delivery center.
 Most of the mapping software (GOOGLE maps, YAHOO(?)
maps) should be using these algorithms.
Applications of DFS
 Topologically sorting a directed acyclic graph.




Finding the strongly connected components of a directed graph.


10/27/13

List the graph elements in such an order that all the nodes are listed
before nodes to which they have outgoing edges.
List all the sub graphs of a strongly connected graph which
themselves are strongly connected.

NITTTR CHD

18
References







Data structures with C++ using STL by Ford,
William; Topp, William; Prentice Hall.
Introduction to Algorithms by Cormen,
Thomas et. al., The MIT press.
http://en.wikipedia.org/wiki/Graph_theory
http://en.wikipedia.org/wiki/Depth_first_search

10/27/13

NITTTR CHD

19

More Related Content

PPTX
Graph representation
PPTX
Breadth First Search & Depth First Search
PPTX
Data structure - Graph
PPT
Bfs and dfs in data structure
PPTX
Bfs and Dfs
PPT
Graph colouring
PPT
Breadth first search and depth first search
PPTX
Tree Traversal
Graph representation
Breadth First Search & Depth First Search
Data structure - Graph
Bfs and dfs in data structure
Bfs and Dfs
Graph colouring
Breadth first search and depth first search
Tree Traversal

What's hot (20)

PPTX
trees in data structure
PPTX
Topological Sorting
PPTX
Backtracking
PPTX
PPT
Binary search tree(bst)
PPTX
Graph in data structure
PPT
13. Query Processing in DBMS
PPTX
Depth-First Search
PPTX
All pair shortest path
PPTX
Priority Queue in Data Structure
PDF
Double ended queue
PPTX
DFS and BFS
PPTX
Binary Search Tree
PPT
Np cooks theorem
PPTX
Queue in Data Structure
PPT
Time complexity
PPTX
Deque and its applications
PPT
Minimum spanning tree
PPTX
serializability in dbms
PPT
Prim's Algorithm on minimum spanning tree
trees in data structure
Topological Sorting
Backtracking
Binary search tree(bst)
Graph in data structure
13. Query Processing in DBMS
Depth-First Search
All pair shortest path
Priority Queue in Data Structure
Double ended queue
DFS and BFS
Binary Search Tree
Np cooks theorem
Queue in Data Structure
Time complexity
Deque and its applications
Minimum spanning tree
serializability in dbms
Prim's Algorithm on minimum spanning tree
Ad

Viewers also liked (20)

PPTX
Depth first search and breadth first searching
PPT
Breadth first search
PPTX
PPTX
Dfs presentation
PPT
2.5 bfs & dfs 02
PPTX
DFS BFS and UCS in R
PPTX
Graph Traversal Algorithms - Depth First Search Traversal
PPT
Heuristic Search
PPT
chapter22.ppt
PPT
Heuristic Search Techniques {Artificial Intelligence}
PPT
Ch2 3-informed (heuristic) search
PPT
artificial intelligence
PPT
5.5 back tracking
PPT
Normalization
PPTX
DFS & BFS Graph
PPT
2.5 graph dfs
PPTX
Data structures and algorithms lab7
PPT
2.5 dfs & bfs
PPT
Algorithum Analysis
PPT
Depth First Search, Breadth First Search and Best First Search
Depth first search and breadth first searching
Breadth first search
Dfs presentation
2.5 bfs & dfs 02
DFS BFS and UCS in R
Graph Traversal Algorithms - Depth First Search Traversal
Heuristic Search
chapter22.ppt
Heuristic Search Techniques {Artificial Intelligence}
Ch2 3-informed (heuristic) search
artificial intelligence
5.5 back tracking
Normalization
DFS & BFS Graph
2.5 graph dfs
Data structures and algorithms lab7
2.5 dfs & bfs
Algorithum Analysis
Depth First Search, Breadth First Search and Best First Search
Ad

Similar to Graphs bfs dfs (20)

PPTX
Lecture 5 - Graph Algorithms BFS and DFS.pptx
PDF
PPT
B.tech admission in india
PPT
Chapter 23 aoa
PDF
Analysis and design of algorithms part 3
PPTX
Algorithm Design and Complexity - Course 7
PPT
Elementary Graph Algo.ppt
PPT
Breadth first search
PDF
Bfs dfs
PPTX
Presentation on Breadth First Search (BFS)
DOC
BFS, Breadth first search | Search Traversal Algorithm
PPT
19-graph1 (1).ppt
PPTX
Breadth-First Search and Depth-First Search.pptx
PDF
U1 L5 DAA.pdf
PPTX
algoritmagraph_breadthfirstsearch_depthfirstsearch.pptx
PPTX
130210107039 2130702
PPTX
Bfs & dfs application
PPT
Data Structures-Non Linear DataStructures-Graphs
PPT
Graph 02
PPT
COSC 3101A - Design and Analysis of Algorithms 10
Lecture 5 - Graph Algorithms BFS and DFS.pptx
B.tech admission in india
Chapter 23 aoa
Analysis and design of algorithms part 3
Algorithm Design and Complexity - Course 7
Elementary Graph Algo.ppt
Breadth first search
Bfs dfs
Presentation on Breadth First Search (BFS)
BFS, Breadth first search | Search Traversal Algorithm
19-graph1 (1).ppt
Breadth-First Search and Depth-First Search.pptx
U1 L5 DAA.pdf
algoritmagraph_breadthfirstsearch_depthfirstsearch.pptx
130210107039 2130702
Bfs & dfs application
Data Structures-Non Linear DataStructures-Graphs
Graph 02
COSC 3101A - Design and Analysis of Algorithms 10

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Modernizing your data center with Dell and AMD
PDF
Machine learning based COVID-19 study performance prediction
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Electronic commerce courselecture one. Pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Advanced methodologies resolving dimensionality complications for autism neur...
Modernizing your data center with Dell and AMD
Machine learning based COVID-19 study performance prediction
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Empathic Computing: Creating Shared Understanding
The Rise and Fall of 3GPP – Time for a Sabbatical?
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
The AUB Centre for AI in Media Proposal.docx
Per capita expenditure prediction using model stacking based on satellite ima...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Electronic commerce courselecture one. Pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
20250228 LYD VKU AI Blended-Learning.pptx

Graphs bfs dfs

  • 1. Graphs Breadth First Search & Depth First Search Submitted By: Jailalita Gautam
  • 2. Contents       10/27/13 Overview of Graph terminology. Graph representation. Breadth first search. Depth first search. Applications of BFS and DFS. References. NITTTR CHD 2
  • 3. Graph terminology - overview  A graph consists of       set of vertices V = {v1, v2, ….. vn} set of edges that connect the vertices E ={e1, e2, …. em} Two vertices in a graph are adjacent if there is an edge connecting the vertices. Two vertices are on a path if there is a sequences of vertices beginning with the first one and ending with the second one Graphs with ordered edges are directed. For directed graphs, vertices have in and out degrees. Weighted Graphs have values associated with edges. 10/27/13 NITTTR CHD 3
  • 4. Graph representation    There are two standard ways to represent a graph G=(V,E) : as collection of adjacency list or as an adjacency matrix. Adjacency list preferred for sparse graphs- those for which |E| much less than |V|^2. Adjacency matrix preferred for dense graphs- |E| is close to |V|^2. 10/27/13 NITTTR CHD 4
  • 5. Graph representation – undirected graph 10/27/13 Adjacency list NITTTR CHD Adjacency matrix 5
  • 6. Graph representation – directed graph 10/27/13 Adjacency list NITTTR CHD Adjacency matrix 6
  • 7. Breadth first search  Given       a graph G=(V,E) – set of vertices and edges a distinguished source vertex s Breadth first search systematically explores the edges of G to discover every vertex that is reachable from s. It also produces a ‘breadth first tree’ with root s that contains all the vertices reachable from s. For any vertex v reachable from s, the path in the breadth first tree corresponds to the shortest path in graph G from s to v. It works on both directed and undirected graphs. However, we will explore only directed graphs. 10/27/13 NITTTR CHD 7
  • 8. Breadth first search - concepts     To keep track of progress, it colors each vertex - white, gray or black. All vertices start white. A vertex discovered first time during the search becomes nonwhite. All vertices adjacent to black ones are discovered. Whereas, gray ones may have some white adjacent vertices. 10/27/13 NITTTR CHD 8
  • 9. BFS – How it produces a Breadth first tree   The tree initially contains only root. – s Whenever a vertex v is discovered in scanning adjacency list of vertex u  10/27/13 Vertex v and edge (u,v) are added to the tree. NITTTR CHD 9
  • 10. BFS - algorithm BFS(G, s) // G is the graph and s is the starting node 1 for each vertex u ∈ V [G] - {s} 2 do color[u] ← WHITE // color of vertex u 3 d[u] ← ∞ // distance from source s to vertex u 4 π[u] ← NIL // predecessor of u 5 color[s] ← GRAY 6 d[s] ← 0 7 π[s] ← NIL 8 Q←Ø // Q is a FIFO - queue 9 ENQUEUE(Q, s) 10 while Q ≠ Ø // iterates as long as there are gray vertices. Lines 10-18 11 do u ← DEQUEUE(Q) 12 for each v ∈ Adj [u] 13 do if color[v] = WHITE // discover the undiscovered adjacent vertices 14 then color[v] ← GRAY // enqueued whenever painted gray 15 d[v] ← d[u] + 1 16 π[v] ← u 17 ENQUEUE(Q, v) 18 color[u] ← BLACK // painted black whenever dequeued 10/27/13 NITTTR CHD 10
  • 11. Breadth First Search - example 10/27/13 NITTTR CHD 11
  • 12. Breadth first search - analysis    Enqueue and Dequeue happen only once for each node. - O(V). Total time spent in scanning adjacency lists is O(E) . Initialization overhead O(V) Total runtime O(V+E) 10/27/13 NITTTR CHD 12
  • 13. Depth first search    It searches ‘deeper’ the graph when possible. Starts at the selected node and explores as far as possible along each branch before backtracking. Vertices go through white, gray and black stages of color.     White – initially Gray – when discovered first Black – when finished i.e. the adjacency list of the vertex is completely examined. Also records timestamps for each vertex   10/27/13 d[v] f[v] when the vertex is first discovered when the vertex is finished NITTTR CHD 13
  • 14. Depth first search - algorithm DFS(G) 1 for each vertex u ∈ V [G] 2 do color[u] ← WHITE 3 π[u] ← NIL 4 time ← 0 5 for each vertex u ∈ V [G] 6 do if color[u] = WHITE 7 then DFS-VISIT(u) // color all vertices white, set their parents NIL // zero out time // call only for unexplored vertices // this may result in multiple sources DFS-VISIT(u) 1 color[u] ← GRAY ▹White vertex u has just been discovered. 2 time ← time +1 3 d[u] time // record the discovery time 4 for each v ∈ Adj[u] ▹Explore edge(u, v). 5 do if color[v] = WHITE 6 then π[v] ← u // set the parent value 7 DFS-VISIT(v) // recursive call 8 color[u] BLACK ▹ Blacken u; it is finished. 9 f [u] ▹ time ← time +1 10/27/13 NITTTR CHD 14
  • 15. Depth first search – example 10/27/13 NITTTR CHD 15
  • 16. Depth first search - analysis Lines 1-3, initialization take time Θ(V).  Lines 5-7 take time Θ(V), excluding the time to call the DFS-VISIT.  DFS-VISIT is called only once for each node (since it’s called only for white nodes and the first step in it is to paint the node gray).  Loop on line 4-7 is executed |Adj(v)| times. Since ∑vєV |Adj(v)| = Ө (E), the total cost of executing lines 4-7 of DFS-VISIT is θ(E).  The total cost of DFS is θ(V+E) 10/27/13 NITTTR CHD 16
  • 17. BFS and DFS - comparison     Space complexity of DFS is lower than that of BFS. Time complexity of both is same – O(|V|+|E|). The behavior differs for graphs where not all the vertices can be reached from the given vertex s. Predecessor subgraphs produced by DFS may be different than those produced by BFS. The BFS product is just one tree whereas the DFS product may be multiple trees. 10/27/13 NITTTR CHD 17
  • 18. BFS and DFS – possible applications   Possible to use in routing / exploration. E.g.,  I want to explore all the nearest pizza places and want to go to the nearest one with only two intersections.  Find distance from my factory to every delivery center.  Most of the mapping software (GOOGLE maps, YAHOO(?) maps) should be using these algorithms. Applications of DFS  Topologically sorting a directed acyclic graph.   Finding the strongly connected components of a directed graph.  10/27/13 List the graph elements in such an order that all the nodes are listed before nodes to which they have outgoing edges. List all the sub graphs of a strongly connected graph which themselves are strongly connected. NITTTR CHD 18
  • 19. References     Data structures with C++ using STL by Ford, William; Topp, William; Prentice Hall. Introduction to Algorithms by Cormen, Thomas et. al., The MIT press. http://en.wikipedia.org/wiki/Graph_theory http://en.wikipedia.org/wiki/Depth_first_search 10/27/13 NITTTR CHD 19