This file provides a Soar system to solve the missionaries and cannibals problem using look-ahead planning.

There are three missionaries and three cannibals on one side of a river. There is a boat on their bank of the river that can be used by either one or two persons at a time. This boat must be used to cross the river in such a way that cannibals never outnumber missionaries on either bank of the river.

Simple state representation where the state has two objects: one for each bank of the river. Each of these has augmentations for missionaries, cannibals, and the boat; with their values being the number of the entity type on that bank of the river. This is the version covered in Soar Tutorial. Copying the states is more complex (two-level-attributes) than other versions, but initial state definition, operator proposal and application are simplier.

Soar capabilities
  • Look-ahead subgoaling
  • Can learn procedural knowledge (enable with 'learn always')
Download LinksExternal Environment
  • None.
Default Rules
  • None.
Associated Publications
  • Soar Tutorial: Chapter 5
  • John Laird
Soar Versions
  • Soar 8,9
Project Type
  • VisualSoar