DCS 440: Artificial Intelligence
Project, Part 1, Fall 2000


Due in Class, Wednesday Sept 27

Contents
Objectives
Format
Step 0
Step 1
Step 2
Step 3
Step 4
Reminder
Sample ideas
Objectives

The class project itself has two aims. The first is to give you extended, in-depth look at a particular domain that interests you. Until you do such a study, it is almost impossible to get a good feeling for the strengths and weaknesses of logic as a tool to represent the world and to make decisions.

The second goal is to keep you in touch with the motivations for the more advanced techniques that the second half of the class covers. These techniques respond to common problems in AI; that makes the techniques important. However, these problems are not obvious; it takes some experience to understand how and why these problems show up in AI applications. So by having thought about some of these problems with a concrete project, you can get a better understanding of when and why the techniques are useful.

The project domain description that you will complete in this, Part 1 of the project, is designed to simply get the ball rolling in this process. This way the project can get far enough along early enough to inform the course material in this beneficial way.


Format

You will complete the project domain description by writing short answers to a series of problems. In other words, the project description is a kind of ``essay worksheet'' like the first homework. You should be able to provide good responses for all the problems in the worksheet in about three to five pages, or about 1200 words. Hopefully, the worksheet will reward thought. By mulling over your domain and your project in more detail, you will be able to write more precise, more thorough and more realistic responses. Note that such responses need not necessarily turn out longer!

While the worksheet problems are presented as a series, this is primarily to make it easier to read your answers. (Another reason to start the project early with this assignment is to make it easier to give feedback earlier about whether the project is the right size to get something out of but not to swamp you.) So again, it will probably help to read and think over the worksheet as a whole and get a good idea of your answers to all the problems before you dive into writing the problems up in order.

Turn in two copies of your answers. I will keep one copy through the semester, so that I can check your progress as you revise and extend your project. I will mark and return the other copy, so that you can use it to continue your work on the project during the semester.


Step 0

The first part of any AI problem is finding an acronym to name the program you construct. Name your project.


Step 1

We are thinking of AI programs as agents that act in an environment. The first step is to situate your program in this way. Describe the environment in which your agent will operate, or will be intended to operate. And describe at a high-level what will be the purpose or task that the agent must carry out in that environment. It can also be fun to argue that an agent to solve this problem would be helpful, or profitable, or entertaining. After all, you should have a reason to keep working on the project besides the fact that it's a measly course requirement. Don't hestitate to put some of that into your response at this step!

You may be find it helpful to compare some of the examples below: the Antarctic robot, the Internet cheese shop manager, or the flexible local directions wizard.

The Antarctic Robot
We imagine an agent whose task is to control a robot patrolling for meteors in the Antarctic. The Antarctic is a frozen remote expanse of land. For miles there, there is nothing terrestrial but glaciers and rock outcroppings. However, meteors strike frequently and can be preserved by the ice. The agent will have to explore a glacier area and investigate objects it finds, using remote sensors like magnetometers, metal detectors and cameras and internal sensors such as a spectroscope, in an effort to identify and collect meteors there. In such a big, inhospitable and dangerous place it makes sense to have a robot carry out this task, and it provides practice for robotic exploration of space.

The Internet cheese shop manager
Cheese is a big and complicated business; it is difficult for consumers to find information they need about specific cheeses. Our environment is an internet cheese shop which allows specialty cheeses to be ordered by mail. The agent's task is to manage a flexible interface which allows customers to ask specific questions and get customized answers about the cheeses they are interested in. The customer may select criteria for selection and comparison among cheeses by a menu to build a controlled but flexible query. In answer, the agent will have to access a knowledge base about the shop's products and can display pictures of cheeses and format information together into a hypertext response. We expect that customers will pay a premium for the unusual cheeses in the shop if the agent provides them with good and useful information that they find valuable.

Local directions wizard
The local directions agent will provide flexible information about routes between the Rutgers New Brunswick Campuses and their immediate surroundings. It will field queries about routes between specific destinations, allowing for alternative modes of transportation, including walking, biking, driving and taking a bus. In response, it can offer a high-level description of the route, including roads to follow, turns to take and landmarks along the way.

You can take one of these as a model for the kind of information that belongs in one of these descriptions: enough to give the reader a very rough feeling for the kinds of objects and relationships that are important in the domain, as well as the kinds of decisions the agent has to take in the domain to carry out its task successfully. These tasks may not necessarily be at the right level of work, though; but working through the later steps of the worksheet will help you settle on that. Some other broad categories of domain are suggested here.

You will probably have more fun and learn from the project more if you do aim for an agent you can actually play with. At the same time, you will probably stay better motivated and give yourself less work if you pick a domain you already know something about. If a domain that you're interested in and know a lot about doesn't allow you to test your agent out easily that's OK. Most of the testing will come in setting up a scenario for your agent and making sure your agent can actually play its specified role in this scenario. And you can learn something by thinking about, formalizing, and searching in any domain. Antarctica is on, then :)


Step 2

Next, describe a simple narrative saying what the agent might be able to do in this environment. Think of this as a ``mock-up'' or ``storyboard'' mapping out the kind of behavior you want to see. The story should specify a sequence of some six to ten decisions and actions that the agent can carry out to achieve a useful result for the task you have chosen.

