Uninformed Searching

Also known as blind search. Methods for exploring state spaces without using domain-specific knowledge about the problem.

These algorithms only know how to generate successor states and recognize goal states, but don’t have information about how close they are to a solution.

Branching Factor

The average number of successors generated from each node in a search tree or graph. Finite graph implies finite branching factor. Opposite is not necessarily true.

Algorithms

Complete iff search space is finite state space. Wanders off into infinite paths for infinite graphs. Not optimal, returns the first solution it finds.

Covered in detail in DFS on Graphs.

Depth-Limited DFS

Also known as DDFS. Depth-constrained DFS. Avoids wandering off into infinite paths.

Not complete. Causes a false-negative for nodes far apart. Not optimal. Returns the first solution it finds.

Iterative Deepening DFS

Also known as IDS. Repeatedly runs DDFS with increasing depth limits. Stops when a solution is found. Complete iff finite. Wanders off into infinite for infinite graphs. Optimal iff all action costs are equal. Time complexity comparable to BFS. Space complexity is linear.

Works similar to BFS, but uses much less memory.

Expands the shallowest nodes first. Covered in detail in BFS on Graphs.

Expands 2 frontiers: around initial and goal states. BFS is used because it searches level by level. Stops when the frontiers meet.

Also known as Dijkstra’s algorithm. Fails for graphs with negative weights. Expands the node with the lowest path cost. Optimal for general action costs. Named uniform because it expands nodes in increasing order of path cost.

Comparison

AlgorithmComplete?Optimal?Time ComplexitySpace Complexity
DFSYes*NoO(V+E)O(V+E) or O(bm)O(b^m)O(V)O(V) or O(bm)O(bm)
DDFSNoNoO(bl)O(b^l)O(bl)O(bl)
IDSYes*Yes**O(bd)O(b^d)O(bd)O(bd)
BFSYes*Yes**O(V+E)O(V+E) or O(bd)O(b^d)O(V)O(V) or O(bd)O(b^d)
BidirectionalYes*Yes**O(bd/2)O(b^{d/2})O(bd/2)O(b^{d/2})
UCSYes*YesO(b1+C/ε)O(b^{1+C/ε}) or O((V+E)log⁡V)O((V+E)\log V)O(b1+C/ε)O(b^{1+C/ε}) or O(V)O(V)

* Iff the graph is finite.
** Iff all costs are equal.

Here:

O(V)O(V)
Here:
bb
branching factor
dd
depth of the shallowest solution
mm
maximum depth of the state space
ll
depth limit
CC
cost of the optimal solution
εε
minimum action cost
Written by November 3, 2026 3 min read
Was this helpful?