SlideShare a Scribd company logo
1 of 56
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
1
Graphs (Cont.)
graph (many to many)
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Graph Searching
Given: a graph G = (V, E), directed or undirected
Goal: methodically explore every vertex and every edge
Ultimately: build a tree on the graph
Pick a vertex as the root
Choose certain edges to produce a tree
Note: might also build a forest if graph is not connected
• There are two standard graph traversal techniques:
 Breadth-First Search (BFS)
 Depth-First Search (DFS)
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search
“Explore” a graph, turning it into a tree
One vertex at a time
Expand frontier of explored vertices across the breadth of
the frontier
Builds a tree over the graph
Pick a source vertex to be the root
Find (“discover”) its children, then their children, etc.
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search
Again will associate vertex “colors” to guide the
algorithm
White vertices have not been discovered
All vertices start out white
Grey vertices are discovered but not fully explored
They may be adjacent to white vertices
Black vertices are discovered and fully explored
They are adjacent only to black and grey vertices
Explore vertices by scanning adjacency list of grey
vertices
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
∞
∞
∞
∞
∞
∞
∞
∞
r s t u
v w x y
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
∞
∞
0
∞
∞
∞
∞
∞
r s t u
v w x y
sQ:
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
1
∞
0
1
∞
∞
∞
∞
r s t u
v w x y
wQ: r
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
1
∞
0
1
2
2
∞
∞
r s t u
v w x y
rQ: t x
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
1
2
0
1
2
2
∞
∞
r s t u
v w x y
Q: t x v
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
1
2
0
1
2
2
3
∞
r s t u
v w x y
Q: x v u
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
1
2
0
1
2
2
3
3
r s t u
v w x y
Q: v u y
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
1
2
0
1
2
2
3
3
r s t u
v w x y
Q: u y
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
1
2
0
1
2
2
3
3
r s t u
v w x y
Q: y
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Example
1
2
0
1
2
2
3
3
r s t u
v w x y
Q: Ø
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
BFS - A Graphical Representation
M N O P
I J K L
E F G H
A B C D
0
M N O P
I J K L
E F G H
A B C D
0 1
M N O P
I J K L
E F G H
A C DB
0 1 2
M N O P
I J K L
E F G H
A B C D
0 1 2 3
d)c)
b)a)
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
BFS - A Graphical Representation
M N O P
I J K L
E F G H
A B C D
4
0 1 2 3
M N O P
I J K L
E F G H
A B C D
4
5
0 1 2 3
e) f)
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
BFS: The Code Again
BFS(G, s) {
initialize vertices;
Q = {s};
while (Q not empty) {
u = RemoveTop(Q);
for each v ∈ u->adj {
if (v->color == WHITE)
v->color = GREY;
v->d = u->d + 1;
v->p = u;
Enqueue(Q, v);
}
u->color = BLACK;
}
}
What will be the running time?
Touch every vertex: O(V)
u = every vertex, but only once
(Why?)
So v = every vertex
that appears in
some other vert’s
adjacency list
Total running time: O(V+E)
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
BFS: The Code Again
BFS(G, s) {
initialize vertices;
Q = {s};
while (Q not empty) {
u = RemoveTop(Q);
for each v ∈ u->adj {
if (v->color == WHITE)
v->color = GREY;
v->d = u->d + 1;
v->p = u;
Enqueue(Q, v);
}
u->color = BLACK;
}
}
What will be the storage cost
in addition to storing the tree?
Total space used:
O(V + Σ(degree(v))) = O(V+E)
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Breadth-First Search: Properties
BFS calculates the shortest-path distance to the source
node
Shortest-path distance δ(s,v) = minimum number of edges
from s to v, or ∞ if v not reachable from s
BFS builds breadth-first tree, in which paths to root
represent shortest paths in G
Thus can use BFS to calculate shortest path from one
vertex to another in O(V+E) time in an unweighted tree
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search
Depth-first search is another strategy for exploring a graph
Explore “deeper” in the graph whenever possible
Edges are explored out of the most recently discovered vertex v that still
has unexplored edges
When all of v’s edges have been explored, backtrack to the vertex from
which v was discovered
Vertices initially colored white
Then colored grey when discovered
Then black when finished
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search: The Code
DFS(G)
{
for each vertex u ∈ G->V
{
u->color = WHITE;
}
time = 0;
for each vertex u ∈ G->V
{
if (u->color == WHITE)
DFS_Visit(u);
}
}
DFS_Visit(u)
{
u->color = GREY;
time = time+1;
u->d = time;
for each v ∈ u->Adj[]
{
if (v->color == WHITE)
DFS_Visit(v);
}
u->color = BLACK;
time = time+1;
u->f = time;
}
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search: The Code
DFS(G)
{
for each vertex u ∈ G->V
{
u->color = WHITE;
}
time = 0;
for each vertex u ∈ G->V
{
if (u->color == WHITE)
DFS_Visit(u);
}
}
DFS_Visit(u)
{
u->color = GREY;
time = time+1;
u->d = time;
for each v ∈ u->Adj[]
{
if (v->color == WHITE)
DFS_Visit(v);
}
u->color = BLACK;
time = time+1;
u->f = time;
}
What does u->d represent?
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search: The Code
DFS(G)
{
for each vertex u ∈ G->V
{
u->color = WHITE;
}
time = 0;
for each vertex u ∈ G->V
{
if (u->color == WHITE)
DFS_Visit(u);
}
}
DFS_Visit(u)
{
u->color = GREY;
time = time+1;
u->d = time;
for each v ∈ u->Adj[]
{
if (v->color == WHITE)
DFS_Visit(v);
}
u->color = BLACK;
time = time+1;
u->f = time;
}
What does u->f represent?
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search: The Code
DFS(G)
{
for each vertex u ∈ G->V
{
u->color = WHITE;
}
time = 0;
for each vertex u ∈ G->V
{
if (u->color == WHITE)
DFS_Visit(u);
}
}
DFS_Visit(u)
{
u->color = GREY;
time = time+1;
u->d = time;
for each v ∈ u->Adj[]
{
if (v->color == WHITE)
DFS_Visit(v);
}
u->color = BLACK;
time = time+1;
u->f = time;
}
Will all vertices eventually be colored black?
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search: The Code
DFS(G)
{
for each vertex u ∈ G->V
{
u->color = WHITE;
}
time = 0;
for each vertex u ∈ G->V
{
if (u->color == WHITE)
DFS_Visit(u);
}
}
DFS_Visit(u)
{
u->color = GREY;
time = time+1;
u->d = time;
for each v ∈ u->Adj[]
{
if (v->color == WHITE)
DFS_Visit(v);
}
u->color = BLACK;
time = time+1;
u->f = time;
}
What will be the running time?
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search: The Code
DFS(G)
{
for each vertex u ∈ G->V
{
u->color = WHITE;
}
time = 0;
for each vertex u ∈ G->V
{
if (u->color == WHITE)
DFS_Visit(u);
}
}
DFS_Visit(u)
{
u->color = GREY;
time = time+1;
u->d = time;
for each v ∈ u->Adj[]
{
if (v->color == WHITE)
DFS_Visit(v);
}
u->color = BLACK;
time = time+1;
u->f = time;
}
Running time: O(n2
) because call DFS_Visit on each vertex,
and the loop over Adj[] can run as many as |V| times
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search: The Code
DFS(G)
{
for each vertex u ∈ G->V
{
u->color = WHITE;
}
time = 0;
for each vertex u ∈ G->V
{
if (u->color == WHITE)
DFS_Visit(u);
}
}
DFS_Visit(u)
{
u->color = GREY;
time = time+1;
u->d = time;
for each v ∈ u->Adj[]
{
if (v->color == WHITE)
DFS_Visit(v);
}
u->color = BLACK;
time = time+1;
u->f = time;
}
BUT, there is actually a tighter bound.
How many times will DFS_Visit() actually be called?
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search: The Code
DFS(G)
{
for each vertex u ∈ G->V
{
u->color = WHITE;
}
time = 0;
for each vertex u ∈ G->V
{
if (u->color == WHITE)
DFS_Visit(u);
}
}
DFS_Visit(u)
{
u->color = GREY;
time = time+1;
u->d = time;
for each v ∈ u->Adj[]
{
if (v->color == WHITE)
DFS_Visit(v);
}
u->color = BLACK;
time = time+1;
u->f = time;
}
So, running time of DFS = O(V+E)
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Depth-First Search Analysis
This running time argument is an informal example of
amortized analysis
“Charge” the exploration of edge to the edge:
Each loop in DFS_Visit can be attributed to an edge in the
graph
Runs once/edge if directed graph, twice if undirected
Thus loop will run in O(E) time, algorithm O(V+E)
Storage requirement is O(V+E), since adj list requires
O(V+E) storage
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
source
vertex
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | | |
|||
| |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | | |
|||
2 | |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | | |
||3 |
2 | |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | | |
||3 | 4
2 | |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | | |
|5 |3 | 4
2 | |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | | |
|5 | 63 | 4
2 | |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | 8 | |
|5 | 63 | 4
2 | 7 |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | 8 | |
|5 | 63 | 4
2 | 7 |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | 8 | |
|5 | 63 | 4
2 | 7 9 |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | 8 | |
|5 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 | 8 |11 |
|5 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 |12 8 |11 |
|5 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 |12 8 |11 13|
|5 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 |12 8 |11 13|
14|5 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 |12 8 |11 13|
14|155 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS Example
1 |12 8 |11 13|16
14|155 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS introduces an important distinction among edges in
the original graph:
Tree edge: encounter new (white) vertex
The tree edges form a spanning forest
Can tree edges form cycles? Why or why not?
DFS: Kinds of edges
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
1 |12 8 |11 13|16
14|155 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Tree edges
DFS: Kinds of edges
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS: Kinds of edges
DFS introduces an important distinction among edges in
the original graph:
Tree edge: encounter new (white) vertex
Back edge: from descendent to ancestor
Encounter a grey vertex (grey to grey)
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Tree edges Back edges
DFS: Kinds of edges
1 | | |
||3 |
2 | |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS: Kinds of edges
DFS introduces an important distinction among edges in
the original graph:
Tree edge: encounter new (white) vertex
Back edge: from descendent to ancestor
Forward edge: from ancestor to descendent
Not a tree edge, though
From grey node to black node
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
Tree edges Back edges Forward edges
DFS: Kinds of edges
1 | 8 | |
|5 | 63 | 4
2 | 7 |
source
vertex
d f
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS: Kinds of edges
DFS introduces an important distinction among edges in
the original graph:
Tree edge: encounter new (white) vertex
Back edge: from descendent to ancestor
Forward edge: from ancestor to descendent
Cross edge: between a tree or subtrees
From a grey node to a black node
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
1 |12 8 |11 13|16
14|155 | 63 | 4
2 | 7 9 |10
source
vertex
d f
Tree edges Back edges Forward edges Cross edges
DFS: Kinds of edges
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16
DFS: Kinds of edges
DFS introduces an important distinction among edges in
the original graph:
Tree edge: encounter new (white) vertex
Back edge: from descendent to ancestor
Forward edge: from ancestor to descendent
Cross edge: between a tree or subtrees
Note: tree and back edges are very important; some
algorithms use forward and cross edges

