FJK Home CPE/CSC 480 Syllabus Schedule Lecture Notes Assignments Labs Project Other Links
CPE/CSC 480-F06 Artificial Intelligence
Name:
Points: 10
Deadline: Tue of Week 3, end of lab

CPE/CSC 480-F06 Artificial Intelligence Lab Exercise 2: Agents

The goal of this lab exercise is to familiarize you with a programming environment for agents. The agents "live" in a simple world that consists of interconnected squares, and can perform simple actions like moving to the next floor, turning, or picking up items.

Agent Environment

You can download the agent environment from the Blackboard "Course Materials" section. It is a Java program, and comes with a README file and JavaDocs. You will use it for two or three lab exercises, and also for a programming environment. The environment was developed by Matt Colon, who was also the grader for this class in previous years. While we hope that it will allow you to concentrate on the essential aspects of agents, this is still a prototype version, and not quite a "production environment." Please let us know via the Blackboard forum if you have problems with it. The environment comes with several sample maps. For this exercise, you should mainly use "MediumMap.sbm"; it may be interesting, however to also try the other ones.

Tasks

The activities in this lab consist of several smaller analytical tasks, and one programming task.

Agent Type and Capabilities

The agent environment comes with a sample agent that illustrates its purpose, and also shows you how to use it. Your task here is to determine the type of the sample agent, based on the various agent types discussed in class and described in the textbook (i.e. reflex agent, reflex agent with state, learning agent, etc.). To do this, observe the behavior of the agent, and try to determine which capabilities are essential for the agent to be able to achieve that behavior. You need to select the "least sophisticated" agent that is capable of the behavior shown. In addition, you can also examine the code for the agent, but this can sometimes be misleading. For example, the agent may contain variables, which seems to imply the use of "state," but the variables could be used for some other purpose. Finally, you need to determine if this agent is capable of reaching the "Goal" square from the "Start" square. Explain your choice, and identify circumstances and constraints that enable or prohibit the agent from achieving the goal.

Random Agent Implementation

Modify the behavior of the agent so that its behavior is more random. This can be done in several ways. For example, the agent can randomly select an action at every step, or the agent can follow its path until it encounters an obstacle, and then randomly select one out of a few "sensible" actions. Our suggestion is to modify the action an agent takes when it bumps into an obstacle.

Note: It is not necessary to achieve full randomness here; the use of a (pseudo-) random number generator through the Java Random class or something similar is sufficient.

Random Agent Analysis

Your agent should behave different than the sample agent, and hopefully perform somewhat better. Is your agent guaranteed to reach the goal eventually, provided that the goal is reachable at all? What are the constraints, if any? Would you consider your agent to be more "intelligent" than the sample agent?

Administrative Aspects

Assignment Submission

This assignment must be submitted electronically via the handin program on hornet by the deadline specified above. You need to submit the following items:

Please make sure that you have a functioning account on hornet. Follow this link for more detailed submission instructions and the use of handin.

Collaboration

This is an individual assignment. You must figure out and formulate your own answers, and write your own programs. It is fine with me to discuss general aspects of this lab with others (e.g. how to determine the type and capability of an agent, or the limitations of a random agent).

Questions about the Assignment

If you have gneral questions or comments concerning the programming aspects of the homework, post them on the Blackboard Discussion Forum for the assignment. The grader and I will check that forum on a regular basis, and try to answer your questions.

FJK Home CPE/CSC 480 Syllabus Schedule Lecture Notes Assignments Labs Project Other Links
Lab-2.shtml
last modified:
Thursday, September, 28, 2006, 09:10:32 PDT
© 2000-2025
Franz Kurfess