Your task is to write generic Depth-First, Breadth-First and Best-first algorithms (Prolog Predicates) and apply it to finding solutions for two different problems.
Problem 1. The Missionary and Cannibal problem.
Refer to the description of the problem in Lisp assignment Two.
You will be expected to devise suitable representations of the
problem and solution space.
Problem 2. The Water Jug Problem.
There are two jugs, one holding 3 and the other 5 gallons of water.
A number of things can be done with the jugs: they can be filled, emptied
and dumped one into the other either until the poured-into jug is full or
the poured-out-of jug is empty. Devise a sequence of actions that will
produce 4 gallons of water in the larger jug.
Handin your code and a test run as hard copy in class on the due date.