Homework 2 - some more reading, and distributed exploration

Set Wednesday 24th April, due Thursday 2nd May.

1. Reading.

In the next two weeks, please read chapters 3 and 4 of Ferber's book.

2. Distributed exploration.

In the first European conference of Decentralized AI in 1989, Luc Steels described a reactive agent approach to the following problem:
``The objective is to explore a distant planet, to collect samples of a particular type of scientifically interesting rock. The location of the rock samples is not known in advance but they are expected to be clustered in certain localized areas. A number of autonomous vehicles are available that can drive around the planet collecting samples and later reenter the mothership spacecraft to go back to earth. There is no detailed map of the planet available although it is known that the terrain is full of obstacles. - hills, valleys, etc.''

He assumed that direct communication between robots was infeasible and he also argued that a logical approach would not work. He proposed a method of signalling where robots could drop ``radioactive crumbs'' which other robots could detect and pick up. The general idea was that if a robot found some rocks then it would drop crumbs, causing other robots to go to the same locale. As the supply of rocks was depleted the crumbs would get picked up and so robots would not go there anymore.
For navigation, he assumed the mothership would generate a ``gradient field'' which robots could detect and which reduced uniformly in intensity as the distance to the ship increased.
He proposed the following design, where the robots would obey a set of reactive rules, which were in an order or priority.
1. if detect an obstacle then change direction.
2. if detect a sample then pick sample up.
3. if true then move randomly.
4. if carrying samples and not at base then drop two crumbs and travel up gradient.
5. if carrying samples and at the base then drop samples.
6. if sense crumbs then pick up one crumb and travel down gradient.

The priority order is 1 > 5 > 4 > 2 > 6 > 3.

(i) Comment on this design, pointing out its strengths and weaknesses.
(ii) Assuming that direct wireless communication between robots is possible, and that robots have some in inferencing ability give a new design which will be superior in certain cases. Describe these cases and explain how your design would work better. You also may assume some deadreckoning and gyroscope/orientation or other such abilities which will allow robots to determine their spatial positions and orientations relative to the spaceship. Make assumptions about the problem as needed, but state your assumptions. There should if possible be graceful degradation if some robots break down.

3. Programming agents for distributed exploration.

Program a simple version of your proposed exploration robots in Prolog. Put each robot on a separate machine, and use a simple world server that will be provided as a Prolog program to run on its own machine.
The world server is described here:
http://www.cs.caltech.edu/~bond/courses/cs101c/programs/doc/doc.html

You should send an email to me with a URL of a web page where your answer is. Your answer should have the code, a brief explanation, and some data cases showing your code works correctly.

Alan Bond
2002-04-24