SlideShare uma empresa Scribd logo
1 de 19
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

Mais conteúdo relacionado

Mais procurados

Depth First Search ( DFS )
Depth First Search ( DFS )Depth First Search ( DFS )
Depth First Search ( DFS )Sazzad Hossain
 
Graphs in data structure
Graphs in data structureGraphs in data structure
Graphs in data structurehamza javed
 
Depth first search [dfs]
Depth first search [dfs]Depth first search [dfs]
Depth first search [dfs]DEEPIKA T
 
Graph representation
Graph representationGraph representation
Graph representationTech_MX
 
Single source stortest path bellman ford and dijkstra
Single source stortest path bellman ford and dijkstraSingle source stortest path bellman ford and dijkstra
Single source stortest path bellman ford and dijkstraRoshan Tailor
 
Data structure - Graph
Data structure - GraphData structure - Graph
Data structure - GraphMadhu Bala
 
Breadth first search (Bfs)
Breadth first search (Bfs)Breadth first search (Bfs)
Breadth first search (Bfs)Ishucs
 
Topological Sorting
Topological SortingTopological Sorting
Topological SortingShahDhruv21
 
Breadth First Search & Depth First Search
Breadth First Search & Depth First SearchBreadth First Search & Depth First Search
Breadth First Search & Depth First SearchKevin Jadiya
 
Red black tree
Red black treeRed black tree
Red black treeRajendran
 
Presentation on Breadth First Search (BFS)
Presentation on Breadth First Search (BFS)Presentation on Breadth First Search (BFS)
Presentation on Breadth First Search (BFS)Shuvongkor Barman
 
B trees in Data Structure
B trees in Data StructureB trees in Data Structure
B trees in Data StructureAnuj Modi
 
A presentation on prim's and kruskal's algorithm
A presentation on prim's and kruskal's algorithmA presentation on prim's and kruskal's algorithm
A presentation on prim's and kruskal's algorithmGaurav Kolekar
 
Depth firstsearchalgorithm
Depth firstsearchalgorithmDepth firstsearchalgorithm
Depth firstsearchalgorithmhansa khan
 

Mais procurados (20)

Shortest Path in Graph
Shortest Path in GraphShortest Path in Graph
Shortest Path in Graph
 
Depth First Search ( DFS )
Depth First Search ( DFS )Depth First Search ( DFS )
Depth First Search ( DFS )
 
Data Structures - Lecture 10 [Graphs]
Data Structures - Lecture 10 [Graphs]Data Structures - Lecture 10 [Graphs]
Data Structures - Lecture 10 [Graphs]
 
Graphs in data structure
Graphs in data structureGraphs in data structure
Graphs in data structure
 
Depth first search [dfs]
Depth first search [dfs]Depth first search [dfs]
Depth first search [dfs]
 
Graph representation
Graph representationGraph representation
Graph representation
 
Single source stortest path bellman ford and dijkstra
Single source stortest path bellman ford and dijkstraSingle source stortest path bellman ford and dijkstra
Single source stortest path bellman ford and dijkstra
 
Data structure - Graph
Data structure - GraphData structure - Graph
Data structure - Graph
 
Breadth first search (Bfs)
Breadth first search (Bfs)Breadth first search (Bfs)
Breadth first search (Bfs)
 
Topological Sorting
Topological SortingTopological Sorting
Topological Sorting
 
Breadth first search
Breadth first searchBreadth first search
Breadth first search
 
Breadth First Search & Depth First Search
Breadth First Search & Depth First SearchBreadth First Search & Depth First Search
Breadth First Search & Depth First Search
 
BFS
BFSBFS
BFS
 
Red black tree
Red black treeRed black tree
Red black tree
 
Presentation on Breadth First Search (BFS)
Presentation on Breadth First Search (BFS)Presentation on Breadth First Search (BFS)
Presentation on Breadth First Search (BFS)
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
 
Bellman ford algorithm
Bellman ford algorithmBellman ford algorithm
Bellman ford algorithm
 
B trees in Data Structure
B trees in Data StructureB trees in Data Structure
B trees in Data Structure
 
A presentation on prim's and kruskal's algorithm
A presentation on prim's and kruskal's algorithmA presentation on prim's and kruskal's algorithm
A presentation on prim's and kruskal's algorithm
 
Depth firstsearchalgorithm
Depth firstsearchalgorithmDepth firstsearchalgorithm
Depth firstsearchalgorithm
 

