FJK Home CPE/CSC 480 Syllabus Schedule Lecture Notes Assignments Labs Project Teams
CPE/CSC 480 Artificial Intelligence Fall 2009
Name:
Status draft
Points 25
Deadline TBD

CPE/CSC 480-Fall 2009 Assignment 2: AI Competitions

General Idea

The general idea for this homework is to explore the use of various environments that seem suitable for competitions related to Artificial Intelligence. If suitable, the environment or task may be used for homework assignments in future courses. The task and environment should meet most of the following objectives:

While I'm flexible with the task to be performed for this choice of the assignment, it should involve some programming in order to explore the suitability. For example, you could implement a reflex agent, a search algorithm (ideally A*), a simple reasoning agent, or a simple learning agent.

For the evaluation of the environment, consider such issues as:

Option 1: Environment Exploration

In this option, you select an environment of your choice, and evaluate it for its suitability as outlined above. A few samples are listed below.

CodeRuler Environment Exploration

http://alphaworks.ibm.com/tech/coderuler

CodeRallye Environment Exploration

http://www.alphaworks.ibm.com/tech/codeRally

Breve Environment Exploration

The Breve environment http://www.spiderland.org/ has been used quite successfully in several team projects in this and related classes. While it has several attractive features, it is not clear if it would be well suited for the implementation of search methods and similar tasks, or for competitions.

Option 2: Competitions

For this option, you participate in a competition with other students by implementing and submitting an agent for one of the environments below.

Robocode Agent

The task for this option is to design and implement a simple reflex agent (without state information) using the Robocode agent toolkit.

The score will be determined by the quality of your design and implementation, the level of sophistication your agent achieves, and the performance of your agent in competition with other agents.

Agent Design

[5 points]

In this part, you need to describe the overall architecture of your agent. It consists of the following sections:

This part should concentrate on the general capabilities of your agent, and not on specific techniques that you use to endow your agent with these capabilities; that is the topic of the next section.

Implementation

[5 points]

Here you need to discuss specific implementation aspects of your agent, e.g. how you decided to realize the "reflexes" of the agent. You may include relevant parts of your source code here, but make sure that it is explained and commented well.

Performance

[15 points]

Your agent should be able to compete with other Robocode agents. The performance of your agent will be evaluated in two stages:

Part 1: One-On-One Competition

For the first part, you need to submit the agent design and implementation documents as specified above, together with the code for your individual agent. This agent will participate in the one-on-one competition with the following robots from the robocode environment: Tracker, myfirstrobot, corner, sitting duck, rambot.

Part 2: One-On-Many Competition

The final version of your agent is due for the second part. It will determine your score through the one-on-many competition. Depending on the number of submissions, your agent will battle agents submitted by other students from the two 480 sections, or the above agents from the RoboCode repository.

Prisoner's Dilemma

In its "classical" form, the prisoner's dilemma (PD) is presented as follows: Two suspects are arrested by the police. The police have insufficient evidence for a conviction, and, having separated both prisoners, visit each of them to offer the same deal. If one testifies ("defects") for the prosecution against the other and the other remains silent, the betrayer goes free and the silent accomplice receives the full 10-year sentence. If both remain silent, both prisoners are sentenced to only six months in jail for a minor charge. If each betrays the other, each receives a five-year sentence. Each prisoner must choose to betray the other or to remain silent. Each one is assured that the other would not know about the betrayal before the end of the investigation. How should the prisoners act?

[from the Wikipedia entry for Prisoner's Dilemma]

Competitions based on this dilemma have been organized before (see http://www.prisoners-dilemma.com/ and http://www.wired.com/culture/lifestyle/news/2004/10/65317. One of the students in the F08 class, Greg Flanagan, is adapting a Scheme version of the environment to Java for this class. For more information, see the respective entry on the Blackboard discussion board.

The competition parts of this assignment are individual homeworks, and you need to write your own agent(s). You are not allowed to incorporate code from other agents, e.g. from Internet repositories, or from other students. The use of Java libraries is allowed. Violations of this policy will result in lower scores for this assignment. In addition, the general Cal Poly policies on Academic Dishonesty: Cheating and Plagiarism apply.

The explorations of alternative environments may be performed in pairs or teams. If you're interested in doing this, please contact me early to discuss the scope of the assignment.

Since this is an experimental homework, some aspects of the exact task definition and evaluation criteria will be discussed in class, and may be subject to some minor modifications.



FJK Home CPE/CSC 480 Syllabus Schedule Lecture Notes Assignments Labs Project Teams
Assignment-2.html
last modified:
Thursday, October, 1, 2009, 09:21:05 PDT
© 2000-2025
Franz Kurfess