More Related Content

What's hot

Trig inverse day 1
Trig inverse day 1Trig inverse day 1
Trig inverse day 1jbianco9910
 
g∗S-closed sets in topological spaces
g∗S-closed sets in topological spacesg∗S-closed sets in topological spaces
g∗S-closed sets in topological spacesIJMER
 
Best polynomial approximation
Best polynomial approximationBest polynomial approximation
Best polynomial approximationDadang Hamzah
 
Geometry Section 12-4
Geometry Section 12-4Geometry Section 12-4
Geometry Section 12-4Jimbo Lamb
 
Geometry Section 12-5
Geometry Section 12-5Geometry Section 12-5
Geometry Section 12-5Jimbo Lamb
 
SUSY Q-Balls and Boson Stars in Anti-de Sitter space-time
SUSY Q-Balls and Boson Stars in Anti-de Sitter space-timeSUSY Q-Balls and Boson Stars in Anti-de Sitter space-time
SUSY Q-Balls and Boson Stars in Anti-de Sitter space-timeJurgen Riedel
 
bT-Locally Closed Sets and bT-Locally Continuous Functions In Supra Topologic...
bT-Locally Closed Sets and bT-Locally Continuous Functions In Supra Topologic...bT-Locally Closed Sets and bT-Locally Continuous Functions In Supra Topologic...
bT-Locally Closed Sets and bT-Locally Continuous Functions In Supra Topologic...IOSR Journals
 

