CS116 Artificial Intelligence
Optional Assignment for Extra Credit
Agent Programming Contest

The contest involves building an agent that senses and acts in simulated worlds based on the Eden environment.  The environment specifies certain constraints and the different tasks are instantiated in 50 different worlds.  Your task is to implement a single virtual agent that can solve as many as possible as efficiently as possible.  You will have access to 10 of the worlds during the development phase.

The basic idea of the situation is that the agent you design is a bug in a world consisting of a bounded grid, walls, rocks, doors, hammers, keys, quicksand, narrows, and food.  The bug's goal is to pickup the food and eat (use) it as efficiently as possible (i.e., in as few steps as possible).

The bug can see an area of the world five cells wide, including five rows ahead of the bug, one row behind, and the row on which the bug is standing (all relative to the current heading).  The bug can also smell the direction to the food (again, relative to the current heading).  Objects such as hammers and keys can be picked up and used on rocks and doors respectively.  Quicksand can be crossed but the bug cannot change directions or do anything else while over quicksand.  Narrows can be passed but only if the bug is not carrying anything.

Contest organization and rules

Each world or level will have a set number of points that will be divided among the bugs that solve that level.  The points will be divided inversely proportional to the number of steps the bugs use to solve the level.  If no bug solves a particular level, the points remain unawarded.  Of course, if only one bug solves a level, all of the points will be awarded to that bug. 

The total number of points available will be determined dynamically based on the participation and success of the entered bugs.  If a single contestant's bug solves all 50 levels, he or she will receive a 10% bonus added to their course grade.  If no one solves all 50 levels, the total awarded points will be reduced by a corresponding proportion.  If more than one person solves all 50 levels, the points will be divided as described above.

Bugs must be implemented in common lisp and must run without modification on CMUCL.  Stochastic elements are allowed in bugs, but there are no guarantees about how the score for a level will be computed in such cases (other than that it will not be judged as worse than the worst of a set of runs); a reasonable expected score in this case would be the average score over a set of runs.  Follow this link for additional information on how to implement a bug and utilize its sensory and effector capabilities.  This tar file contains the 10 public worlds.  I will be making an executable version of the simulator available on pilot which is running CLISP.  Finally, you will need to download the appropriate version of the Eden Simulator for your version of LISP  (CMUCL-version, or CLISP-version) or CLISP-2.33-version for windows).

All bug entries must be submitted by 5pm on Friday, April 23.