3203. Introduction to Artificial Intelligence

Planning

### 1. Introduction

Planning is the process of generating (possibly partial) representations of a future behavior prior to the use of such a plan to produce or control that behavior. The outcome is usually a set of actions, with temporal and other constraints on them, for execution by some agent or agents.

In the symbolic AI tradition, planning is usually carried out by search and reasoning. We have introduced how to do planning by search if the graph is given: when a final state is found, the path from initial state to it is the plan to realize it. If the graph needs to be generated by reasoning, a state can be represented as a set of propositions, and each action can change one state to another, which has some preconditions to be satisfied, and some effects to be produced as modifications of the proposition set.

### 2. STRIPS

The STanford Research Institute Problem Solver, or STRIPS, introduced a way to represent the actions of the domain in terms of changes to the world state.

STRIPS represents application domain states in first-order predicate logic, uses means-ends analysis to identify goals and subgoals that needed to be solved as stepping stones to a solution, searches through a space of possible solutions, and employs a simple but effective representation of the actions possible in the domain -- as STRIPS operators. Many of these techniques form the basis for later work in planning.

A STRIPS operator represents an action as having "preconditions" to be satisfied in the state in which the action is performed, and with some "effects" represented by a "delete list" and an "add list" that represent changes made to the state following the performance of the action.

For example, the current state corresponds to the position of a robot waiter and the items on a table:

```  At(Table-1) and On(Cup-a,Table-1) and On(Plate-a,Table-1)
```
and the following operator represent a pickup action of the robot:
```  Operator Pickup(x)
Preconditions: On(x,y) and At(y)
Delete list: On(x,y)
```
If the operation is applied to Cup-a at the current state, the new state will be
```  At(Table-1) and On(Plate-a,Table-1) and Hold(Cup-a)
```

### 3. Planning in Prolog

Section 2.19 of the Prolog Tutorial contains a Prolog program that is similar to STRIPS.

### 4. Related topics

Researchers in the planning field have added many additional features to the basic STRIPS action representation, including
• The addition of resource, time, and spatial constraints to reflect the scheduling requirements on actions.
• Abstraction of the levels of conditions and effects where a skeleton plan is first developed that addresses important preconditions before refining that to deal with other detailed preconditions.
• Planning for activities that take place in environments where the outcome of actions is uncertain. For example, the robot waiter "Pickup" action may fail if an object is too heavy.
There are more materials on this topic.

A related topic is self-programming, that is, a system's actions are not explicitly specified by a human programmer, but rather "decided by the system itself" to various degrees.