2
A* - Optimality A* is optimally efficient (Dechter and Pearl 1985): –It can be shown that all algorithms that do not expand a node which A* did expand may miss an optimal solution

3
Memory-bounded heuristic search A* keeps all generated nodes in memory –On many problems A* will run out of memory Iterative deepening A* (IDA*) –Like IDS but uses f-cost rather than depth at each iteration SMA* (Simplified Memory-Bounded A*) –Uses all available memory –Proceeds like A* but when it runs out of memory it drops the worst leaf node (one with highest f-value) –If all leaf nodes have the same f-value then it drops oldest and expands the newest –Optimal and complete if depth of shallowest goal node is less than memory size

4
Iterative Deepening A* (IDA*) Use f(n) = g(n) + h(n) like in A* Each iteration is depth-first with cutoff on the value of f of expanded nodes

17
Iterative Improvement Algorithms Example: n queens Try to find the highest peaks which are optimal Keep track of only the current state and do not look ahead beyond the immediate neighbours Two classes Hill climbing algoritms make changes to improve the current state Simulated annealing algoritms Allow some bad moves to get out of a local maxima