Main Page: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
The '''missionaries and cannibals problem''', and the closely related '''jealous husbands problem''', are classic [[river-crossing problems]].<ref name=a>[http://links.jstor.org/sici?sici=0025-5572%28198906%292%3A73%3A464%3C73%3A%22JHA%22M%3E2.0.CO%3B2-S "The Jealous Husbands" and "The Missionaries and Cannibals"], Ian Pressman and David Singmaster, ''The Mathematical Gazette'', '''73''', #464 (June 1989), pp. 73–81.</ref> The missionaries and cannibals problem is a well-known [[toy problem]] in [[artificial intelligence]], where it was used by [[Saul Amarel]] as an example of problem representation.<ref>[http://www.cc.gatech.edu/~jimmyd/summaries/amarel1968-1.html On representations of problems of reasoning about actions], Saul Amarel, pp. 131–171, ''Machine Intelligence 3'', edited by Donald Michie, Amsterdam, London, New York: Elsevier/North-Holland, 1968.</ref><ref>p. 9, [http://dx.doi.org/10.1007/11829263_1 Searching in a Maze, in Search of Knowledge: Issues in Early Artificial Intelligence], Roberto Cordeschi, pp. 1–23, ''Reasoning, Action andj Interaction in AI Theories and Systems: essays dedicated to Luigia Carlucci Aiello'', edited by Oliviero Stock and Marco Schaerf, Lecture Notes in Computer Science #4155, Berlin/Heidelberg: Springer, 2006, ISBN 978-3-540-37901-0.</ref> | |||
==The problem== | |||
In the missionaries and cannibals problem, three missionaries and three cannibals must cross a river using a boat which can carry at most two people, under the constraint that, for both banks, if there are missionaries present on the bank, they cannot be outnumbered by cannibals (if they were, the cannibals would eat the missionaries.) The boat cannot cross the river by itself with no people on board.<ref name=a /> | |||
In the jealous husbands problem, the missionaries and cannibals become three married couples, with the constraint that no woman can be in the presence of another man unless her husband is also present. Under this constraint, there cannot be both women and men present on a bank with women outnumbering men, since if there were, some woman would be husbandless. Therefore, upon changing men to missionaries and women to cannibals, any solution to the jealous husbands problem will also become a solution to the missionaries and cannibals problem.<ref name=a /> | |||
==Solving== | |||
Amarel devised a system for solving the Missionaries and Cannibals problem whereby the current state is represented by a simple vector <a,b,c>. The vector's elements represent the number of missionaries on the wrong side, the number of cannibals on the wrong side, and the number of boats on the wrong side, respectively. Since the boat and all of the missionaries and cannibals start on the wrong side, the vector is initialized to <3,3,1>. Actions are represented using vector subtraction/addition to manipulate the state vector. For instance, if a lone cannibal crossed the river, the vector <0,1,1> would be subtracted from the state to yield <3,2,0>. The state would reflect that there are still three missionaries and two cannibals on the wrong side, and that the boat is now on the opposite bank. To fully solve the problem, a simple tree is formed with the initial state as the root. The five possible actions (<1,0,1>, <2,0,1>, <0,1,1>, <0,2,1>, and <1,1,1>) are then ''subtracted'' from the initial state, with the result forming children nodes of the root. Any node that has more cannibals than missionaries on either bank is in an invalid state, and is therefore removed from further consideration. The valid children nodes generated would be <3,2,0>, <3,1,0>, and <2,2,0>. For each of these remaining nodes, children nodes are generated by ''adding'' each of the possible action vectors. The algorithm continues alternating subtraction and addition for each level of the tree until a node is generated with the vector <0,0,0> as its value. This is the goal state, and the path from the root of the tree to this node represents a sequence of actions that solves the problem. | |||
==Solution== | |||
The earliest solution known to the jealous husbands problem, using 11 one-way trips, is as follows. The married couples are represented as ''<math>\alpha</math>'' (male) and ''a'' (female), ''<math>\beta</math>'' and ''b'', and ''<math>\gamma</math>'' and ''c''.<ref name=b>Jealous Husbands Crossing the River: A Problem from Alcuin to Tartaglia, | |||
Raffaella Franci, pp. 289–306, ''From China to Paris: 2000 Years Transmission of Mathematical Ideas'', edited by Yvonne Dold-Samplonius, Joseph W. Dauben, Menso Folkerts, and Benno van Dalen, Stuttgart: Franz Steiner Verlag, 2002, ISBN 3-515-08223-9.</ref><sup>, p. 291.</sup> | |||
{| class="wikitable" | |||
! Trip number | |||
! Starting bank | |||
! Travel | |||
! Ending bank | |||
|- | |||
| (start) | |||
| <math>\alpha</math>a <math>\beta</math>b <math>\gamma</math>c | |||
| | |||
| | |||
| | |||
|- | |- | ||
| | |1 | ||
|<math>\beta</math>b <math>\gamma</math>c | |||
|<math>\alpha</math>a → | |||
| | |||
| | |||
|- | |- | ||
|2 | |||
|<math>\beta</math>b <math>\gamma</math>c | |||
|←<math>\alpha</math> | |||
|a | |||
|- | |- | ||
| | |3 | ||
| | |<math>\alpha</math> <math>\beta</math> <math>\gamma</math> | ||
| | |bc → | ||
|a | |||
|- | |- | ||
| | |4 | ||
| | |<math>\alpha</math> <math>\beta</math> <math>\gamma</math> | ||
| | | ← a | ||
|b c | |||
|- | |- | ||
| | |5 | ||
| | |<math>\alpha</math>a | ||
| | | <math>\beta</math><math>\gamma</math> → | ||
|b c | |||
|- | |- | ||
| | |6 | ||
| | |<math>\alpha</math>a | ||
| | |← <math>\beta</math>b | ||
|<math>\gamma</math>c | |||
|- | |- | ||
| | |7 | ||
| | |a b | ||
| | |<math>\alpha</math><math>\beta</math> → | ||
|<math>\gamma</math>c | |||
|- | |- | ||
| | |8 | ||
| | |a b | ||
| | |← c | ||
|<math>\alpha</math> <math>\beta</math> <math>\gamma</math> | |||
|-© | |||
|9 | |||
|b | |||
|a c → | |||
|<math>\alpha</math> <math>\beta</math> <math>\gamma</math> | |||
|- | |- | ||
| | |10 | ||
| | |b | ||
| | |← <math>\beta</math> | ||
|<math>\alpha</math>a <math>\gamma</math>c | |||
|- | |- | ||
| | |11 | ||
| | | | ||
| | |<math>\beta</math>b → | ||
|<math>\alpha</math>a <math>\gamma</math>c | |||
|- | |- | ||
| | |(finish) | ||
| | |||
| | | | ||
|<math>\alpha</math>a <math>\beta</math>b <math>\gamma</math>c | |||
|} | |||
This is a shortest solution to the problem, but is not the only shortest solution.<ref name=b /><sup>, p. 291.</sup> | |||
If however, only one man can get out of the boat at a time and husbands must be on the shore to count as with his wife as opposed to just being in the boat at the shore: move 5 to 6 is impossible, for as soon as ''<math>\gamma</math>'' has stepped out ''b'' on the shore won't be with her husband, despite him being just in the boat. | |||
As mentioned previously, this solution to the jealous husbands problem will become a solution to the missionaries and cannibals problem upon replacing men by missionaries and women by cannibals. In this case we may neglect the individual identities of the missionaries and cannibals. The solution just given is still shortest, and is one of four shortest solutions.<ref>[http://portal.acm.org/citation.cfm?id=144045.144106 Cannibals and missionaries], Ruby Lim, pp. 135–142, ''Conference proceedings: APL '92, the International Conference on APL, 6–10 July 1992, St. Petersburg, Russia'', edited by Lynne C. Shaw, et al., New York: Association for Computing Machinery, 1992, ISBN 0-89791-477-5.</ref> | |||
If a woman in the boat at the shore (but not ''on'' the shore) counts as being by herself (i.e. not in the presence of any men on the shore), then this puzzle can be solved in 9 one-way trips: | |||
{| class="wikitable" | |||
! Trip number | |||
! Starting bank | |||
! Travel | |||
! Ending bank | |||
|- | |- | ||
| | | (start) | ||
| | |<math>\alpha</math>a <math>\beta</math>b <math>\gamma</math>c | ||
| | | | ||
| | |||
|- | |- | ||
| | |1 | ||
| | |<math>\beta</math>b <math>\gamma</math>c | ||
| | |<math>\alpha</math>a → | ||
| | |||
|- | |- | ||
| | |2 | ||
| | |<math>\beta</math>b <math>\gamma</math>c | ||
| | |← a | ||
|<math>\alpha</math> | |||
|- | |- | ||
| | |3 | ||
| | |<math>\beta</math> <math>\gamma</math>c | ||
| | |ab → | ||
|<math>\alpha</math> | |||
|- | |- | ||
| | |4 | ||
| | |<math>\beta</math> <math>\gamma</math>c | ||
| | | ← b | ||
|<math>\alpha</math>a | |||
|- | |- | ||
| | |5 | ||
| | |<math>\gamma</math>c | ||
| | | <math>\beta</math>b → | ||
|<math>\alpha</math>a | |||
|- | |- | ||
| | |6 | ||
| | |<math>\gamma</math>c | ||
| | |← b | ||
|<math>\alpha</math>a <math>\beta</math> | |||
|- | |- | ||
| | |7 | ||
| | |<math>\gamma</math> | ||
| | |bc → | ||
|<math>\alpha</math>a <math>\beta</math> | |||
|- | |- | ||
| | |8 | ||
| | |<math>\gamma</math> | ||
| | |← c | ||
|<math>\alpha</math>a <math>\beta</math>b | |||
|-© | |||
|9 | |||
| | |||
|<math>\gamma</math>c → | |||
|<math>\alpha</math>a <math>\beta</math>b | |||
|- | |- | ||
| | |(finish) | ||
| | | | ||
| | | | ||
|<math>\alpha</math>a <math>\beta</math>b <math>\gamma</math>c | |||
|} | |} | ||
==Variations== | |||
An obvious generalization is to vary the number of jealous couples (or missionaries and cannibals), the capacity of the boat, or both. If the boat holds 2 people, then 2 couples require 5 trips; with 4 or more couples, the problem has no solution.<ref>[http://www.sciencenews.org/view/generic/id/4512/title/Math_Trek__Tricky_Crossings Tricky Crossings], Ivars Peterson, ''Science News'', '''164''', #24 (December 13, 2003); accessed on line February 7, 2008, URL update March 12, 2011</ref> If the boat can hold 3 people, then up to 5 couples can cross; if the boat can hold 4 people, any number of couples can cross.<ref name=b /><sup>, p. 300.</sup> | |||
If an island is added in the middle of the river, then any number of couples can cross using a two-person boat. If crossings from bank to bank are not allowed, then 8''n''−6 one-way trips are required to ferry ''n'' couples across the river;<ref name=a /><sup>, p. 76</sup> if they are allowed, then 4''n''+1 trips are required if ''n'' exceeds 4, although a minimal solution requires only 16 trips if ''n'' equals 4.<ref name=a /><sup>, p. 79.</sup> If the jealous couples are replaced by missionaries and cannibals, the number of trips required does not change if crossings from bank to bank are not allowed; if they are however the number of trips decreases to 4''n''−1, assuming that ''n'' is at least 3.<ref name=a /><sup>, p. 81.</sup> | |||
==History== | |||
The first known appearance of the jealous husbands problem is in the medieval text ''[[Propositiones ad Acuendos Juvenes]]'', usually attributed to [[Alcuin]] (died 804.) In Alcuin's formulation the couples are brothers and sisters, but the constraint is still the same—no woman can be in the company of another man unless her brother is present.<ref name=a /><sup>, p. 74.</sup> From the 13th to the 15th century, the problem became known throughout Northern Europe, with the couples now being husbands and wives.<ref name=b /><sup>, pp. 291–293.</sup> The problem was later put in the form of masters and valets; the formulation with missionaries and cannibals did not appear until the end of the 19th century.<ref name=a /><sup>, p. 81</sup> Varying the number of couples and the size of the boat was considered at the beginning of the 16th century.<ref name=b /><sup>, p. 296.</sup> Cadet de Fontenay considered placing an island in the middle of the river in 1879; this variant of the problem, with a two-person boat, was completely solved by Ian Pressman and [[David Singmaster]] in 1989.<ref name=a /> | |||
==See also== | ==See also== | ||
*[[ | *[[Fox, goose and bag of beans puzzle]] | ||
*[[Transport puzzle]] | |||
*[[Circumscription (logic)]] | |||
==References== | ==References== | ||
{{reflist}} | |||
[[Category:Logic puzzles]] | |||
[[pt:Problema dos canibais e missionários]] | |||
[[ | [[uk:Задача про місіонерів та канібалів]] | ||
[[zh:传教士和吃人恶魔问题]] |
Revision as of 16:16, 13 August 2014
The missionaries and cannibals problem, and the closely related jealous husbands problem, are classic river-crossing problems.[1] The missionaries and cannibals problem is a well-known toy problem in artificial intelligence, where it was used by Saul Amarel as an example of problem representation.[2][3]
The problem
In the missionaries and cannibals problem, three missionaries and three cannibals must cross a river using a boat which can carry at most two people, under the constraint that, for both banks, if there are missionaries present on the bank, they cannot be outnumbered by cannibals (if they were, the cannibals would eat the missionaries.) The boat cannot cross the river by itself with no people on board.[1]
In the jealous husbands problem, the missionaries and cannibals become three married couples, with the constraint that no woman can be in the presence of another man unless her husband is also present. Under this constraint, there cannot be both women and men present on a bank with women outnumbering men, since if there were, some woman would be husbandless. Therefore, upon changing men to missionaries and women to cannibals, any solution to the jealous husbands problem will also become a solution to the missionaries and cannibals problem.[1]
Solving
Amarel devised a system for solving the Missionaries and Cannibals problem whereby the current state is represented by a simple vector <a,b,c>. The vector's elements represent the number of missionaries on the wrong side, the number of cannibals on the wrong side, and the number of boats on the wrong side, respectively. Since the boat and all of the missionaries and cannibals start on the wrong side, the vector is initialized to <3,3,1>. Actions are represented using vector subtraction/addition to manipulate the state vector. For instance, if a lone cannibal crossed the river, the vector <0,1,1> would be subtracted from the state to yield <3,2,0>. The state would reflect that there are still three missionaries and two cannibals on the wrong side, and that the boat is now on the opposite bank. To fully solve the problem, a simple tree is formed with the initial state as the root. The five possible actions (<1,0,1>, <2,0,1>, <0,1,1>, <0,2,1>, and <1,1,1>) are then subtracted from the initial state, with the result forming children nodes of the root. Any node that has more cannibals than missionaries on either bank is in an invalid state, and is therefore removed from further consideration. The valid children nodes generated would be <3,2,0>, <3,1,0>, and <2,2,0>. For each of these remaining nodes, children nodes are generated by adding each of the possible action vectors. The algorithm continues alternating subtraction and addition for each level of the tree until a node is generated with the vector <0,0,0> as its value. This is the goal state, and the path from the root of the tree to this node represents a sequence of actions that solves the problem.
Solution
The earliest solution known to the jealous husbands problem, using 11 one-way trips, is as follows. The married couples are represented as (male) and a (female), and b, and and c.[4], p. 291.
Trip number | Starting bank | Travel | Ending bank |
---|---|---|---|
(start) | a b c | ||
1 | b c | a → | |
2 | b c | ← | a |
3 | bc → | a | |
4 | ← a | b c | |
5 | a | → | b c |
6 | a | ← b | c |
7 | a b | → | c |
8 | a b | ← c | |
9 | b | a c → | |
10 | b | ← | a c |
11 | b → | a c | |
(finish) | a b c |
This is a shortest solution to the problem, but is not the only shortest solution.[4], p. 291.
If however, only one man can get out of the boat at a time and husbands must be on the shore to count as with his wife as opposed to just being in the boat at the shore: move 5 to 6 is impossible, for as soon as has stepped out b on the shore won't be with her husband, despite him being just in the boat.
As mentioned previously, this solution to the jealous husbands problem will become a solution to the missionaries and cannibals problem upon replacing men by missionaries and women by cannibals. In this case we may neglect the individual identities of the missionaries and cannibals. The solution just given is still shortest, and is one of four shortest solutions.[5]
If a woman in the boat at the shore (but not on the shore) counts as being by herself (i.e. not in the presence of any men on the shore), then this puzzle can be solved in 9 one-way trips:
Trip number | Starting bank | Travel | Ending bank |
---|---|---|---|
(start) | a b c | ||
1 | b c | a → | |
2 | b c | ← a | |
3 | c | ab → | |
4 | c | ← b | a |
5 | c | b → | a |
6 | c | ← b | a |
7 | bc → | a | |
8 | ← c | a b | |
9 | c → | a b | |
(finish) | a b c |
Variations
An obvious generalization is to vary the number of jealous couples (or missionaries and cannibals), the capacity of the boat, or both. If the boat holds 2 people, then 2 couples require 5 trips; with 4 or more couples, the problem has no solution.[6] If the boat can hold 3 people, then up to 5 couples can cross; if the boat can hold 4 people, any number of couples can cross.[4], p. 300.
If an island is added in the middle of the river, then any number of couples can cross using a two-person boat. If crossings from bank to bank are not allowed, then 8n−6 one-way trips are required to ferry n couples across the river;[1], p. 76 if they are allowed, then 4n+1 trips are required if n exceeds 4, although a minimal solution requires only 16 trips if n equals 4.[1], p. 79. If the jealous couples are replaced by missionaries and cannibals, the number of trips required does not change if crossings from bank to bank are not allowed; if they are however the number of trips decreases to 4n−1, assuming that n is at least 3.[1], p. 81.
History
The first known appearance of the jealous husbands problem is in the medieval text Propositiones ad Acuendos Juvenes, usually attributed to Alcuin (died 804.) In Alcuin's formulation the couples are brothers and sisters, but the constraint is still the same—no woman can be in the company of another man unless her brother is present.[1], p. 74. From the 13th to the 15th century, the problem became known throughout Northern Europe, with the couples now being husbands and wives.[4], pp. 291–293. The problem was later put in the form of masters and valets; the formulation with missionaries and cannibals did not appear until the end of the 19th century.[1], p. 81 Varying the number of couples and the size of the boat was considered at the beginning of the 16th century.[4], p. 296. Cadet de Fontenay considered placing an island in the middle of the river in 1879; this variant of the problem, with a two-person boat, was completely solved by Ian Pressman and David Singmaster in 1989.[1]
See also
References
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
pt:Problema dos canibais e missionários uk:Задача про місіонерів та канібалів zh:传教士和吃人恶魔问题
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 "The Jealous Husbands" and "The Missionaries and Cannibals", Ian Pressman and David Singmaster, The Mathematical Gazette, 73, #464 (June 1989), pp. 73–81.
- ↑ On representations of problems of reasoning about actions, Saul Amarel, pp. 131–171, Machine Intelligence 3, edited by Donald Michie, Amsterdam, London, New York: Elsevier/North-Holland, 1968.
- ↑ p. 9, Searching in a Maze, in Search of Knowledge: Issues in Early Artificial Intelligence, Roberto Cordeschi, pp. 1–23, Reasoning, Action andj Interaction in AI Theories and Systems: essays dedicated to Luigia Carlucci Aiello, edited by Oliviero Stock and Marco Schaerf, Lecture Notes in Computer Science #4155, Berlin/Heidelberg: Springer, 2006, ISBN 978-3-540-37901-0.
- ↑ 4.0 4.1 4.2 4.3 4.4 Jealous Husbands Crossing the River: A Problem from Alcuin to Tartaglia, Raffaella Franci, pp. 289–306, From China to Paris: 2000 Years Transmission of Mathematical Ideas, edited by Yvonne Dold-Samplonius, Joseph W. Dauben, Menso Folkerts, and Benno van Dalen, Stuttgart: Franz Steiner Verlag, 2002, ISBN 3-515-08223-9.
- ↑ Cannibals and missionaries, Ruby Lim, pp. 135–142, Conference proceedings: APL '92, the International Conference on APL, 6–10 July 1992, St. Petersburg, Russia, edited by Lynne C. Shaw, et al., New York: Association for Computing Machinery, 1992, ISBN 0-89791-477-5.
- ↑ Tricky Crossings, Ivars Peterson, Science News, 164, #24 (December 13, 2003); accessed on line February 7, 2008, URL update March 12, 2011