AI Notes
AI Notes
Implementation:
DFS can be implemented with stack(LIFO) data structure which will explore the
latest added nodes first, suspending the exploration of all previous nodes on
the path. This can be done using recursive procedure thar can itself on each
of the children in turn.
ALGORITHM:
Algorithm DFS(v)
Visited [v]:=1;
}
Example:
In the below search tree, we have shown the flow of depth-first search, and it will follow
the order as:
Where, b= maximum depth of any node and this can be much larger than d (Shallowest
solution depth)
Space Complexity: DFS algorithm needs to store only single path from the root node,
hence space complexity of DFS is equivalent to the size of the fringe set, which is O(b
pow b +1 ).
Advantages:
o DFS requires very less memory as it only needs to store a stack of the nodes on
the path from root node to the current node.
o It takes less time to reach to the goal node than BFS algorithm (if it traverses in
the right path).
Disadvantages:
o There is the possibility that many states keep re-occurring, and there is no
guarantee of finding the solution.
o DFS algorithm goes for deep down searching and sometimes it may go to the
infinite loop.
o Standard failure value: It indicates that problem does not have any solution.
o Cut off failure value: It defines no solution for the problem within a given depth
limit.
Algorithm:
DLS (node , goal, depth)
{
If(depth>=0)
If(node==goal)
Return goal
-if yes: a) expand the vertex and save all of its successors in stack.
b) call DLS recursively for all the nodes of the stack and go back to
step2.
If the depth limit is 2,then the nodes on level 2 are not expanded.
Advantages:
Depth-limited search is Memory efficient.
Disadvantages:
o Depth-limited search also has a disadvantage of incompleteness.
o It may not be optimal if the problem has more than one solution.
It can be used to solve any graph/tree where the optimal cost is in demand. A uniform-
cost search algorithm is implemented by the priority queue. It gives maximum priority
to the lowest cumulative cost. Uniform cost search is equivalent to BFS algorithm if the
path cost of all edges is the same.
Uniform-cost search is complete, such as if there is a solution, UCS will find it.
Time Complexity:
Let C* is Cost of the optimal solution, and ε is each step to get closer to the goal
node. Then the number of steps is = C*/ε+1. Here we have taken +1, as we start from
state 0 and end to C*/ε.
Space Complexity:
The same logic is for space complexity so, the worst-case space complexity of Uniform-
cost search is O(b1 + [C*/ε]).
Optimal: Uniform-cost search is complete, such as if there is a solution, UCS will find
it.
Advantages:
o Uniform cost search is optimal because at every state the path with the least
cost is chosen.
Disadvantages:
o It does not care about the number of steps involve in searching and only
concerned about path cost. Due to which this algorithm may be stuck in an
infinite loop.
This algorithm performs depth-first search up to a certain "depth limit", and it keeps
increasing the depth limit after each iteration until the goal node is found.
This Search algorithm combines the benefits of Breadth-first search's fast search and
depth-first search's memory efficiency.
The iterative search algorithm is useful uninformed search when search space is large,
and depth of goal node is unknown.
Example:
Following tree structure is showing the iterative deepening depth-first search. IDDFS
algorithm performs various iterations until it does not find the goal node. The iteration
performed by the algorithm is given as:
1'stIteration----->A
2'ndIteration---->A,B,C
3'rdIteration------>A,B,D,E,C,F,G
4'thIteration------>A,B,D,H,I,E,C,F,K,G
In the fourth iteration, the algorithm will find the goal node.
Time Complexity:
Let's suppose b is the branching factor and depth is d then the worst-case time complexity
is O(bd).
Space Complexity:
The space complexity of IDDFS will be O(bd).
Optimal:
IDDFS algorithm is optimal if path cost is a non- decreasing function of the depth of
the node
Advantages:
o It combines the benefits of BFS and DFS search algorithm in terms of fast search
and memory efficiency.
Disadvantages:
o The main drawback of IDDFS is that it repeats all the work of the previous phase.
Bidirectional search can use search techniques such as BFS, DFS, DLS, etc.
Example:
In the below search tree, bidirectional search algorithm is applied. This algorithm
divides one graph/tree into two sub-graphs. It starts traversing from node 1 in the
forward direction and starts from goal node 16 in the backward direction.
Advantages:
Disadvantages: