The Problem

The Missionaries and Cannibals problem is a classic AI puzzle that can be defined as follows:

On one bank of a river are three missionaries and three cannibals. There is one boat available that can hold up to two people and that they would like to use to cross the river. If the cannibals ever outnumber the missionaries on either of the river’s banks, the missionaries will get eaten.
How can the boat be used to safely carry all the missionaries and cannibals across the river?

In this game you need to move the missionaries and the cannibals to the opposite shore by using a boat.

The initial state is shown to the right here, where black triangles represent missionaries and red circles represent cannibals.

  1. Use the game “Cannibals and Missionaries”. Explain the rules to the students: There are 3 cannibals and 3 missionaries who want to cross a river. There is a small boat which can carry 2 people, 1 person must remain in the boat to row it across the river.
  2. Three missionaries and three cannibals come to a river. A rowboat that seats two is available. If the cannibals ever outnumber the missionaries on either bank of the river, the missionaries will be eaten. (AIMA problem 3.9).

Searching for a Solution

This problem can be solved by searching for a solution, which is a sequence of actions that leads from the initial state to the goal state. The goal state is effectively a mirror image of the initial state. The complete search space is shown in figure 1.


Figure 1: Search-space for the Missionaries and Cannibals problem

3 Cannibals And 3 Missionaries Game

Arrows in figure 1 represent state transitions and are labelled with actions, e.g. 2c represents the action of two cannibals crossing the river. The initial state is shown again on the left, whereas the goal state is all the way to the right.

The MissionariesAndCannibalsApp Java Application

Cannibals And Missionaries Game

MissionariesAndCannibalsApp is a Java application that explores the above search space using a number of (uninformed) search strategies. Download the application and double-click it. Alternatively, run the command 'java -jar MissionariesAndCannibalsApp.jar' from the command line. Either should bring up a window that looks essentially like the one shown in figure 2. Cue club 2 free download for android.


Figure 2: The window of the application

To search for a solution, first select a search strategy. Next, there are some configuration options for the search process. If the search space is to be searched as a graph, multiple paths leading to the same node will usually only be explored once. In a tree, search states that can be reached by multiple paths will also be explored multiple times. The number of states to be generated can be limited to the given value, resulting in the search being abandoned at that point. For a depth-first search it is also possible to set a depth limit, meaning no states at a greater depth will be explored.

Finally, a trace of the search can be written to the window and/or a text file. The operation performed by a search engine consists of selecting a current search node and generating its successors, and the trace reflects this process. For example, the line:

indicates that the selected node contains the given state. The number (11 in the example) is the unique identifier for the search node. Note that there may be multiple nodes that contain the same state, especially when tree search is performed. Then there is a description of the selected state which can be read as follows: on the left bank (L:) there are no missionaries (0m) and one cannibal (1c), and on the right bank there are 3 missionaries (3m), two cannibals (2c) and the boat (b). Other states follow the same pattern. The lines following this one in the trace describe the successor states that have been generated, for example:

/acid-pro-free-full-cracked.html. So, expanding the given search node (11) resulted in two new search nodes (12 and 13).

Even with tracing off the window will display some information about the search (which is not part of the trace). It will show how many states have been explored (the goal test has been performed and successors have been generated) and how many states have been generated (explored states plus fringe nodes). If a solution is found this will also be printed. Finally, the elapsed time taken to perform the search is printed. Note that writing the trace usually takes more time than searching itself.

References

S. Russell and P. Norvig. Artificial Intelligence: A Modern Approach, chapter 3. Prentice Hall, 2nd edition, 2003.

Cannibals And Missionaries Game For Android

S. Amarel. On Representations of Problems of Reasoning about Actions. In: D. Michie, editor, Machine Intelligence 3, pages 131-171, Edinburgh University Press, 1968. Reprinted in: B. Webber and N. Nilsson, editors, Readings in Artificial Intelligence, pages 2-22, Tioga, 1981.

Coments are closed
Scroll to top