foundations of computational agents
There is a vast literature on search techniques in operations research, computer science, and AI. Search was seen early on as one of the foundations of AI. The AI literature emphasizes the use of heuristics in search.
Breadth-first search was invented by Moore [1959]. Lowest-cost-first search with multiple path pruning is one of the variants of Dijkstra’s algorithm [Dijkstra, 1959], and is also equivalent to with a heuristic of zero. The algorithm was developed by Hart et al. [1968]. The optimality of is investigated by Dechter and Pearl [1985]. For a detailed analysis of heuristic search, see Pearl [1984].
Depth-first iterative deepening is described in Korf [1985]. Branch-and-bound search, developed in the operations research community, is described in Lawler and Wood [1966].
Dynamic programming is a general algorithm that will be used as a dual to search algorithms in other parts of this book. See Cormen et al. [2022] for more details on the general class of dynamic programming algorithms.
Bidirectional search was pioneered by Pohl [1971]. Chen et al. [2017] provide a bidirectional search algorithm with provable optimality.