foundations of computational agents
The following are the main points you should have learned from this chapter:
Many problems can be abstracted to the problem of finding paths in graphs.
Breadth-first and depth-first searches can find paths in graphs without any extra knowledge beyond the graph.
${A}^{*}$ search can use a heuristic function that estimates the cost from a node to a goal. If graph is not pathological (see Proposition 3.2) and the heuristic is admissible, ${A}^{*}$ is guaranteed to find a lowest-cost path to a goal if one exists.
Multiple-path pruning and cycle pruning can be used to make search more efficient.
Iterative deepening and depth-first branch-and-bound searches can be used to find lowest-cost paths with less memory than methods, such as ${A}^{*}$, which store multiple paths.
When graphs are small enough to store the nodes, dynamic programming records the actual cost of a lowest-cost path from each node to the goal, which can be used to find the next arc in an optimal path.