What's hot (8)

Trig inverse day 1
Trig inverse day 1Trig inverse day 1
Trig inverse day 1
 
g∗S-closed sets in topological spaces
g∗S-closed sets in topological spacesg∗S-closed sets in topological spaces
g∗S-closed sets in topological spaces
 
Best polynomial approximation
Best polynomial approximationBest polynomial approximation
Best polynomial approximation
 
Geometry Section 12-4
Geometry Section 12-4Geometry Section 12-4
Geometry Section 12-4
 
Geometry Section 12-5
Geometry Section 12-5Geometry Section 12-5
Geometry Section 12-5
 
SUSY Q-Balls and Boson Stars in Anti-de Sitter space-time
SUSY Q-Balls and Boson Stars in Anti-de Sitter space-timeSUSY Q-Balls and Boson Stars in Anti-de Sitter space-time
SUSY Q-Balls and Boson Stars in Anti-de Sitter space-time
 
SPLITTING FIELD.ppt
SPLITTING FIELD.pptSPLITTING FIELD.ppt
SPLITTING FIELD.ppt
 
bT-Locally Closed Sets and bT-Locally Continuous Functions In Supra Topologic...
bT-Locally Closed Sets and bT-Locally Continuous Functions In Supra Topologic...bT-Locally Closed Sets and bT-Locally Continuous Functions In Supra Topologic...
bT-Locally Closed Sets and bT-Locally Continuous Functions In Supra Topologic...
 

