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 0 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.
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 at most five pages. 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.
The first part of any AI problem is finding an acronym to name the program you construct. Name your project.
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 recall some of the example settings that we used in class and in the homework: the Antarctic robot, the Internet cheese shop manager, or the flexible local directions wizard.
The Antarctic Robot 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 at the end of this page. Note that you don't have to have a domain you can actually test your agent out in. 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. However, you will probably have more fun and learn from the project more if you do aim for an agent you can actually play with. And you will probably stay better motivated and give yourself less work if you pick a domain you already know something about.
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.
ScenarioRemember, this is meant to show you the kind of detail that should go into a scenario, not to demand that you handle anything like this kind of problem. 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.
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 homework 1. 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 exercise for 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.
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.
Homework 1 made the case that iteration is 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.
I thought this assignment wouldn't be complete with some vague suggestions about what you might do, with plenty of room for refinement. In fact, you will definitely need to apply the specific steps of elaboration outlined in this worksheet in order to arrive at a specific, limited and interesting project from these rough ideas. And of course there is plenty of room for you to reject these suggestions outright! You may already have a better idea. Go for it.
Information layout
Game playing
Using rules to give specialized advice
|