Generate-and-test
 
 
- Can be depth-first or breadth-first search
- In its most systematic form, it is exhaustive
- To reduce search, increase the amount of knowledge in the test/eval function
- 
- E.g. from #wins to forced-win, from forced-win to symmetric-to-forced win
- DFS improved by branch-and-bound
 
   next-state := operator(current-state)
   else generate(next-state)