TEACH AI2.PROJECT.TOPICS                      Aaron Sloman November 1995

[STILL UNDER CONSTRUCTION]


         CONTENTS - (Use <ENTER> g to access required sections)

 -- Introduction
 -- 1. A planning program.
 -- 2. A STRIPS-like Problem solver.
 -- 3. A simulated world of interacting agents and objects,
 -- 4. An expert system
 -- 5. Using constraint propagation to avoid or reduce search
 -- 6. A game playing program

-- Introduction -------------------------------------------------------

The file TEACH * AI2.PROJECT describes some of the general procedures to
be followed in connection with the advanced AI project, including
proposals, reports, formatting, etc.

This file merely lists a variety of possible project topics, that could
be suitable for the SEM2A3 course. Bear in mind that not all topics are
equally difficult and not all students are equally advanced.

-- 1. A planning program. ---------------------------------------------

This should have the feature that there is some domain in which agents
can have different starting situations and different possible goals. for
all those cases the program should be able to find a sequence of steps
that move from the specified start situation to the specified goal.


-- 2. A STRIPS-like Problem solver. -----------------------------------

STRIPS (Staford Research Institute Problem Solver, described in many
text books on AI, and in TEACH NEWSOLVER) was a problem solver that
assembled solutions to problems by combining operators to form a
collection of operators which, when applied in sequence, transformed the
initial state to the final state. You can get a feel for what STRIPS did
by playing with TEACH * NEWSOLVER, looking at the runstrips examples.
You could try extending TEACH SEARCHING to implement a version of
strips, searching for combinations of operators, on the basis of their
add and delete lists and their preconditions. (This is described in most
text books of AI.)

-- 3. A simulated world of interacting agents and objects, ------------

Such a world is described in simplified form in TEACH ADVENT_OBJECTCLASS
(for which preparation can be found in the files TEACH *OOP, TEACH
OBJECTCLASS_EXAMPLE). There are various ways in which you could extend
that adventure game. E.g. one or more of

    a. let the characters communicate in simplified English.
    b. let the characters make plans using some sort of searching
        mechanism. This could be a plan to follow a route from A to B
        where there are many portions of routes.
    c. let the characters have minds including rule-based mechanisms.
        See TEACH RULEBASE, TEACH POPRULEBASE, TEACH ARMYSIM

For more on this see recent technical reports on the SIM_AGENT
toolkit by Riccardo Poli and myself, available in the School Library.

-- 4. An expert system ------------------------------------------------

(E.g. fault diagnosis, or planning, or some sort of design)

TEACH * RULEBASE introduces the use of a forward chaining production
system to design a very simple expert system. More complete information
is available in TEACH * POPRULEBASE, and even more(!) can be found in
HELP * POPRULEBASE.

Several demonstration programs are provided, which you might wish to
extend.

TEACH * PRBWINE introduces an expert wine adviser. You could turn it
into something more general. This sort of thing is fairly easy, as there
is not really any problem-solving involved, just chatting to narrow down
options.

TEACH * PRBZOO gives a rule-based program for identifying animals from
their descriptions. This can be very simple, or could be extended in
some way, e.g. so that the program learns.

TEACH * PRBGROCERIES
This is about a program for packing groceries into bags at a supermarket
checkout point. You could try extending to to cope with more types of
items and more constraints (e.g. don't put uncooked meat or fish in the
same bag as cooked meat or fruit).

TEACH * PRBRIVER shows a much more complicated example, where the
computer works out a plan for solving the river-crossing problem.

You could try to design either a fault-diagnosis system or some kind of
planning system (more difficult). For example if you have a car or some
kind of machine that has a manual with a section concerned with
"trouble-shooting" you could find a way to give the computer the
information that is in the manual. Another possibility would be to
look at Benjamin Spock's book on Baby and Child Care, or some other
home medicine book, and design a little expert system to help parents
decide whether a baby should be taken to the doctor or not, on the basis
of different combinations of commonly occurring symptoms.

TEACH EXPERTS gives an overview of some types of expert systems and
relevant facilities in Pop-11. The standard text books on AI give
further information that could give you ideas.


-- 5. Using constraint propagation to avoid or reduce search ----------

TEACH WALTZ introduces techniques for constraint manipulation to reduce
a search space. The example domain is analysing line drawings, where
individual components are ambiguous, but you have to find a globally
coherent interpretation for the whole.

-- 6. A game playing program ------------------------------------------

You could choose a game you know well, which requires some sort of
problem solving or searching, and implement a program to play the game.
An example might be noughts and crosses (Tic Tac Toe). Try expressing
the problem in terms of STRIPS operators and use the techniques in
TEACH NEWSOLVER

[I may add more suggestions....]

If you have a topic not on this list that you wish to work on, make sure
it is approved in advance.


--- $poplocal/local/teach/ai2.project.topics
--- The University of Birmingham 1995.  --------------------------------