Artificial Intelligence II
CSE 5361 Section 001 Spring 2006
Due: February 23, 2006 (midnight).
No late submissions accepted.
For this homework you will implement a model-based, goal-based agent for
playing the Urban Combat Testbed (UCT). Your agent should follow the
framework described in Figure 2.13 of Russell and Norvig. The specific
requirements are enumerated below.
- We will be using the same goals as the previous homework; namely,
getting your agent to a specific x,y,z location. However, you may
introduce subgoals appropriate to the task (e.g., get unstuck, find the
nearest staircase to the goal location, etc.). While the goal-based agent
in the the textbook refers to using search or planning techniques, these
are optional for this homework. You may still use the condition-action
rule approach. The emphasis here will be on representing and updating a
more detailed State that allows more intelligent selection of appropriate
actions. The evaluation of your agent will be similar to that of the
previous homework, but your agent will be expected to improve over its
- Improve your State class or structure to hold more-detailed
information about the world. Possible information would be previous
percepts, a map of the world, landmarks of interest, previously-successful
rules or action sequences, etc. The objective is to maintain enough
information so the agent knows the true state of the world and can better
select an appropriate action. Implement a function called UpdateState that
updates the State based on the current percept, possibly inferring other
elements of the State based on the current and previous percepts (e.g.,
going in circles, stuck in a corner, nearest staircase).
- Refine the process() function in agent/agent.cc to
take advantage of the additional State information so as to better select
appropriate actions. Again, the objective is to improve the agent's success
and speed at navigating to the goal location.
- As with the previous homework, 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
- Document the design of your agent, including original elements and
those newly added for this homework, 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.