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.
Basic search algorithms are discussed in Nilsson . For a detailed analysis of heuristic search see Pearl . The algorithm was developed by Hart et al. . The optimality of is investigated by Dechter and Pearl . Breadth-first search was invented by Moore . Lowest-cost-first search with multiple path pruning is known as Dijkstra’s algorithm [Dijkstra, 1959]. Depth-first iterative deepening is described in Korf . Branch-and-bound search was developed in the operations research community and is described in Lawler and Wood .
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.  for more details on the general class of dynamic programming algorithms.