Artificial Intelligence II
CSE 5361 Section 001 Spring 2006
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Submit all source code and design document files in one zip file to me
(firstname.lastname@example.org) 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.