Destaque

Depth first search and breadth first searching
Depth first search and breadth first searchingDepth first search and breadth first searching
Depth first search and breadth first searchingKawsar Hamid Sumon
 
Dfs presentation
Dfs presentationDfs presentation
Dfs presentationAlizay Khan
 
2.5 bfs & dfs 02
2.5 bfs & dfs 022.5 bfs & dfs 02
2.5 bfs & dfs 02Krish_ver2
 
Graph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalGraph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalAmrinder Arora
 
Heuristic Search
Heuristic SearchHeuristic Search
Heuristic Searchbutest
 
Heuristic Search Techniques {Artificial Intelligence}
Heuristic Search Techniques {Artificial Intelligence}Heuristic Search Techniques {Artificial Intelligence}
Heuristic Search Techniques {Artificial Intelligence}FellowBuddy.com
 
Ch2 3-informed (heuristic) search
Ch2 3-informed (heuristic) searchCh2 3-informed (heuristic) search
Ch2 3-informed (heuristic) searchchandsek666
 
artificial intelligence
artificial intelligenceartificial intelligence
artificial intelligencevallibhargavi
 
5.5 back tracking
5.5 back tracking5.5 back tracking
5.5 back trackingKrish_ver2
 
Data structures and algorithms lab7
Data structures and algorithms lab7Data structures and algorithms lab7
Data structures and algorithms lab7Bianca Teşilă
 
Depth First Search, Breadth First Search and Best First Search
Depth First Search, Breadth First Search and Best First SearchDepth First Search, Breadth First Search and Best First Search
Depth First Search, Breadth First Search and Best First SearchAdri Jovin
 
Mca iii dfs u-4 tree and graph
Mca iii dfs u-4 tree and graphMca iii dfs u-4 tree and graph
Mca iii dfs u-4 tree and graphRai University
 
Distributed Graph Algorithms
Distributed Graph AlgorithmsDistributed Graph Algorithms
Distributed Graph AlgorithmsSaurav Kumar
 

Destaque (20)

Depth first search and breadth first searching
Depth first search and breadth first searchingDepth first search and breadth first searching
Depth first search and breadth first searching
 
Breadth first search
Breadth first searchBreadth first search
Breadth first search
 
Dfs presentation
Dfs presentationDfs presentation
Dfs presentation
 
2.5 bfs & dfs 02
2.5 bfs & dfs 022.5 bfs & dfs 02
2.5 bfs & dfs 02
 
DFS BFS and UCS in R
DFS BFS and UCS in RDFS BFS and UCS in R
DFS BFS and UCS in R
 
Graph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalGraph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search Traversal
 
Heuristic Search
Heuristic SearchHeuristic Search
Heuristic Search
 
chapter22.ppt
chapter22.pptchapter22.ppt
chapter22.ppt
 
Heuristic Search Techniques {Artificial Intelligence}
Heuristic Search Techniques {Artificial Intelligence}Heuristic Search Techniques {Artificial Intelligence}
Heuristic Search Techniques {Artificial Intelligence}
 
Ch2 3-informed (heuristic) search
Ch2 3-informed (heuristic) searchCh2 3-informed (heuristic) search
Ch2 3-informed (heuristic) search
 
artificial intelligence
artificial intelligenceartificial intelligence
artificial intelligence
 
5.5 back tracking
5.5 back tracking5.5 back tracking
5.5 back tracking
 
Normalization
NormalizationNormalization
Normalization
 
2.5 graph dfs
2.5 graph dfs2.5 graph dfs
2.5 graph dfs
 
Data structures and algorithms lab7
Data structures and algorithms lab7Data structures and algorithms lab7
Data structures and algorithms lab7
 
2.5 dfs & bfs
2.5 dfs & bfs2.5 dfs & bfs
2.5 dfs & bfs
 
Algorithum Analysis
Algorithum AnalysisAlgorithum Analysis
Algorithum Analysis
 
Depth First Search, Breadth First Search and Best First Search
Depth First Search, Breadth First Search and Best First SearchDepth First Search, Breadth First Search and Best First Search
Depth First Search, Breadth First Search and Best First Search
 
Mca iii dfs u-4 tree and graph
Mca iii dfs u-4 tree and graphMca iii dfs u-4 tree and graph
Mca iii dfs u-4 tree and graph
 
Distributed Graph Algorithms
Distributed Graph AlgorithmsDistributed Graph Algorithms
Distributed Graph Algorithms
 

