|
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
- 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.
- 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.
- Consider a modified version of the vacuum environment
from point 1, in which the agent is penalized one point
for each movement.
- Can a simple reflex agent be perfectly rational for
this environment? Explain.
- What about a reflex agent with state? Design such an agent.
- 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?
- 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.)
- Can a simple reflex agent be perfectly rational for
this environment? Explain.
- 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.
- Can you design an environment in which your
randomized agent will perform very poorly? Show your results.
- 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?
- (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?
- (Not obligatory) The vacuum environments have
so far all been deterministic. Discuss possible agent
programs for each of the following stochastic versions:
- 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?
- 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?
- (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.
|