Viewers also liked

Mexican wedding traditions
Mexican wedding traditionsMexican wedding traditions
Mexican wedding traditionsMexican Wedding
 
Final storyboard
Final storyboardFinal storyboard
Final storyboardlackeyd
 
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...kirounb
 
PPTofPoetryObject
PPTofPoetryObjectPPTofPoetryObject
PPTofPoetryObjectLeia Dolphy
 
Eng.301.01 introduction
Eng.301.01 introductionEng.301.01 introduction
Eng.301.01 introductionMaggieVerspoor
 
אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס mosaic,שפר רבקה
 אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס mosaic,שפר רבקה אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס mosaic,שפר רבקה
אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס mosaic,שפר רבקהRSHEFF30
 
Recommendation Borislava Georgieva
Recommendation Borislava GeorgievaRecommendation Borislava Georgieva
Recommendation Borislava GeorgievaBorislava Georgieva
 

Viewers also liked (13)

RESUME_Nishan - Copy
RESUME_Nishan - CopyRESUME_Nishan - Copy
RESUME_Nishan - Copy
 
Saied Fathy CV.
Saied Fathy CV.Saied Fathy CV.
Saied Fathy CV.
 
Human rightsresourceeng pdf-rev
Human rightsresourceeng pdf-revHuman rightsresourceeng pdf-rev
Human rightsresourceeng pdf-rev
 
Mexican wedding traditions
Mexican wedding traditionsMexican wedding traditions
Mexican wedding traditions
 
Final storyboard
Final storyboardFinal storyboard
Final storyboard
 
