Lecture Notes - 3
Lecture Notes - 3
Lecture Notes - 3
(Subject Code: CSC 602, ITC 651)
Prepared by
Dr. Sourabh Jain
Indian Institute of Information Technology Sonepat
Uninformed Search Algorithms
Whoever it may be (humans or AI) need to think of all possible ways to reach the
goal state(if it exists) from the initial state, all the consequences, etc. Similarly, AI
systems use various search algorithms for a particular goal state(if it exists).
As the name ‘Uninformed Search’ means the machine blindly follows the
algorithm regardless of whether right or wrong, efficient or in-efficient.
Breadth-first Search
Depth-first Search
BFS algorithm starts searching from the root node of the tree and expands all
successor node at the current level before moving to nodes of next level.
If there are more than one solutions for a given problem, then BFS will provide
the minimal solution which requires the least number of steps.
Disadvantages:
It requires lots of memory since each level of the tree must be saved into memory
to expand the next level.
BFS needs lots of time if the solution is far away from the root node.
Breadth-First Search (Cont…)
Time Complexity: Time Complexity of BFS algorithm can be obtained by the number of
nodes traversed in BFS until the shallowest Node. Where the d= depth of shallowest
solution and b is a node at every state.
Space Complexity: Space complexity of BFS algorithm is given by the Memory size of
frontier which is O (bd) .
Completeness: BFS is complete, which means if the shallowest goal node is at some finite
depth, then BFS will find a solution.
Optimality: BFS is optimal if path cost is a non-decreasing function of the depth of the
node.
Depth-First Search
Depth-first search is a recursive algorithm for traversing a tree or graph data
structure.
It is called the depth-first search because it starts from the root node and follows
each path to its greatest depth node before moving to the next path.
It will be traversing, searching for a key at the leaf of a particular branch. If the
key is not found the searching retraces its steps back to the point from where the
other branch was left unexplored and the same procedure is repeated for that
other branch.
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.
It takes less time to reach to the goal node than BFS algorithm (if it traverses in
the right path).
Disadvantages:
There is the possibility that many states keep re-occurring, and there is no
guarantee of finding the solution.
DFS algorithm goes for deep down searching and sometime it may go to the
infinite loop.
Depth-First Search (Cont…)
Completeness: DFS search algorithm is complete within finite state space as it will expand
every node within a limited search tree.
Time Complexity: Time complexity of DFS will be equivalent to the node traversed by the
algorithm. It is given by:
Where, m= 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(bm).
Optimal: DFS search algorithm is non-optimal, as it may generate a large number of steps
or high cost to reach to the goal node.
Uniform-cost Search Algorithm
Uniform-cost search is a searching algorithm used for traversing a weighted tree
or graph.
This algorithm comes into play when a different cost is available for each edge.
The primary goal of the uniform-cost search is to find a path to the goal node
which has the lowest cumulative cost. Uniform-cost search expands nodes
according to their path costs form the root node.
It can be used to solve any graph/tree where the optimal cost is in demand.
Total Cost: 6
Total Cost 12
Uniform cost search is optimal because at every state the path with the least cost is
chosen.
Disadvantage:
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.
Uniform-cost Search Algorithm (Cont…)
Completeness: 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
Optimal: Uniform-cost search is always optimal as it only selects a path with the lowest
path cost.