Bidirectional Search is a graph traversal strategy that simultaneously runs two separate searches: a forward search from the initial state and a backward search from the goal state. The algorithm terminates successfully when the two search frontiers intersect, identifying a node common to both. This approach is most effective when the successor function is invertible, allowing the backward search to generate predecessor states. Its primary advantage is a drastic reduction in the effective search space explored, often cutting exponential time complexity to roughly the square root of a unidirectional search.
