This document discusses various heuristic search algorithms including A*, iterative-deepening A*, and recursive best-first search. It begins by introducing the concept of using evaluation functions to guide best-first search and preferentially expand nodes with lower heuristic values. It then presents the general graph search algorithm and describes how A* specifically reorders nodes using an evaluation function that considers path cost and estimated cost to the goal. Consistency conditions for the heuristic function are discussed which guarantee A* finds optimal solutions.