SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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...
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfDr Vijay Vishwakarma
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxDr. Sarita Anand
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
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
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Pooja Bhuva
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
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
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 

Kürzlich hochgeladen (20)

Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
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
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
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
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 

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