Assignment 3

Due Thursday, October 28th in class.

1) ACL 8.5

Yes, this was on the last assignment as well, but very few people did it. If you did it, please turn it again anyway. See the answers to Assignment 2 for some hints. If you need a text, how about Poe's The Masque of the Red Death (courtesy of Project Gutenberg)?

2) AIMA 2.5

You should create at least 3 different environments with a mix of the features described. In your write-up, be sure to incldue a table that describes the performance of at least 3 different agents in the 3 different environments. Comment on the results.

3) AIMA 2.7

4) AIMA 3.4

Overview of all AIMA example code

Based on the joke in the book you might think that the missionaries can't outnumber the cannibals. In fact, too many missionaries isn't a problem -- there's only trouble if the cannibals outnumber the missionaries.

For this problem, you need to pull together several pieces of code that are already written for you. To do breadth-first search, you'll want to combine the general search algorithm we discussed in class Thursday with the right data structure.

Breadth-first search searches each level of the tree before moving on to the next level. (Depth-first follows one branch all the way before moving on to the next branch.) That's good because it will find a solution if one exists, and it will find the "shallowest" solution, but it could take a long time. The code is quite simple once you have GENERAL-SEARCH:

(defun breadth-first-search (problem)

   "Search the shallowest nodes in the search tree first. [p 74]"

   (general-search problem #'enqueue-at-end))

Of course the search is only half the battle, because you need to get the missionaries and the cannibals in there too. The example code includes much of what you'll need to set up the problem.

5) AIMA 3.5

6) AIMA 3.7