I got an interesting problem yesterday (Yes, for homework, but it seems like this is on topic) The problem goes like this: Three missionaries and three cannibals wish to cross a river. There is a boat which can carry three people and either a missionary or a cannibal can operate the boat. It is never permissible for cannibals to outnumber missionaires, neither in the boat nor on either shore. What is the smallest number of trips necessary to make the crossing. Bonus: How many trips are necessary if the boat holds only two people?
This seems to be a popular question in the field of AI, and from what I read the only way to do it is using the sate "331" As the number of cannibals, missionaries, and boats on the wrong side respectively, and then generating all the actions that could be taken and ruling out the non valid ones, then subtracting each of the valid ones from the state, creating a "tree" of sorts and continuing until the state is "000". The only way this seems feasible to me is using a computer program (Unless you have a LOT of time on your hands), but this expects you to it on paper.
My question is, how would I complete this problem without using a computer, completely on paper?
EDIT: This seems to have caused some confusion, I want to calculate the smallest number of trips possible without actually solving the problem of how they would do it.