EuCARD-REP-2011-006
EuCARD-REP-2011-006EuCARD-REP-2011-006
EuCARD-REP-2011-006
 
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...
 
PPTofPoetryObject
PPTofPoetryObjectPPTofPoetryObject
PPTofPoetryObject
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentation
 
Eng.301.01 introduction
Eng.301.01 introductionEng.301.01 introduction
Eng.301.01 introduction
 
ICCP sponsorship overview
ICCP sponsorship overviewICCP sponsorship overview
ICCP sponsorship overview
 
אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס mosaic,שפר רבקה
 אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס mosaic,שפר רבקה אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס mosaic,שפר רבקה
אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס mosaic,שפר רבקה
 
Recommendation Borislava Georgieva
Recommendation Borislava GeorgievaRecommendation Borislava Georgieva
Recommendation Borislava Georgieva
 

Similar to Graph 02

Breadth first search and depth first search
Breadth first search and  depth first searchBreadth first search and  depth first search
Breadth first search and depth first searchHossain Md Shakhawat
 
lecture 18
lecture 18lecture 18
lecture 18sajinsc
 
Bfs and dfs in data structure
Bfs and dfs in  data structure Bfs and dfs in  data structure
Bfs and dfs in data structure Ankit Kumar Singh
 
Elementary Graph Algo.ppt
Elementary Graph Algo.pptElementary Graph Algo.ppt
Elementary Graph Algo.pptSazidHossain9
 
Depth first search [dfs]
Depth first search [dfs]Depth first search [dfs]
Depth first search [dfs]DEEPIKA T
 
DFS ppt.pdf
DFS ppt.pdfDFS ppt.pdf
DFS ppt.pdfRajkk5
 
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gpchandrashekarr799
 
22-graphs1-dfs-bfs.ppt
22-graphs1-dfs-bfs.ppt22-graphs1-dfs-bfs.ppt
22-graphs1-dfs-bfs.pptKarunaBiswas3
 
Depth First Search ( DFS )
Depth First Search ( DFS )Depth First Search ( DFS )
Depth First Search ( DFS )Sazzad Hossain
 
Algorithm Design and Complexity - Course 7
Algorithm Design and Complexity - Course 7Algorithm Design and Complexity - Course 7
Algorithm Design and Complexity - Course 7Traian Rebedea
 

Similar to Graph 02 (15)

Breadth first search and depth first search
Breadth first search and  depth first searchBreadth first search and  depth first search
Breadth first search and depth first search
 
lecture 18
lecture 18lecture 18
lecture 18
 
Bfs dfs
Bfs dfsBfs dfs
Bfs dfs
 
Bfs and dfs in data structure
Bfs and dfs in  data structure Bfs and dfs in  data structure
Bfs and dfs in data structure
 
Elementary Graph Algo.ppt
Elementary Graph Algo.pptElementary Graph Algo.ppt
Elementary Graph Algo.ppt
 
Chapter 23 aoa
Chapter 23 aoaChapter 23 aoa
Chapter 23 aoa
 
Depth first search [dfs]
Depth first search [dfs]Depth first search [dfs]
Depth first search [dfs]
 
DFS ppt.pdf
DFS ppt.pdfDFS ppt.pdf
DFS ppt.pdf
 
Graph 01
Graph 01Graph 01
Graph 01
 
19-graph1 (1).ppt
19-graph1 (1).ppt19-graph1 (1).ppt
19-graph1 (1).ppt
 
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp
 
Chapter 25 aoa
Chapter 25 aoaChapter 25 aoa
Chapter 25 aoa
 
22-graphs1-dfs-bfs.ppt
22-graphs1-dfs-bfs.ppt22-graphs1-dfs-bfs.ppt
22-graphs1-dfs-bfs.ppt
 
Depth First Search ( DFS )
Depth First Search ( DFS )Depth First Search ( DFS )
Depth First Search ( DFS )
 
Algorithm Design and Complexity - Course 7
Algorithm Design and Complexity - Course 7Algorithm Design and Complexity - Course 7
Algorithm Design and Complexity - Course 7
 

