Artificial Intelligence II

CSE 5361 Section 001 Spring 2006

Homework 1

Due: February 9, 2006 (midnight). No late submissions accepted.

For this homework you will improve upon a simple reflex agent for playing the Urban Combat Testbed (UCT). Your agent should follow the framework described in Figures 2.9 and 2.10 of Russell and Norvig. The specific requirements are enumerated below.

  1. Download, install and run the UCT. You will receive an email with instructions for obtaining UCT. See the top-level README file to get started. You will see that there is a simple reflex agent already provided in agent/agent.cc that accepts four arguments: x, y, z, tolerance. The agent uses turns and go-forward actions to drive the agent from its starting position to within tolerance of the x,y,z position.

  2. Implement a State class or structure to hold information from the current percept, but not previous percepts. You may also want to implement a class or structure for condition-action rules.

  3. Refine the process() function in agent/agent.cc to improve your simple reflex agent to determine what conditions are met by the current state and then choose an appropriate action. Please use modular coding practices, i.e., use auxiliary functions and do not just put everything into one large process() function.

  4. Your agent will be tested in two different maps: uct_reykjavik and uct_neddermanpeake. You should assume that the agent can start at any position and that the goal location can be any reachable position in the map. You may assume a tolerance of 10. Your agent will be evaluated according to its speed and success at reaching various x,y,z locations from various starting x,y,z locations. So, you should test your agent accordingly to be sure it is robust for these types of tasks.

  5. Document the design of your Simple-Reflex-Agent in a separate document (MSWord, PDF or text). This document should describe what is maintained by your State, how it is updated, what condition-action rules you use, and how you choose an action. You should also describe the strengths and weaknesses of your agent in regards to the navigation task described above.

  6. Submit all source code and design document files in one zip file to me (holder@cse.uta.edu) by the above deadline. Also include in your submission a README file that describes what files are in your submission and any special instructions for building and running your agent. Most likely, you will submit an agent.cc file, design document, and README, and the agent.cc file can be compiled in the agent directory just as the original one. In addition to correct functionality and satisfaction of the above constraints, your submission will be graded based on good programming style and documentation.