Now, you have to be careful when you describe these decisions and actions. English makes it quite easy to describe an impossibly complex action in a very coarse way that makes the action sound simple. If you use that kind of description, it will make it very difficult to construct an artifact that will behave the way the story describes. Here is a good heuristic to help avoid this. Once you select the steps of choice that you give the agent and the actions the agent should carry out, try to make sure that you haven't stated the decision or the action in a way that implicitly depends on your agent using additional information from the world. I don't think you have to worry that this will make your project too easy. Just because you know what decision to make and what information in the world the decision depends on, don't think it's easy to write rules that describe how to make the decision for that information.

In addition to this heuristic, the rest of the problems you answer in formulating the domain description will elaborate on the story here to help provide guidance about whether the story is interesting and feasible.

Finally, one other requirement about the story. Be sure to choose one that requires the agent to determine what caused some event that it has observed (diagnosis) or to plan some action that will achieve its goals (planning). These kinds of tasks will be particularly important topics in the second half of the class. Including these steps for your agent will help to ensure the right connection between the project and the other activities in the course. The reasoning steps involved are actually similar for both diagnosis and planning though, so either kind will do.

For a good example of the kind of form this scenario might take, we can take example of the comparison between Stilton and Roquefort that formed part of homework one.

Scenario
The user chooses comparison menu item and gets a dialogue box to enter two kinds of cheese to compare; the user chooses Stilton and Roquefort.

The agent now plans and constructs a response to compare these cheeses. First, it accesses its knowledge base to identify the similarities betwee Stilton and Roquefort (e.g., both blue cheeses) and to identify the differences (e.g., kind of milk, origin, use, sharpness). Then, it defines a web page that is appropriate for the comparison: it selects a template for comparison (e.g., a title, two pictures, two lists of differences, and a single list of similarities). It draws on the differences it identifies to fill out the template. The title should say the two things that are being contrasted (e.g., Stilton and Roquefort); the pictures should show the two things (e.g., the agent accesses and inserts pictures of the cheeses). Similarly, each of the identified differences should be used to list constrasting facts in alternate entries of a table under the two cheeses. And each of the identified similarities should be used to list common facts centered beneath the table. Finally, it returns that page to the user.

(Remember, this is meant to show you the kind of detail that should go into a scenario. This problem is easy for me to describe because it's similar to ones I've worked on and am interested in. You should also aim to select a domain and decisions that you may think about or be interested in anyway.)


Step 3

Take two representative decisions that your agent makes in the story and analyze them in more detail, using the process of finding the right questions described in recitation two. For each decision, present a question or a predictable series of questions which the agent's decision can be seen as an outgrowth of an answer to. Give rough arguments that might justify answers to those questions from your agent's point of view. In these arguments, pay special attention to the generalizations about the world and the particular information that the agent could apply under the circumstances to arrive at the right answer to the questions.

The discussion in the recitation about Stilton and Roquefort gives you the flavor for what questions and answers might serve the agent in its step of identifying the information that might be presented in contrasting Stilton and Roquefort.


Step 4

Finally, provide a rough inventory of the special kinds of individuals that your agent will have to consider to make the choices you specified for it in your story, using the kinds of arguments you have sketched out in your response to Step 3.

There will be some general kinds of objects that everyone's agents will probably want to represent. For example, you will need representations of points in time or states in the world. You will need an inventory of actions for the agent to; and you may need representations that denote your agent itself as well as any collaborative partner (like a user, for an interface agent) or any competitor agent (in a game, say) in the environment. Just describe the other kinds of individuals in the domain; the ones that are particular to the environment and task and decisions that you have set for yourself in your responses to the worksheet.

This description should be restricted to a very high level. You do not need to provide particular constants with a specified interpretation for every individual that you think your agent will have to refer to. This sort of detailed formalization can wait until the next stages of the project. What's important is to argue first, that only a small number of types of objects are important for solving the task you have set your agent; and second, that trying to formalize these types of objects will not open up any cans of worms. In other words, you shouldn't have to know about an open-ended inventory of objects of these kinds and you shouldn't have to know an open-ended list of properties of these objects in order to make the decisions that will get your agent to play the right role in the story you've developed.

Thus, for example, if you had chosen a cheese shop agent like ACE, it would suffice to list classes of objects like kinds of cheese, things to do with cheese, things cheese is made out of, and so on. Then you would provide just a rough description of each of these classes and the level of detail in which you will have to consider them. For example, we saw that the basic objects for ACE are kinds of cheeses, which you identify by the name of the variety. This representation assumes that specific kinds of cheese are the smallest or most specific variety of cheese you need to reason about. To talk about cheeses fabricated by individual makers you would need to distinguish objects in the domain more finely.


Reminder

Iteration is often required in the process of setting up a domain to characterize an agent acting in its environment. Even though you only turn in a single response to each of the steps in this worksheet, you may find the need for similar iterations as you complete it. For example, fleshing out a concrete scenario in your domain may lead you to emphasize different aspects of the domain when you describe the agent's task at a high level. And breaking down a decision in the scenario in terms of a series of specific questions may lead you to think of your agent interacting with its environment more finely or more simply than you had before. Of course, we already saw last time the impact of classifying these questions in terms of the objects, relationship and generalizations that have to be marshalled to build an argument to answer the questions. As you do this classification here too, you may get a more precise idea of what it will be possible to do in your domain, and what will be impossible.

The intention, then, is that these steps of design have been packaged together to allow you to take what you need into account to get a coherent view of a concrete scenario in a useful domain. In the remainder of your work on the project in the course, you can draw on the understanding of this scenario that you have established here, first to construct a formal knowledge base that describes the information that your agent will use; and later to apply appropriate algorithms from class to show that this information could be used, as you intended it, to guide your agent through this scenario.