Lund University
 

Artificial Intelligence VT09

 

News

Syllabus

Schema

TAI championship

Programming assignments

Course Material

VT08 page

Links

[an error occurred while processing this directive]

 

DATE15/EDA132 - Spring 2009

(Applied) Artificial Intelligence

Assignment 1: Agents

Briefly:

Do exercises 2.7 --- 2.12 from the textbook. 2.11 and 2.12 are considered to be extensions counting towards better grade. Even more interesting (and even more counting towards a better grade) would be to have yet another problem domain handled by your simulation environment.

WARNING

Programming assignments, with possible exceptions of second and third, are expected to be solved in one, maximum two days of hard work, by an average student. Do more if you feel it is challenging, interesting or simply fun, but do not overdo it and do not read more from a description than is there.

Long version, with all the legalese:

This assignment is intended to serve as a warm-up, before the later, hopefully more challenging ones. You are expected to be able to get it ready within one or two days of work.

The task

  1. Design and implement a preformance-measuring environment simulator for simple test worlds (like the vacuum-cleaner world discussed in the textbook /cf. Figure 2.2 and the description on page 36/ and during the lecture). Your implementation should be modular, so that the sensors, actuators, and environment characteristics (size, shape, dirt placement, etc.) can be changed easily. You are allowed to use code from the textbook's code repository, as long as you can explain which part is yours and which comes from the external source.
  2. Implement a simple reflex agent for the vacuum environment created in point 1. Run the environment simulator with this agent for all possible initial dirt configurations and agent locations. Record the agent's performance score for each configuration and its overall average score.
  3. Consider a modified version of the vacuum environment from point 1, in which the agent is penalized one point for each movement.
    1. Can a simple reflex agent be perfectly rational for this environment? Explain.
    2. What about a reflex agent with state? Design such an agent.
    3. How do your answers to 3.1 and 3.2 change if the agent's percepts give it the clean/dirty status of every square in the environment?
  4. Consider a modified version of the vacuum environment from point 1 above, in which the geography of the environment --- its extent, boundaries and obstacles --- is unknown, as is the initial dirt configuration. (The agent can go Up and Down as well as Left and Right.)
    1. Can a simple reflex agent be perfectly rational for this environment? Explain.
    2. Can a simple reflex agent with a randomized agent function outperform a simple reflex agent? Design such an agent and measure its performance on several environments.
    3. Can you design an environment in which your randomized agent will perform very poorly? Show your results.
    4. Can a reflex agent with state outperform a simple reflex agent? Design such an agent and measure its performance on several environemnts. Can you design a rational agent of this type?
  5. (Not obligatory) Repeat the above (point 4) for the case in which the location sensor is replaced with a bump sensor that detects the agent's attempts to move into an obstacle or to cross the boundaries of the environment. SUppose the bump sensor stops working: how should the agent behave?
  6. (Not obligatory) The vacuum environments have so far all been deterministic. Discuss possible agent programs for each of the following stochastic versions:
    1. Murphy's law: twenty five percent of the time, the Suck action fails to clean the floor if it is dirty and deposits dirt onto the floor if the floor is clean. How is your agent program affected if the dirt sensor gives the wrong answer ten percent of the time?
    2. Small children: At each time step, each clean square has a 10 percent chance of becoming dirty. Can you come up with a rational agent design for that case?
  7. (Not obligatory) Use your simulator for representing and testing another domain. You may for example experiment with the Wumpus world introduced in Chapter 7.2 of the textbook.

Remarks

Deadline:

The report must be handed in for evaluation before 23.59 on Thursday, February 5, 2009. The report should be put in the box labeled TAI (EDA132 or DATE15, respectively) in the stairwells outside the secretary offices (LTH or NF).

Problems:

Send e-mail to aikurs AT cs.lth.se .

The report

The assignment must be documented in a report, which should contain the following:
  • At least one page describing the design of the environment simulator. You should also evaluate how useful the system is, and if further developments are possible.
  • Printouts of several runs should be included and evaluated.
  • In case you used code from the repository (or anywhere else, for that matter), stat which part is yours and which is not. You do not need to provide all or any code printout in the report - the code is available in your solution directory - but only comments on its interesting parts, including the authorship.
  • Answers to questions should be included, with appropriate motivation.
  • The report should be nicely typeset and formatted.
  • The front page should state the name of the author, that the report concerns Assignment 1, and any relevant information you think could be useful.
  • The report must be filed in on paper. Neither e-mail nor web pages will be accepted. You may receive feedback, but do not count on the report to be returned, so do not hand in originals.

Programming language and environment

You may use any suitable implementation language and you may use your own computer to develop your program. However, the documented results of your investigations must be possible to be validated by executing a version available on the *.student.lth.se Linux computers. This version should of course be the same as the one handed in as program source.

Your final program must be available and runnable at the department's LINUX computers at the student.lth.se net. It is NOT possible to hand in a CD/diskette containing the program. Remember to make your programs and all the directories in their path read and execute accessible to 'world' (chmod 705 ). Remember also to quote where does your solution reside and how should it be run (kind of "User's Guide").

The resulting programs should remain in your directory until you have been notified of the result, e.g. on the notice board and/or web or by e-mail. You may expect that your report and implementation will be examined within two weeks. If your report or implementation is unsatisfactory you will be given one chance to make the corrections and then to hand it in within a week after you have been notified (on the notice board and/or web or by e-mail). Your final report will be kept until your final grade of the course has been determined. You may then retrieve it if you wish.

 

 

  gra
Last update:
Wednesday, 12-Jan-2011 16:23:27 CET

© Institutionen för Datavetenskap, Jacek Malec, 2007-2009

spacer
[an error occurred while processing this directive]