Searching Algorithms

Start node, explored nodes, frontier, unexplored nodes

There is no AI without searching. Searching is a component of all methods of artificial intelligence, and the ability of efficient searching seems to be an inherent attribute of the intelligence proper.

Usually the average case counts in the search algorithms. The worst case matters mostly for control problems, the average case for the service problem.

Backtracking search

Space complexity of BT

Space complexity of a the average case is O(d).

Time Complexity of BT

Branching factor b describes how many averages branches each node has.

$$ b^d $$

b - branching factor

d - depth of the solution

Search depth limiting

It solves the problems of looping and infinite spacing. It creates a problem of setting the right search depth limit, because the solution may be outside of our search range. A solution to this is iterative search deepening, which increases the depth every time it the solution isn't found.

Heuristics and static evaluation functions