Semelhante a Graphs bfs dfs

Analysis and design of algorithms part 3
Analysis and design of algorithms part 3Analysis and design of algorithms part 3
Analysis and design of algorithms part 3Deepak John
 
B.tech admission in india
B.tech admission in indiaB.tech admission in india
B.tech admission in indiaEdhole.com
 
Graph Traversal Algorithm
Graph Traversal AlgorithmGraph Traversal Algorithm
Graph Traversal Algorithmjyothimonc
 
Graph Representation, DFS and BFS Presentation.pptx
Graph Representation, DFS and BFS Presentation.pptxGraph Representation, DFS and BFS Presentation.pptx
Graph Representation, DFS and BFS Presentation.pptxbashirabdullah789
 
BFS, Breadth first search | Search Traversal Algorithm
BFS, Breadth first search | Search Traversal AlgorithmBFS, Breadth first search | Search Traversal Algorithm
BFS, Breadth first search | Search Traversal AlgorithmMSA Technosoft
 
Depth First Search and Breadth First Search
Depth First Search and Breadth First SearchDepth First Search and Breadth First Search
Depth First Search and Breadth First SearchNisha Soms
 
Elementary Graph Algo.ppt
Elementary Graph Algo.pptElementary Graph Algo.ppt
Elementary Graph Algo.pptSazidHossain9
 
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docxgraphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docxwhittemorelucilla
 
Talk on Graph Theory - I
Talk on Graph Theory - ITalk on Graph Theory - I
Talk on Graph Theory - IAnirudh Raja
 
Algorithm Design and Complexity - Course 7
Algorithm Design and Complexity - Course 7Algorithm Design and Complexity - Course 7
Algorithm Design and Complexity - Course 7Traian Rebedea
 

Semelhante a Graphs bfs dfs (20)

Analysis and design of algorithms part 3
Analysis and design of algorithms part 3Analysis and design of algorithms part 3
Analysis and design of algorithms part 3
 
Chapter 23 aoa
Chapter 23 aoaChapter 23 aoa
Chapter 23 aoa
 
Bfs dfs
Bfs dfsBfs dfs
Bfs dfs
 
B.tech admission in india
B.tech admission in indiaB.tech admission in india
B.tech admission in india
 
19-graph1 (1).ppt
19-graph1 (1).ppt19-graph1 (1).ppt
19-graph1 (1).ppt
 
Graph Traversal Algorithm
Graph Traversal AlgorithmGraph Traversal Algorithm
Graph Traversal Algorithm
 
Graph Representation, DFS and BFS Presentation.pptx
Graph Representation, DFS and BFS Presentation.pptxGraph Representation, DFS and BFS Presentation.pptx
Graph Representation, DFS and BFS Presentation.pptx
 
Graps 2
Graps 2Graps 2
Graps 2
 
Graphs
GraphsGraphs
Graphs
 
BFS, Breadth first search | Search Traversal Algorithm
BFS, Breadth first search | Search Traversal AlgorithmBFS, Breadth first search | Search Traversal Algorithm
BFS, Breadth first search | Search Traversal Algorithm
 
Depth First Search and Breadth First Search
Depth First Search and Breadth First SearchDepth First Search and Breadth First Search
Depth First Search and Breadth First Search
 
Graphs
GraphsGraphs
Graphs
 
LEC 12-DSALGO-GRAPHS(final12).pdf
LEC 12-DSALGO-GRAPHS(final12).pdfLEC 12-DSALGO-GRAPHS(final12).pdf
LEC 12-DSALGO-GRAPHS(final12).pdf
 
Elementary Graph Algo.ppt
Elementary Graph Algo.pptElementary Graph Algo.ppt
Elementary Graph Algo.ppt
 
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docxgraphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
 
U1 L5 DAA.pdf
U1 L5 DAA.pdfU1 L5 DAA.pdf
U1 L5 DAA.pdf
 
Talk on Graph Theory - I
Talk on Graph Theory - ITalk on Graph Theory - I
Talk on Graph Theory - I
 
Algorithm Design and Complexity - Course 7
Algorithm Design and Complexity - Course 7Algorithm Design and Complexity - Course 7
Algorithm Design and Complexity - Course 7
 
09-graphs.ppt
09-graphs.ppt09-graphs.ppt
09-graphs.ppt
 
Dijkstra.ppt
Dijkstra.pptDijkstra.ppt
Dijkstra.ppt
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Último (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

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