CS 451 Programming Paradigms
LISP Assignment Two: Missionary and Cannibal Problem

Three missionaries and three cannibals come to the bank of a river they wish to cross. There is a boat that will hold only two and any of the group is able to row. If there are ever more missionaries than cannibals on any side of the river the cannibals will get converted. Write a lisp program to devise a series of moves to get all the people across the river with no conversions.

As you have probably realized, this is a graph search problem.

Use different strategies to accomplish this goal.

  1. Depth-First Search
  2. Breadth-First Search
  3. Best-First Search (neccesary for full credit)

These techniques will be discussed in class.

You should turn in your code and the results of a few tests ON PAPER. You should make your program graceful (errors handled in a reasonable way). You may make your program work for the general case of an equal but arbitrary number of cannibals and missionaries.

Your code must work to get points for the assignment-- what you do beyond that (thoroughness in coding and testing, presentation) determines how good your grade will be.


[ Back to CS451: Assigments ]