Recently uploaded

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIShubhangi Sonawane
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxNikitaBankoti2
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 

Recently uploaded (20)

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptx
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 

Graph 02

  • 1. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 1 Graphs (Cont.) graph (many to many)
  • 2. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Graph Searching Given: a graph G = (V, E), directed or undirected Goal: methodically explore every vertex and every edge Ultimately: build a tree on the graph Pick a vertex as the root Choose certain edges to produce a tree Note: might also build a forest if graph is not connected • There are two standard graph traversal techniques:  Breadth-First Search (BFS)  Depth-First Search (DFS)
  • 3. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search “Explore” a graph, turning it into a tree One vertex at a time Expand frontier of explored vertices across the breadth of the frontier Builds a tree over the graph Pick a source vertex to be the root Find (“discover”) its children, then their children, etc.
  • 4. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search Again will associate vertex “colors” to guide the algorithm White vertices have not been discovered All vertices start out white Grey vertices are discovered but not fully explored They may be adjacent to white vertices Black vertices are discovered and fully explored They are adjacent only to black and grey vertices Explore vertices by scanning adjacency list of grey vertices
  • 5. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search
  • 6. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ r s t u v w x y
  • 7. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ r s t u v w x y sQ:
  • 8. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example 1 ∞ 0 1 ∞ ∞ ∞ ∞ r s t u v w x y wQ: r
  • 9. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example 1 ∞ 0 1 2 2 ∞ ∞ r s t u v w x y rQ: t x
  • 10. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example 1 2 0 1 2 2 ∞ ∞ r s t u v w x y Q: t x v
  • 11. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example 1 2 0 1 2 2 3 ∞ r s t u v w x y Q: x v u
  • 12. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example 1 2 0 1 2 2 3 3 r s t u v w x y Q: v u y
  • 13. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example 1 2 0 1 2 2 3 3 r s t u v w x y Q: u y
  • 14. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example 1 2 0 1 2 2 3 3 r s t u v w x y Q: y
  • 15. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Example 1 2 0 1 2 2 3 3 r s t u v w x y Q: Ø
  • 16. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 BFS - A Graphical Representation M N O P I J K L E F G H A B C D 0 M N O P I J K L E F G H A B C D 0 1 M N O P I J K L E F G H A C DB 0 1 2 M N O P I J K L E F G H A B C D 0 1 2 3 d)c) b)a)
  • 17. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 BFS - A Graphical Representation M N O P I J K L E F G H A B C D 4 0 1 2 3 M N O P I J K L E F G H A B C D 4 5 0 1 2 3 e) f)
  • 18. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 BFS: The Code Again BFS(G, s) { initialize vertices; Q = {s}; while (Q not empty) { u = RemoveTop(Q); for each v ∈ u->adj { if (v->color == WHITE) v->color = GREY; v->d = u->d + 1; v->p = u; Enqueue(Q, v); } u->color = BLACK; } } What will be the running time? Touch every vertex: O(V) u = every vertex, but only once (Why?) So v = every vertex that appears in some other vert’s adjacency list Total running time: O(V+E)
  • 19. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 BFS: The Code Again BFS(G, s) { initialize vertices; Q = {s}; while (Q not empty) { u = RemoveTop(Q); for each v ∈ u->adj { if (v->color == WHITE) v->color = GREY; v->d = u->d + 1; v->p = u; Enqueue(Q, v); } u->color = BLACK; } } What will be the storage cost in addition to storing the tree? Total space used: O(V + Σ(degree(v))) = O(V+E)
  • 20. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Breadth-First Search: Properties BFS calculates the shortest-path distance to the source node Shortest-path distance δ(s,v) = minimum number of edges from s to v, or ∞ if v not reachable from s BFS builds breadth-first tree, in which paths to root represent shortest paths in G Thus can use BFS to calculate shortest path from one vertex to another in O(V+E) time in an unweighted tree
  • 21. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search Depth-first search is another strategy for exploring a graph Explore “deeper” in the graph whenever possible Edges are explored out of the most recently discovered vertex v that still has unexplored edges When all of v’s edges have been explored, backtrack to the vertex from which v was discovered Vertices initially colored white Then colored grey when discovered Then black when finished
  • 22. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search: The Code DFS(G) { for each vertex u ∈ G->V { u->color = WHITE; } time = 0; for each vertex u ∈ G->V { if (u->color == WHITE) DFS_Visit(u); } } DFS_Visit(u) { u->color = GREY; time = time+1; u->d = time; for each v ∈ u->Adj[] { if (v->color == WHITE) DFS_Visit(v); } u->color = BLACK; time = time+1; u->f = time; }
  • 23. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search: The Code DFS(G) { for each vertex u ∈ G->V { u->color = WHITE; } time = 0; for each vertex u ∈ G->V { if (u->color == WHITE) DFS_Visit(u); } } DFS_Visit(u) { u->color = GREY; time = time+1; u->d = time; for each v ∈ u->Adj[] { if (v->color == WHITE) DFS_Visit(v); } u->color = BLACK; time = time+1; u->f = time; } What does u->d represent?
  • 24. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search: The Code DFS(G) { for each vertex u ∈ G->V { u->color = WHITE; } time = 0; for each vertex u ∈ G->V { if (u->color == WHITE) DFS_Visit(u); } } DFS_Visit(u) { u->color = GREY; time = time+1; u->d = time; for each v ∈ u->Adj[] { if (v->color == WHITE) DFS_Visit(v); } u->color = BLACK; time = time+1; u->f = time; } What does u->f represent?
  • 25. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search: The Code DFS(G) { for each vertex u ∈ G->V { u->color = WHITE; } time = 0; for each vertex u ∈ G->V { if (u->color == WHITE) DFS_Visit(u); } } DFS_Visit(u) { u->color = GREY; time = time+1; u->d = time; for each v ∈ u->Adj[] { if (v->color == WHITE) DFS_Visit(v); } u->color = BLACK; time = time+1; u->f = time; } Will all vertices eventually be colored black?
  • 26. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search: The Code DFS(G) { for each vertex u ∈ G->V { u->color = WHITE; } time = 0; for each vertex u ∈ G->V { if (u->color == WHITE) DFS_Visit(u); } } DFS_Visit(u) { u->color = GREY; time = time+1; u->d = time; for each v ∈ u->Adj[] { if (v->color == WHITE) DFS_Visit(v); } u->color = BLACK; time = time+1; u->f = time; } What will be the running time?
  • 27. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search: The Code DFS(G) { for each vertex u ∈ G->V { u->color = WHITE; } time = 0; for each vertex u ∈ G->V { if (u->color == WHITE) DFS_Visit(u); } } DFS_Visit(u) { u->color = GREY; time = time+1; u->d = time; for each v ∈ u->Adj[] { if (v->color == WHITE) DFS_Visit(v); } u->color = BLACK; time = time+1; u->f = time; } Running time: O(n2 ) because call DFS_Visit on each vertex, and the loop over Adj[] can run as many as |V| times
  • 28. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search: The Code DFS(G) { for each vertex u ∈ G->V { u->color = WHITE; } time = 0; for each vertex u ∈ G->V { if (u->color == WHITE) DFS_Visit(u); } } DFS_Visit(u) { u->color = GREY; time = time+1; u->d = time; for each v ∈ u->Adj[] { if (v->color == WHITE) DFS_Visit(v); } u->color = BLACK; time = time+1; u->f = time; } BUT, there is actually a tighter bound. How many times will DFS_Visit() actually be called?
  • 29. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search: The Code DFS(G) { for each vertex u ∈ G->V { u->color = WHITE; } time = 0; for each vertex u ∈ G->V { if (u->color == WHITE) DFS_Visit(u); } } DFS_Visit(u) { u->color = GREY; time = time+1; u->d = time; for each v ∈ u->Adj[] { if (v->color == WHITE) DFS_Visit(v); } u->color = BLACK; time = time+1; u->f = time; } So, running time of DFS = O(V+E)
  • 30. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Depth-First Search Analysis This running time argument is an informal example of amortized analysis “Charge” the exploration of edge to the edge: Each loop in DFS_Visit can be attributed to an edge in the graph Runs once/edge if directed graph, twice if undirected Thus loop will run in O(E) time, algorithm O(V+E) Storage requirement is O(V+E), since adj list requires O(V+E) storage
  • 31. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example source vertex
  • 32. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | | | ||| | | source vertex d f
  • 33. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | | | ||| 2 | | source vertex d f
  • 34. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | | | ||3 | 2 | | source vertex d f
  • 35. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | | | ||3 | 4 2 | | source vertex d f
  • 36. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | | | |5 |3 | 4 2 | | source vertex d f
  • 37. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | | | |5 | 63 | 4 2 | | source vertex d f
  • 38. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | 8 | | |5 | 63 | 4 2 | 7 | source vertex d f
  • 39. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | 8 | | |5 | 63 | 4 2 | 7 | source vertex d f
  • 40. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | 8 | | |5 | 63 | 4 2 | 7 9 | source vertex d f
  • 41. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | 8 | | |5 | 63 | 4 2 | 7 9 |10 source vertex d f
  • 42. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 | 8 |11 | |5 | 63 | 4 2 | 7 9 |10 source vertex d f
  • 43. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 |12 8 |11 | |5 | 63 | 4 2 | 7 9 |10 source vertex d f
  • 44. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 |12 8 |11 13| |5 | 63 | 4 2 | 7 9 |10 source vertex d f
  • 45. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 |12 8 |11 13| 14|5 | 63 | 4 2 | 7 9 |10 source vertex d f
  • 46. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 |12 8 |11 13| 14|155 | 63 | 4 2 | 7 9 |10 source vertex d f
  • 47. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS Example 1 |12 8 |11 13|16 14|155 | 63 | 4 2 | 7 9 |10 source vertex d f
  • 48. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS introduces an important distinction among edges in the original graph: Tree edge: encounter new (white) vertex The tree edges form a spanning forest Can tree edges form cycles? Why or why not? DFS: Kinds of edges
  • 49. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 1 |12 8 |11 13|16 14|155 | 63 | 4 2 | 7 9 |10 source vertex d f Tree edges DFS: Kinds of edges
  • 50. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS: Kinds of edges DFS introduces an important distinction among edges in the original graph: Tree edge: encounter new (white) vertex Back edge: from descendent to ancestor Encounter a grey vertex (grey to grey)
  • 51. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Tree edges Back edges DFS: Kinds of edges 1 | | | ||3 | 2 | | source vertex d f
  • 52. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS: Kinds of edges DFS introduces an important distinction among edges in the original graph: Tree edge: encounter new (white) vertex Back edge: from descendent to ancestor Forward edge: from ancestor to descendent Not a tree edge, though From grey node to black node
  • 53. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 Tree edges Back edges Forward edges DFS: Kinds of edges 1 | 8 | | |5 | 63 | 4 2 | 7 | source vertex d f
  • 54. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS: Kinds of edges DFS introduces an important distinction among edges in the original graph: Tree edge: encounter new (white) vertex Back edge: from descendent to ancestor Forward edge: from ancestor to descendent Cross edge: between a tree or subtrees From a grey node to a black node
  • 55. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 1 |12 8 |11 13|16 14|155 | 63 | 4 2 | 7 9 |10 source vertex d f Tree edges Back edges Forward edges Cross edges DFS: Kinds of edges
  • 56. Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET 12/29/16 DFS: Kinds of edges DFS introduces an important distinction among edges in the original graph: Tree edge: encounter new (white) vertex Back edge: from descendent to ancestor Forward edge: from ancestor to descendent Cross edge: between a tree or subtrees Note: tree and back edges are very important; some algorithms use forward and cross edges