Solving problems by searching
Chapter 3 addendum
(Bidirectional search)

Bidirectional Search
Simultaneously search both forward (from the initial state) and backward (from the goal state)
Stop when the two searches meet.
Intuition = 2 * O(bd/2) is smaller than O(bd)

Bidirectional Search Discussion
Numerical Example (b=10, l = 5)
Bi-directional search finds solution at d=3 for both forward and backward search.  Assuming BFS in each half 2222 nodes are expanded.
Implementation issues:
Operators are reversible, e.g., Pred(Succ(n)) = Pred(Succ(n))
There may be many possible goal states.
Construct a goal state containing the superset of all goal states.
Check if a node appears in the “other” search tree.
Using different search strategies for each half.