Dynamic programming and "difficult crossing" puzzles.
An application of dynamic programming theory to a familiar type of puzzle, classified in books on mathematical reactions as "difficult crossings." A typical problem is as follows: "A group consisting of three cannibals and three missionaries seeks to cross a river. A boat is available which will hold two people, and which can be navigated by any combination of cannibals and missionaries involving one or two people. If the missionaries on either side of the river, or in the boat, are outnumbered at any time by cannibals, the cannibals will indulge in their anthropophagic tendencies and do away with the missionaries. What schedule of crossings can be devised to permit the entire group of cannibals and missionaries to cross the river safely?" 7 pp.