Artificial Intelligence II

CSE 5361 Section 001 Spring 2006

Homework 2

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.

  1. 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 previous performance.

  2. 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).

  3. 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.

  4. 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 of tasks.

  5. 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.

  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.