Due Tuesday, January 26th in class.
Rewrite the GeneralSearch algorithm to use recursion, rather than iteration. Then compare the running time and memory used between your recursive and the original iterative version for 2 missionaries, 2 cannibals and 3 missionaries, 3 cannibals, using breadth-first search.
The Common Lisp macro time makes it easy to learn the time and memory used by your functions:
(time (solve prob-2M2C #'BREADTH-FIRST-RECURSIVE))
Consider an extreme case: Is it possible to solve a problem with an exponential number of instances without any searching, if only a linear amount of knowledge is available? If it is not possible, show that it is not. If it is possible, describe the structural properties of the classe of problems for which it is possible, and give an example applying this approach to a search problem we have discussed in class.