SlideShare a Scribd company logo
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 1
jbianco9910
 
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
IJMER
 
Best polynomial approximation
Best polynomial approximationBest polynomial approximation
Best polynomial approximation
Dadang Hamzah
 
Geometry Section 12-4
Geometry Section 12-4Geometry Section 12-4
Geometry Section 12-4
Jimbo Lamb
 
Geometry Section 12-5
Geometry Section 12-5Geometry Section 12-5
Geometry Section 12-5
Jimbo 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-time
Jurgen Riedel
 
SPLITTING FIELD.ppt
SPLITTING FIELD.pptSPLITTING FIELD.ppt
SPLITTING FIELD.ppt
Triveni Prabaakar
 
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

RESUME_Nishan - Copy
RESUME_Nishan - CopyRESUME_Nishan - Copy
RESUME_Nishan - Copy
Nishan Nazimuddin
 
Saied Fathy CV.
Saied Fathy CV.Saied Fathy CV.
Saied Fathy CV.
Saied Fathy
 
Human rightsresourceeng pdf-rev
Human rightsresourceeng pdf-revHuman rightsresourceeng pdf-rev
Human rightsresourceeng pdf-rev
Matthew Daniels, J.D., Ph.D.
 
Mexican wedding traditions
Mexican wedding traditionsMexican wedding traditions
Mexican wedding traditions
Mexican Wedding
 
Final storyboard
Final storyboardFinal storyboard
Final storyboard
lackeyd
 
EuCARD-REP-2011-006
EuCARD-REP-2011-006EuCARD-REP-2011-006
EuCARD-REP-2011-006
Daniel Ogburn
 
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...
перспективи розвитку атомної енергетики в україні з врахуванням досвіду чорно...
kirounb
 
PPTofPoetryObject
PPTofPoetryObjectPPTofPoetryObject
PPTofPoetryObjectLeia Dolphy
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentation
Kaela Vanden Berg
 
Eng.301.01 introduction
Eng.301.01 introductionEng.301.01 introduction
Eng.301.01 introduction
MaggieVerspoor
 
ICCP sponsorship overview
ICCP sponsorship overviewICCP sponsorship overview
ICCP sponsorship overview
Dereak Healthcare Services & Solutions
 
אמנות היצירה .משגב. הגליל המערבי.סדנאות יצירה, פסיפס 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 search
Hossain Md Shakhawat
 
lecture 18
lecture 18lecture 18
lecture 18
sajinsc
 
Bfs dfs
Bfs dfsBfs dfs
Bfs dfs
Praveen Yadav
 
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.ppt
SazidHossain9
 
Chapter 23 aoa
Chapter 23 aoaChapter 23 aoa
Chapter 23 aoa
Hanif Durad
 
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.pdf
Rajkk5
 
Graph 01
Graph 01Graph 01
Graph 01
Ajharul Abedeen
 
19-graph1 (1).ppt
19-graph1 (1).ppt19-graph1 (1).ppt
19-graph1 (1).ppt
Himajanaidu2
 
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp
22-graphs1-dfs-bfs.ppt odiehehei7hoh97ho7bi6vi6go7gp
chandrashekarr799
 
Chapter 25 aoa
Chapter 25 aoaChapter 25 aoa
Chapter 25 aoa
Hanif Durad
 
22-graphs1-dfs-bfs.ppt
22-graphs1-dfs-bfs.ppt22-graphs1-dfs-bfs.ppt
22-graphs1-dfs-bfs.ppt
KarunaBiswas3
 
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 7
Traian 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

বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
Celine George
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
What is the purpose of studying mathematics.pptx
What is the purpose of studying mathematics.pptxWhat is the purpose of studying mathematics.pptx
What is the purpose of studying mathematics.pptx
christianmathematics
 
Group Presentation 2 Economics.Ariana Buscigliopptx
Group Presentation 2 Economics.Ariana BuscigliopptxGroup Presentation 2 Economics.Ariana Buscigliopptx
Group Presentation 2 Economics.Ariana Buscigliopptx
ArianaBusciglio
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
Krisztián Száraz
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 

Recently uploaded (20)

বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
What is the purpose of studying mathematics.pptx
What is the purpose of studying mathematics.pptxWhat is the purpose of studying mathematics.pptx
What is the purpose of studying mathematics.pptx
 
Group Presentation 2 Economics.Ariana Buscigliopptx
Group Presentation 2 Economics.Ariana BuscigliopptxGroup Presentation 2 Economics.Ariana Buscigliopptx
Group Presentation 2 Economics.Ariana Buscigliopptx
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 

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