Nondeterministic Search
All the smarts is in choose
A variety of ways to implement the “algorithm”
- most common is to maintain a list of the “frontier” nodes
- a heuristic function ranks them according to how “promising” each looks
- promising means something like “how long is the best path from this node to a goal”
- at each iteration the highest ranked node is removed from the frontier, checked for goal-hood, its successors generated