0% found this document useful (0 votes)
147 views

Algorithm: Depth First Search

Depth First Search (DFS) explores the problem space by going deeper before exploring other paths. It uses a last-in first-out stack to keep track of unexplored nodes. DFS is commonly implemented recursively with the recursion stack replacing an explicit node stack. It has advantages of lower memory usage than breadth-first search but may get stuck exploring one path forever without finding a solution.

Uploaded by

Lini Ickappan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
147 views

Algorithm: Depth First Search

Depth First Search (DFS) explores the problem space by going deeper before exploring other paths. It uses a last-in first-out stack to keep track of unexplored nodes. DFS is commonly implemented recursively with the recursion stack replacing an explicit node stack. It has advantages of lower memory usage than breadth-first search but may get stuck exploring one path forever without finding a solution.

Uploaded by

Lini Ickappan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 1

Depth First Search

Depth First Search (DFS) searches deeper into the problem space. Breadth-first search always generates successor of
the deepest unexpanded node. Depth First Search uses last-in first-out stack for keeping the unexpanded nodes.
ore commonly! depth-first search is implemented recursi"ely! with the recursion stack taking the place of an
explicit node stack.
Algorithm: Depth First Search
#.$f the initial state is a goal state! %uit and return success.
&.'therwise! loop until success or failure is signaled.
a) (enerate a state! say )! and let it be the successor of the initial state. $f there is no successor! signal failure.
b) *all Depth-First Search with ) as the initial state.
c) $f success is returned! signal success. 'therwise continue in this loop.
Advantages of Depth-First Search
1. +he ad"antage of depth-first Search is that memory re%uirement is only linear with respect to the search
graph. +his is in contrast with breadth-first search which re%uires more space. +he reason is that the
algorithm only needs to store a stack of nodes on the path from the root to the current node.
2. +he time complexity of a depth-first Search to depth d is '(b,d) since it generates the same set of nodes as
breadth-first search! but simply in a different order. +hus practically depth-first search is time-limited rather
than space-limited.
-. $f depth-first search finds solution without exploring much in a path then the time and space it takes will be
"ery less.
Disadvantages of Depth-First Search
#. +he disad"antage of Depth-First Search is that there is a possibility that it may go down the left-most path
fore"er. )"en a finite graph can generate an infinite tree. 'ne solution to this problem is to impose a cutoff
depth on the search. .lthough the ideal cutoff is the solution depth d and this "alue is rarely known in
ad"ance of actually sol"ing the problem. $f the chosen cutoff depth is less than d! the algorithm will fail to
find a solution! whereas if the cutoff depth is greater than d! a large price is paid in execution time! and the
first solution found may not be an optimal one.
&. Depth-First Search is not guaranteed to find the solution.
-. .nd there is no guarantee to find a minimal solution! if more than one solution exists.

You might also like