In this lab we will look at some real world problems and formulate them as Search Problems.
Group work
We will start by splitting the class into several groups. Each group should formulate the following problems (all) as search problems by giving:
You don't need to write any code, but describe these things precisely enough so that they could be implemented. You will have 15-20 minutes (total) to discuss all the problems and formulate them. After this time, each group will present their solution to one problem (picked randomly) and discuss it with the class.
These are the problem descriptions:
An agricultural robot needs to plant 100 trees in a valley. The trees should be at least 1 m apart and should generally stand in a flat area if possible. The robot carries all the trees in a large container on its back;
A space probe has to find some place outside of earth for humanity to colonize. It reports that humans want to be able to choose from at least 3 habitable places. The humans have also set the condition that they do not want to travel longer than absolutely necessary;
You start with a sequence ABABAECCEC, or in general any sequence made from A, B, C and E. You can transform this sequence using the following equalities: AC = E, AB = BC, BB = E and Ex = x for any x. For example, ABBC can be transformed into AEC, and then AC, then E. Your goal is to produce the sequence E.
You have three jugs, measuring 12 gallons, 8 gallons, and 3 gallons, and a water faucet. You can fill the jugs up or empty them out from one to another or onto the ground. You need to measure out exactly one gallon.
If we have time, we'll also look at the missionaries and cannibals problem:
Three missionaries and three cannibals are on one side of a river, along with a boat that can hold one or two people. The task is to find a way to transport everyone to the other side, without ever leaving a group of missionaries in one place outnumbered by cannibals in that place, because then the missionaries will be eaten.
Formulate the problem precisely, making only those distinctions necessary to ensure a valid solution. Draw a diagram of the complete state space.
Why do you think people have a hard time solving this puzzle, given that the state space is so simple?
To play with this problem and get a feeling of it, take a look at an interactive version online: http://www.learn4good.com/games/puzzle/boat.htm