TEACH AI2.PROJECT.TOPICS Aaron Sloman November 1995 [STILL UNDER CONSTRUCTION] CONTENTS - (Use 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. --------------------------------