Definition
Bidirectional Search
Bidirectional search is a search strategy that searches from the given initial state and backward from a goal state. Thus, it needs “invertible” actions, meaning it can go from state to predecessor states .
Properties
Completeness
Bidirectional search is complete if , the branching factor, is finite and both directions are implemented using BFS or UCS.
Time Complexity
The search paths meet halfway, so after steps in each direction. Note that is much smaller than .
Thus, the time complexity is:
Space Complexity
See time complexity.
Optimality
Bidirectional search is optimal if , the branching factor, is finite and both directions are implemented using BFS or UCS.