There are many search algorithms which are followed by an agent for solving the problems by searching. Some of them are:
- Random search:
In this search technique, an agent just
keeps checking any random state for being it the goal state. This is not
an effective way to search the solution because, in this search, each
node can be searched again and again, there is no fixed path followed,
problems like infinite searching can be faced.
- Breadth-first search (BFS):
In this type of search, the
agent considers every state as a node of a tree data structure. It first
checks the current node and then evaluates all the neighboring nodes.
After all the neighboring nodes are checked, it moves towards the next
set of neighboring nodes for any of the neighbor nodes, and this process
continues until the search is ended. In BFS, the nodes of the tree are
traversed level after level.
- Depth-first search (DFS):
In the DFS, the search first
begins from the root node and first one of the child node’s sub-tree is
completely traversed. That is, first all the one-sided nodes are
checked, and then the other sided nodes are checked.
- Best First Search (Heuristic Search):
In the best first
search, which is also known as the heuristic search, the agent picks up
the best node based upon the heuristic value irrespective of where the
node is.
- A* search:
It is one of the best and popular techniques
used in pathfinding and graph traversals. It decides the node to be
traversed on the basis of an f-score which is calculated according to
some norms and the node with the highest f-score gets traversed. Here,
the f-score is calculated on the basis of misplaced events and number of
nodes which needs to be moved to in order to replace the nodes.