Download Seminar Selected Topics on Specifying Intelligent Agents STRIPS

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Embodied cognitive science wikipedia , lookup

Transcript
Rheinisch-Westfälische Technische Hochschule Aachen
Knowledge-Based Systems Group
Prof. G. Lakemeyer, Ph.D.
Seminar Selected Topics on Specifying
Intelligent Agents
im Sommersemester 2010
STRIPS and ADL
Enrique López Mañas
Advisor: Stefan Schiffer last build: August 23, 2010
1
CONTENTS
Contents
1 Introduction
2
1.1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
Frequently Used Terms . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3
Automated Planning . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.4
The frame problem . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.5
Search and planning . . . . . . . . . . . . . . . . . . . . . . . . .
4
2 STRIPS
5
2.1
History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Syntax of STRIPS . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3
Semantics of STRIPS . . . . . . . . . . . . . . . . . . . . . . . .
8
2.4
Planning in STRIPS . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.5
Complexity of STRIPS planning . . . . . . . . . . . . . . . . . .
9
3 ADL
10
3.1
History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2
Syntax of ADL . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.3
Semantics of ADL . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.4
Complexity of ADL planning . . . . . . . . . . . . . . . . . . . .
12
4 Comparison between STRIPS and ADL
4.1
Expressiveness . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Examples with ADL and STRIPS
12
12
13
5.1
Implementation with STRIPS . . . . . . . . . . . . . . . . . . . .
13
5.2
Implementation with ADL . . . . . . . . . . . . . . . . . . . . . .
16
5.3
How is planning done
19
. . . . . . . . . . . . . . . . . . . . . . . .
6 Practical applications of STRIPS and ADL
22
7 Conclusions
23
7.1
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
7.2
Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
8 Bibliography
25
1
INTRODUCTION
1
2
Introduction
1.1
Motivation
Stories of artificial automats and attempts to create them have a long history,
but fully autonomous machines only appeared in the 20th century. As the
human tends to be lazy, there has been always the necessity of providing such
automats a truly autonomy and a behavior free of human supervision. The
automated planning arises as a methodology for intelligent agents, autonomous
robots and unmanned vehicles to plan strategies or action sequences. Within the
automated planning there are some languages formalizing the basics of planning.
This is a seminar paper which describes two of the most relevant languages for
automated planning: STRIPS and ADL. The paper is structured as follows: first
we will have a summary of the most frequently used terms in the paper. After
that an overview about automated planning will be given. STRIPS and ADL are
studied after that, considering the following elements for each of the languages:
history and motivation, syntax, semantic and examples. Both languages and its
more relevant features will be compared, in order to analyze pros and contras
of each language. Just before a conclusion and discussion of the paper there is
an overview of practical applications using STRIPS and ADL, and a section to
state the future line of development on automated planning.
1.2
Frequently Used Terms
Throughout this seminar paper we will frequently use some terms that the
reader may not be familiar with. Therefore, a summary of this terms and a
brief explanation can be found. Some of those terms will be further explained
in future sections.
• State: represents a configuration for a certain problem. A state is typically
modified by an action. There two special states in a planning problem, the
goal and the initial state. The goal indicates the state that the problem
must reach in order to success. The initial state is the initial configuration
that the problem will face.
• Precondition: the precondition is the condition that a action must accomplish to be executed. For example, a box cant be moved if it is not in our
hands
• Effect: the consequence that results from the execution of an action.
• Action: the execution of a routine that invariably affect a state, leading
to their modification.
• Search Problem: a search problem can be stated as a problem with a set
of instances and a set of solutions. The problem is analyzed with a certain
algorithm, and the goal is to find a instance state which belongs as well
to the solutions set.
1
INTRODUCTION
3
• Search Strategy: each of the algorithms used to explore the tree of a search
problem. They can be divided in two main groups: heuristic algorithms
and non-heuristic algorithms.
1.3
Automated Planning
Automated planning and scheduling is a branch in artificial intelligence research
that studies how to automatically generate and perform action sequences. It
is typically used for execution by intelligent agents, such as autonomous robots
and unmanned vehicles. The solutions to the problems that these agents face are
typically complex and the solution have to be optimized in a multidimensional
space [3]. Although in the theoretical models the ”closed world assumption”
can be considered, in a real environment automated planning has to take into
account external influences to the theoretical model that could possibly affect
it.
The motivation for automated planning, as stated in the previous section, is the
study and design of how to make agents solve problems. Such a study is of practical concern, because some complex artifacts require a truly autonomous and
deliberative behavior while they’re operating. For instance, satellites or spacecrafts. Due to particular constraint (communication can take an inadmissible
time to be performed) this artifacts can not been operated from the distance,
and therefore they should operate even when there is no human supervisor.
A typical planner takes three inputs: a description of the initial state of the
world, a description of the desired goal, and a set of possible actions. All those
inputs are typically encoded in a formal language. In this seminar paper we
will study two of them: STRIPS and ADL. The planner produces a sequence of
actions that lead from an initial state to a state meeting the goal. An alternative
language for describing planning problems is that of hierarchical task networks,
in which a set of tasks is given, and each task can be either realized by a primitive
action or decomposed in a set of other tasks.
The automated planning problems are represented internally as a search problem. From each state we can derive new states depending on the action performed. This leads into a full representation (sometimes infinite) that is likely
represented as a tree with branches, so the analysis and optimization of the
problem can be systematized.
The search strategies can be categorized in two big groups: those searches that
are heuristic and those searches that do not use any heuristic: a heuristic is a
technique designed to solve a problem that ignores whether the solution can be
proven to be correct, but which usually produces a good solution or solves a
simpler problem that contains or intersects with the solution of the more complex problem. Most real-time, and even some on-demand, anti-virus scanners
use heuristic signatures to look for specific attributes and characteristics for
detecting viruses and other forms of malware. The strategies that not use a
heuristic do not have an expert knowledge of the domain, so theyre more likely
to be more durable and less optimized. Typically the searches using a heuristic
are called informed. The ones which doesnt are called uninformed.
1
4
INTRODUCTION
The purpose of this seminar paper is not to analyze deeply the different search
strategies. More information can be found under [11] and [12]. The Table 1
shows a summary of the main uninformed search strategies:
Breadth-first
Uniform cost
Depth-first
Depth-limited
Iterative deepening
Bidirectional
Completeness
Yes
Yes
No
No
Yes
Yes
Optimality
Yes
Yes
No
No
Yes
Yes
Time
O(bd+1)
O(b1+[C / ])
O(bm)
O(bl)
O(bd)
O(bd/2)
Space
O(bd+1)
O(b1+[C / ])
O(bm)
O(bl)
O(bd)
O(bd/2)
Table 1: Comparative of uninformed search strategies
1.4
The frame problem
Briefly, the frame problem is technically defined in [34]. The main question that
this problem arises is how is it possible to write formulae that specify consequences of actions without having to write all of the accompanying formulae
describing the obvious non-effects of those actions. We will give a small example. Suppose we write two formulae, one describing the effects of painting an
object and the other describing the effects of moving an object.
1. Colour(x, c) holds after Paint(x, c)
2. Position(x, p) holds after Move(x, p)
Let’s going to suppose we have an initial state: Colour(A, Red) and Position(A, House).
According to the FOL, after the action Paint(A, Blue) followed by Move(A, Garden)
we can intuitively expect that Colour(A, Blue) and Position(A, Garden) will
hold. But unfortunately this is not the case. If written out more formally in
classical predicate logic, using a suitable formalism for representing time and
action such as the situation calculus, the two formulae above only license the
conclusion that Position(A, Garden) holds. This is because they don’t rule out
the possibility that the colour of A gets changed by the Move action. Further
information on the frame problem can be found at [35]
1.5
Search and planning
In very simple problems of planning, we can first apply any applicable operator
to the initial model, we might first apply all of the applicable operators to the
world model we have built [8], in order to create a set of successors. Afterwards
we would continue to apply to the successors and their descendants until we
reach a goal state. However, most of the problems are more complex than just
this, and using this strategy will generate a quite large world model and would
thus be impractical.
2
STRIPS
5
Let’s consider, for example, the task of getting milk, bananas and oranges. As
we can see in the Figure 1, standard tree search will fail miserably and expand
a lot of states that might not be necessary to solve the problem. A planning
system will have the following behavior in a problem:
1. Open-up actions and goal representation to allow selection
2. Divide and conquer by creating small subgoals
3. Relax requirement for sequential construction of solutions [36]
Figure 1: Search strategies vs. planning. Search will expand many branches
2
2.1
STRIPS
History
The acronym STRIPS stands for Stanford Research Institute Problem Solver.
Along with the beginning of automated planning and artificial intelligence, it
was one of the firsts automated planners developed (Richard Fikes and Nils
Nilsson, 1971)[4]. Later on, the same name was used to refer to the formal
language described in this planner. This planner act as a base for the other
languages that were described after STRIPS, and it is normally the academic
reference for study.
Although STRIPS is the most well-known planning system, it was not the first
one. Green[5] proposed on May 1979 a problem solving system that exclusively
depends on formal theorem-proving methods to search for an appropriate sequence of operators. However, this approach suffered some serious disadvantages
that prevented it from solving non-trivial problems. STRIPS main contribution
to the planning systems was to separate the process of theorem-proving from
those of searching through a space of world model.
Consider a fixed propositional action signature (f,t, F,A). The following two
definitions characterize the syntax and semantics of STRIPS.
2
STRIPS
6
1. An operator is a pair (F , X), where F is a propositional combination of
fluent names (the precondition), and X is a consistent set of literals (the
effects).
2. An action description is a function from action names to operators.
Recall that a (propositional) interpretation of a set of symbols is a function that
maps this set into f, t:
We next need a way to state the effects of operator application on world models.
These effects are simply described by two lists. On the delete list we specify
those clauses in the original model that might no longer be true in the new
model. On the add list are those clauses that might not have been true in the
original model but are true in the new model.
We will discuss now certain aspects of the language, such the syntax and the
semantic. Later on we will describe the search strategy performed by STRIPS.
Both parts, as we said, are independent, which increases the overall performance
of the system.
2.2
Syntax of STRIPS
In STRIPS, the goals are partially defined states, given by conjunctions of positive ground literals. For instance, a state s satisfies a goal g if g is entailed in
s:
s = rich ∧ famous ∧ miserable satisfies g = rich ∧ famous
s = on(a,b) ∧ on(b,c) ∧ clear(a) clear(table) satisfies g = on(a,b) ∧ on(b,c)
But in order to simplify matters, STRIPS can restrict the states’ description as
follows (without any complex formulae)
• A set of conjunctions of propositions or First-Order Literals can describe
state variables
• Literals must be ground (variable-free)
• The Closed World Assumption is used, i.e. everything which is not given
explicitly is false (his is one of the differences with ADL)
The next text provides an example using the world of blocks:
on(b,table) ∧ on(a,b) ∧ on(c,table) ∧ clear(a) ∧ clear(c) ∧ clear(table) on(b,c)
is implicitly false
2
7
STRIPS
Figure 2: Closed-World assumption in STRIPS
Another fundamental element of STRIPS representation are actions (see description below). Actions are always represented in terms of action schemata:
1. There is always a name for the action
2. Parameters for the action, or variables
3. Pre-conditions: conjunctions of positive literals that states how the world
should look like or which conditions should we satisfy in order to perform
the action
4. Effects: is always a conjunction of literals which describe state changes
(could be referred as post-condition as well). Some planners can distinguish positive (an add list) and negative (delete list) effects. An example
is given here:
Action(move(B1, x, y),
PRECOND: on(B1,x) ∧ clear(B1) ∧ clear(y)
EFFECT: ¬ on(B1,x) ∧ on(B1,y) ∧ clear(x) ∧ ¬clear(y)
We can describe in natural language the previous example as follows: in order
to move B1 from the position x to y, B1 needs to be on x, there should be no
other object on B1, and y should be clear. After moving B1 from x to y, B1
is no longer on x but on y, x is clear and y is no longer clear.
Let’s see, for instance, an example of a performed action in STRIPS:
onTable(A) onTable(C) ∧ on(B,C) ∧ clear(A) ∧ clear(B)
Action(stack(A, B),
PRECOND: clear(A) ∧ clear(B)
EFFECT: on(A,B) ∧ ¬ onTable(A) ∧ ¬ clear(B))
NO CHANGES: clear (A), on (B,C), onTable(C)
delete list: onTable(A), clear(B)
add list: on(A,B)
2
8
STRIPS
Figure 3: Performed action in STRIPS
2.3
Semantics of STRIPS
The semantic can be defined as the study of meaning. Meaning in this case
refers to the relation between signifiers and what they stand for. This applies
not only to natural language, but to computer or artificial languages.
The next equation shows a semantic description of the STRIPS language:
Si+1 = transST RIP S (Si , a) =
(Si \del (a)) ∪ add(a), if pc(a) ⊆ Si and add(a) ∪ del(b) = ø
undef ined otherwise
(1)
The previous definition makes a separation between add and delete list. Lets
see how it holds for an example:
s0 = on(a,c) ∧ on(c,table) ∧ on(b,table) ∧ clear(a) ∧ clear(b) ∧ clear(table)
move(a,c,b)
s1 = on(a,b) ∧ on(c,table) ∧ on(b,table) ∧ clear(a) ∧ clear(c) ∧ clear(table)
2.4
Planning in STRIPS
STRIPS adopted the ”GPS” strategy of extracting differences between the current model and the goal, and the different operators that can be relevant to
attempt to reduce these differences [9]. First a relevant operator is determined,
and then we attempt to solve the sub problem of producing a world model to
which it is applicable. If the model is found, we apply the operator and consider
the original goal into the resulting model.
STRIPS employs a theorem prover to attempt to prove that the goal wff (well
formed formula) G0 follows from the set M0 of wff’s that describes initial world
model. If G0 does follow from M0 , the task is trivially solved in the initial
model. Otherwise, the theorem prover will not find a proof, so we need to go
on with the process. In this case, the uncompleted proof is taken to be the
”difference” between M0 and G0 . Next, operators that might be relevant to
”reducing” this difference are sought. These are the operators whose effects on
world models would enable the proof to be continued. In determining relevance,
the parameters of the operators may be partially or fully instantiated. The
corresponding instantiated precondition wff schemata (of the relevant operators)
are then taken to be new subgoals.
The search strategy can be defined with the following algorithm. Given a goal
stack:
2
9
STRIPS
1. Consider the top goal
2. Find a sequence of actions satisfying the goal from the current state and
apply them.
3. The next goal is considered from the new state.
4. Termination: stack empty
5. Check goals again.
2.5
Complexity of STRIPS planning
Tom Bylander proposes the PLANSAT model to analyze the complexity of
STRIPS. Tom defines PLANSAT as the problem of determining the existence
of a solution for STRIPS planning. The following figure shows the complexity
of PLANSAT under some different restrictions: depending on the scenario the
complexity can be PSPACE-complete, NSPACE complete and polynomial.[38]
Figure 4: Complexity results for PLANSAT
In general, it is PSPACE-complete to determine if a given planning instance has
any solutions. Extremely severe restrictions on the operator and the domain theory must be required in order to guarantee tractability or even NP-completeness
3
10
ADL
for planning problems with STRIPS. For example, to ensure polynomial complexity each operator should only have positive preconditions and a single postcondition and there should be a limited number of goals [39]. However, we have
to make it careful regarding the implications of these results.[28].
3
ADL
3.1
History
ADL stands for Action Description Language. ADL is another automated planning and scheduling system, particularly oriented for robots. It is considered to
be an advancement over STRIPS. Pednault proposed this language in 1987.
Pednault [6] observed that the expressive power of STRIPS was susceptible of
being improved by allowing the effects of an operator to be conditional. This
is the main idea of ADL-A, which is basically the propositional fragment of the
ADL proposed by Pednault [7]. ADL-B is an extension of A. In this extension,
actions can be described with indirect effects by the introduction of a new kind
of propositions, ”static laws. A third variation of ADL is ADL-C. This last one
is similar to B, in the sense that its propositions can be classified into static and
dynamic laws. But there are some more particularities, which will be described
in more detail in the following chapters [7]
3.2
Syntax of ADL
An ADL schema consists of an action name, an optional parameter list and four
optional groups of clauses labeled Precond, Add, Delete and Update.
The Precond group is a list of formulas that define the preconditions for the
execution of an action. If the set is empty, the value TRUE is thus inserted into
the group, and the preconditions are always evaluated as holding conditions.
The Add and Delete conditions are specified by the Add and Delete groups,
respectively. Each group consists of a set of clauses of the forms shown in the
left-hand column of the Table 2.
Clause
R(τ1 ,...,
R(τ1 ,...,
R(τ1 ,...,
R(τ1 ,...,
τn )
τn ) if ψ
τn ) for all z1 ,..., zk
τn ) for all z1 ,..., zk such that ψ
α̃R(x1 ,,xn )/δ(x1 ,,xn )
(x1 = τ1 ∧ ... ∧ xn = τn )
(x1 = τ1 ∧ ... ∧ xn = τn ∧ ψ)
∃z1 ,...,zk (x1 = τ1 ∧ ... ∧ n = τn )
∃z1 ,...,zk (x1 = τ1 ∧ ... ∧ n = τn ∧ ψ)
Table 2: Add and delete clauses, and their meaning
1. The R represents a relation symbol.
2. τ1 , ... , τn represent terms
3
11
ADL
3. ψ represents a formula
4. The sequence z1 ,...,zk are variable symbols that appear in the terms τ1 ,...,
τn , but not in the parameter list of the action schema
5. x1 ,...,xn are variable symbols that are different from the variables z1 ,...,zn
and do not appear in τ1 ,...,τn , ψ , or the parameter list of the action
schema
The Update groups are used to specify the update conditions to change the
values of function symbols. An Update group consists of a set of clauses of the
forms shown in the left column of the Table 3.
Clause
F(τ1 ,...,
F(τ1 ,...,
F(τ1 ,...,
F(τ1 ,...,
C
C
C
C
τn )
τn )
τn )
τn )
←τ
← τ if ψ
← τ for all z1 ,..., zk
← τ for all z1 ,..., zk such that ψ
←τ
← τ if ψ
← τ for all z1 ,..., zk
← τ for all z1 ,..., zk such that ψ
µF (x1 ,...,xn , y)/ µc (y)
(x1 = τ1 ∧ ... ∧ n = τn ∧ y =τ )
(x1 = τ1 ∧ ... ∧ n = τn ∧ y =τ ∧ ψ)
∃z1 ,...,zk (x1 = τ1 ∧ ... ∧ xn = τn ∧ y = τ )
∃z1 ,...,zk (x1 = τ1 ∧ ... ∧ xn = τn ∧ y = τ ∧ ψ)
(y = τ )
(y = τ ) ∧ψ
∃z1 ,...,zk (y = τ )
∃z1 ,...,zk (y = τ ) ∧ψ
Table 3: Update clauses, and their meaning
3.3
Semantics of ADL
The formal semantic of ADL is defined by 4 constraints. The first constraint
is that actions may not change the set of objects that exist in the world; that
means that for every action α and every current-state/next-state pair (s, t) ∈
a, it must be the case that the domain of t should be equal to the domain of s.
The second constraint is that actions in ADL must be deterministic. If (s, t1 )
and (s, t2 ) are current-state/next-state pairs of action ∃, then it must be the
case that t1 = t2 .
The third constraint incorporated into ADL is that the functions introduced
above must be representable as first-order formulas. For every n-ary relation
symbol R, there must exist a formula φaR x1 ,... ,xn ) with free variables x2 ,...,xn
such that faR (s) is given by:
t(R) = faR (s) = (d1 , , dn ) ∈ Dom(s)n | s[d1 /x1 ,...,dn /xn |= φaR (x1 ,xn )]
Consequently, F(n1 ,.. -,xn ) = y will be true after performing action |= if and
only if φaR (x1 ,... ,xn ,y) was true beforehand. Note that this representability
requirement relies on the first constraint ( Domain of f should be equal to domain
of s).
4
COMPARISON BETWEEN STRIPS AND ADL
12
The fourth and final constraint incorporated into ADL is that set of states in
which an action is executable must also be representable as a formula. For every
action α that can be represented in ADL, there must exist a formula π a with
the property that s | = πa if and only if there is some state t for which (s, t )
∈ α (i.e. action α is executable in state s)
3.4
Complexity of ADL planning
In terms of computational efficiency, ADL can be located between STRIPS and
the situation calculus [29]. Any ADL problem can be translated into a STRIPS
instance. However, existing compilation techniques are worst-case exponential
[32]. This wort case cannot be improved if we are willing to preserve the length
of plans polynomially [33], and thus ADL is strictly more brief than STRIPS.
ADL planning, however, is still a PSPACE-complete problem.Most of the algorithms polynomial space even if the preconditions and effects are complex
formulae [30].
Interestingly, most of the top-performing approaches to classical planning internally utilize a STRIPS like representation. In fact, most of the planners (FF,
LPG, Fast-Downward, SGPLAN5 , LAMA) first translate the ADL instance into
one that is essentially a STRIPS one (without conditional or quantified effects
or goals).
4
Comparison between STRIPS and ADL
From the above mentioned features (semantics and syntax) we can further analyze both languages, and show the difference between both of them.
4.1
Expressiveness
1. The first remark is that the STRIPS language only allows positive literals
in the states, while ADL can support both positive and negative literals.
For example, a valid sentence in STRIPS could be Rich ∧ Beautiful. The
same sentence could be expressed in ADL as ¬Poor ∧ ¬Ugly
2. In STRIPS the unmentioned literals are false. This is called the Closed
World Assumption. In ADL the unmentioned literals are unknown. This
is known as the Open World Assumption.
3. In STRIPS we only can find ground literals in goals. For instance, Rich ∧
Beautiful. In ADL we can find quantified variables in goals. For example,
∃x At (P1, x) ∧ At(P2, x) is the goal of having P1 and P2 in the same
place in the example of the blocks
4. In STRIPS the goals are conjunctions (Rich ∧ Beautiful ). In ADL the
goals allow conjunction and disjunction (Rich ∧ Beautiful ∨ Smart).
5. In STRIPS the effects are conjunctions, but in ADL conditional effects
are allowed: when P:E means E is an effect only if P is satisfied
5
EXAMPLES WITH ADL AND STRIPS
13
6. The STRIPS language does not support equality. In ADL , the equality
predicate (x = y ) is built in.
7. STRIPS does not have support for types, while in ADL it is supported
(for example, the variable p : Person).
The expressiveness of the STRIPS language is constrained by the types of transformations on sets of formulas that can be described in the language. Transformations on sets of formulas using STRIPS operators are accomplished by
removing some formulas from the set to be transformed and adding new additional formulas. For a given STRIPS operator, the formulas to be added
and deleted are fixed for all sets of formulas to be transformed. Consequently,
STRIPS operators cannot adequately model actions whose effects depend on
the situations in which they are performed. Consider a rocket which is going to
be fired for a certain amount of time. The trajectory may vary not only because
of the bum’s duration, but also because of the velocity, mass, and orientation
of the rockets. It cannot be modeled by means of a STRIPS operator because
the formulas that would have to be added and deleted would depend on the set
of formulas to be transformed [23].
Although a efficient reasoning is possible when the STRIPS language is being
used, it is generally recognized that the expressiveness of STRIPS is not suitable for modeling actions in many real world applications. This inadequacy
motivated the development of the ADL language [23, 37]. ADL expressiveness
and complexity lies between the STRIPS language and the situation calculus.
Its expressive power is sufficient to allow the rocket example described above to
be represented, yet at the same time it is restrictive enough to allow efficient
reasoning algorithms to be developed
As an example, in a more complex version of the blocks world, it could be than
a block A is twice as big as the block B and C, so the action xMoveOnto(B,A)
might only have the effect of negating Clear(A) if On(A,C) is already true,
or creating the conditional effect depending on the size of the blocks. This kind
of conditional effects would be hard to express in STRIPS notation without the
conditional effects.
5
Examples with ADL and STRIPS
Now that the languages have been explained, we provide an example to enhance the comprehension. The problem is the air cargo problem, which involves
loading and unloading cargo onto and off from planes. The cargos must be
transported from some places to others. There are defined three actions for the
problem: Load, Unload and Fly.
5.1
Implementation with STRIPS
We have three variables in the implementation: a (airport), c (cargo), p (plane),
f (start), t (destination)
5
EXAMPLES WITH ADL AND STRIPS
14
Actions:
Load (c, p, a). Load a cargo into the plane
PRECOND: At (c, a) ∧ At (p, a) ∧ Cargo (c) ∧ Plane (p) ∧ airport (a)
EFFECT: ¬At (c, a) ∧ In (c, p))
The precondition states that there must be a Cargo ”c”, a Plane ”p”, and an
Airport ”a”. The cargo and the plane must be at the airport. The effect states
that the Cargo ”c” will not be at the airport ”a” anymore, but inside the plane
”p”.
Unload (c, p, a). Unload a cargo from the plane.
PRECOND: In (c, p) ∧ At (p, a) ∧ Cargo (c) ∧ Plane (p) ∧ Airport (a)
EFFECT: At (c, a) ∧ ¬ In (c, p))
The precondition states that there must be a Cargo ”c”, a Plane ”p” and an
Airport ”a”, and the Cargo ”c” must be inside the Plane ”p” and the Plane ”p”
should be at the Airport ”a”. The effect states that the Cargo ”c” will be out
of the plane ”p”, and at the airport ”a”.
Fly (p, from, to). Fly from a airport to another
PRECOND: At (p, from) ∧ Plane (p) ∧ Airport (from) ∧ Airport (to)
EFFECT: ¬At (p, from) ∧ At (p, to))
The precondition states that there must be an Airport ”from”, an Airport ”to”
and a Plane ”p”, and the Plane ”p” must be at the Airport ”from”. The effect
states that the Plane ”p” will not be anymore at the Airport ”from”, but at the
Airport ”to”.
Initial State:
Init (At (C1, MAD) ∧ At (C2, BER) ∧ At (P1, MAD) ∧ At (P2, BER) ∧
Cargo (C1) ∧ Cargo (C2) ∧ Plane (P1) ∧ Plane (P2) ∧ Airport (BER) ∧
Airport (MAD))
Goal State: Goal (At (C1, BER) ∧ At (C2, MAD))
Init (At (C1, MAD) ∧ At (C2, BER) ∧ At (P1, MAD) ∧ At (P2, BER) ∧
Cargo (C1) ∧ Cargo (C2) ∧ Plane (P1) ∧ Plane (P2) ∧ Airport (BER) ∧
Airport (MAD))
Now we begin the execution of the planner. We have the initial state, we have
the goal, we have the variables from our problem and the possible actions to be
executed.
First Action: Load (C1, P1, MAD) Loading cargo C1 into plane P1 at the
airport MAD
• Action (Load (C1, P1, MAD),
5
EXAMPLES WITH ADL AND STRIPS
15
• PRECOND: At (C1, MAD) ∧ At (P1, MAD) ∧ Cargo (C1) ∧ Plane (P1)
∧ airport (MAD)
• EFFECT: ¬ At (C1, MAD) ∧ In (C1, P1))
• Next state: S1 (In (C1, P1) ∧ At (C2, BER) ∧ At (P1, MAD) ∧ At (P2,
BER) ∧ Cargo (C1) ∧ Cargo (C2) ∧ Plane (P1) ∧ Plane (P2) ∧ Airport
(BER) ∧ Airport (MAD))
Second Action: Fly (P1, MAD, BER) Plane P1 flies from airport MAD to
airport BER
• Action (Fly (P1, MAD, BER),
• PRECOND: At (P1, MAD) ∧ Plane (P1) ∧ Airport (MAD) ∧ Airport
(BER)
• EFFECT: ¬ At (P1, MAD) ∧ At (P1, BER)
• Next state: S2 (In (C1, P1) ∧ At (C2, BER) ∧ At (P1, BER) ∧ At (P2,
BER) ∧ Cargo (C1) ∧ Cargo (C2) ∧ Plane (P1) ∧ Plane (P2) ∧ Airport
(BER) ∧ Airport (MAD))
Third Action: Load (C2, P2, BER) Load cargo C2 into plane P2 at airport
BER
• Action (Load (C2, P2, BER),
• PRECOND: At (C2, BER) ∧ At (P2, BER) ∧ Cargo (C2) ∧ Plane (P2)
∧ airport (BER)
• EFFECT: ¬ At (C2, BER) ∧ In (C2, P2)
• Next state: S3 (In (C1, P1) ∧ In (C2, P2) ∧ At (P1, BER) ∧ At (P2,
BER) ∧ Cargo (C1) ∧ Cargo (C2) ∧ Plane (P1) ∧ Plane (P2) ∧ Airport
(BER) ∧ Airport (MAD))
Fourth Action: Fly (P2, BER, MAD) Plane P2 flies from airport BER to
airport MAD
• Action Action (Fly (P2, BER, MAD),
• PRECOND: At (P2, BER) ∧ Plane (P2) ∧ Airport (BER) ∧ Airport
(MAD)
• EFFECT: ¬ At (P2, BER) ∧ At (P2, MAD)
• Next state: S4 (In (C1, P1) ∧ In (C2, P2) ∧ At (P1, BER) ∧ At (P2,
MAD) ∧ Cargo (C1) ∧ Cargo (C2) ∧ Plane (P1) ∧ Plane (P2) ∧ Airport
(BER) ∧ Airport (MAD))
Fifth Action: Unload (C1, P1, BER) Unload cargo C1 from plane P1 at
airport BER
5
EXAMPLES WITH ADL AND STRIPS
16
• Action (Unload (C1, P1, BER),
• PRECOND: In (C1, P1) ∧ At (P1, BER) ∧ Cargo (C1) ∧ Plane (P1) ∧
Airport (BER)
• EFFECT: At (C1, BER) ∧ ¬ In (C1, P1)
• Next state: S5 (At (C1, BER) ∧ In (C2, P2) ∧ At (P1, BER) ∧ At (P2,
MAD) ∧ Cargo (C1) ∧ Cargo (C2) ∧ Plane (P1) ∧ Plane (P2) ∧ Airport
(BER) ∧ Airport (MAD))
Sixth Action: Unload (C2, P2, MAD) Unload cargo C2 from plane P2 at
airport MAD
• Action (Unload (C2, P2, MAD),
• PRECOND: In (C2, P2) ∧ At (P2, MAD) ∧ Cargo (C2) ∧ Plane (P2) ∧
Airport (MAD)
• EFFECT: At (C2, MAD) ∧ ¬ In (C2, P2)
• Next state: S6 (At (C1, BER) ∧ At (C2, MAD) ∧ At (P1, BER) ∧ At
(P2, MAD) ∧ Cargo (C1) ∧ Cargo (C2) ∧ Plane (P1) ∧ Plane (P2) ∧
Airport (BER) ∧ Airport (MAD)) Goal (At (C1, BER) ∧ At (C2, MAD))
A state s satisfies a goal g if s contains all the atoms in g (and possibly others)
→ S6 satisfies Goal
5.2
Implementation with ADL
Actions
Load (c: cargo, p: plane, a: airport)
PRECOND: At (c, a) ∧ At (p, a)
EFFECT: ¬ At (c, a) ∧ when ¬ At (c, a) : In (c, p))
Unload (c: cargo, p: plane, a: airport)
PRECOND: In (c, p) ∧ At (p, a)
EFFECT: At (c, a) ∧ when At (c, a): ¬ In (c, p))
Fly (p: plane, from: airport, to: airport)
PRECOND: At (p, from) ∧ (from 6= to)
EFFECT: ¬ At (p, from) ∧ when ¬ At (p, from): At (p, to))
Initial State:
Init (At (C1, MAD) ∧ At (C2, BER) ∧ At (P1, MAD) ∧ At (P2, BER)
∧ (C1:Cargo) ∧ (C2:Cargo) ∧ (P1:Plane) ∧ (P2:Plane) ∧ (BER:Airport) ∧
(MAD:Airport) ∧ (MAD 6= BER))
5
EXAMPLES WITH ADL AND STRIPS
17
Goal State:
Goal: (∃x,y At (C1, x) ∧ At (C2, y) ∧ x=BER ∧ y=MAD)
First Action: Load (C1, P1, MAD) Load cargo C1 into plane P1 at airport
MAD
• Action (Load (C1, P1, MAD),
• PRECOND: At (C1, MAD) ∧ At (P1, MAD)
• EFFECT: ¬ At (C1, MAD) ∧ In (C1, P1))
• Next state: S1 (¬ At (C1, MAD) ∧ In (C1, P1) ∧ At (C2, BER) ∧ At
(P1, MAD) ∧ At (P2, BER) ∧ (C1:Cargo) ∧ (C2:Cargo) ∧ (P1:Plane) ∧
(P2:Plane) ∧ (BER:Airport) ∧ (MAD:Airport) ∧ (MAD 6= BER))
Second Action: Fly (P1,MAD, BER) Plane P1 flies from airport MAD to
airport BER
• Action (Fly (P1, MAD, BER),
• PRECOND: At (P1, MAD) ∧ (MAD 6= BER)
• EFFECT: ¬ At (P1, MAD) ∧ At (P1, BER))
• Next state: S2 (¬ At (P1, MAD) ∧ At (P1, BER) ∧ ¬At (C1, MAD) ∧
In (C1, P1) ∧ At (C2, BER) ∧ At (P2, BER) ∧ (C1:Cargo) ∧ (C2:Cargo)
∧ (P1:Plane) ∧ (P2:Plane) ∧ (BER:Airport) ∧ (MAD:Airport) ∧ (MAD
6= BER))
Third Action: Load (C2, P2, BER) Load cargo C2 into plane P2 at airport
BER
• Action (Load (C2, P2, BER),
• PRECOND: At (C2, BER) ∧ At (P2, BER)
• EFFECT: ¬ At (C2, BER) ∧ In (C2, P2))
• Next state: S3 (¬ At (C2, BER) ∧ In (C2, P2) ∧ ¬ At (P1, MAD) ∧
At (P1, BER) ∧ ¬ At (C1, MAD) ∧ In (C1, P1) ∧ At (P2, BER) ∧
(C1:Cargo) ∧ (C2:Cargo) ∧ (P1:Plane) ∧ (P2:Plane) ∧ (BER:Airport) ∧
(MAD:Airport) ∧ (MAD 6= BER))
Fourth Action: Fly (P2,BER,MAD) Plane P2 flies from airport BER to airport MAD
• Action (Fly (P2, BER, MAD),
• PRECOND: At (P2, BER) ∧ (MAD 6= BER)
• EFFECT: ¬ At (P2, BER) ∧ At(P2, MAD))
5
EXAMPLES WITH ADL AND STRIPS
18
• Next state: S4 (¬ At (P2, BER) ∧ At(P2, MAD) ∧ ¬ At (C2, BER)
∧ In (C2, P2) ∧ ¬At (P1, MAD) ∧ At (P1, BER) ∧ ¬ At (C1, MAD)
∧ In (C1, P1) ∧ (C1:Cargo) ∧ (C2:Cargo) ∧ (P1:Plane) ∧ (P2:Plane) ∧
(BER:Airport) ∧ (MAD:Airport) ∧ (MAD 6= BER))
Fifth Action: Unload (C1, P1, BER) Unload cargo C1 from plane P1 at
airport BER
• Action (Unload (C1, P1, BER),
• PRECOND: In (C1, P1) ∧ At (P1, BER)
• EFFECT: At (C1, BER) ∧ ¬In (C1, P1))
• Next state: S5 (At (C1, BER) ∧ ¬ In (C1, P1) ∧ ¬At (P2, BER) ∧ At(P2,
MAD) ∧ ¬ At (C2, BER) ∧ In (C2, P2) ∧ ¬ At (P1, MAD) ∧ At (P1,
BER) ∧ ¬ At (C1, MAD) ∧ (C1:Cargo) ∧ (C2:Cargo) ∧ (P1:Plane) ∧
(P2:Plane) ∧ (BER:Airport) ∧ (MAD:Airport) ∧ (MAD 6= BER))
Sixth Action: Unload (C2, P2, MAD) Unload cargo C2 from plane P2 at
airport MAD
• Action (Unload (C2, P2, MAD),
• PRECOND: In (C2, P2) ∧ At (P2, MAD)
• EFFECT: At (C2, MAD) ∧ ¬ In (C2, P2))
• Next state: S6 (At (C2, MAD) ∧ ¬ In (C2, P2) ∧ At (C1, BER) ∧ ¬ In
(C1, P1) ∧ ¬ At (P2, BER) ∧ At(P2, MAD) ∧ ¬ At (C2, BER) ∧ ¬ At (P1,
MAD) ∧ At (P1, BER) ∧ ¬ At (C1, MAD) ∧ (C1:Cargo) ∧ (C2:Cargo)
∧ (P1:Plane) ∧ (P2:Plane) ∧ (BER:Airport) ∧ (MAD:Airport) ∧ (MAD
6= BER))
Goal: (∃x,y At (C1, x) ∧ At (C2, y) ∧ x=BER ∧ y=MAD) A state s satisfies
a goal g if s contains all the atoms in g (and possibly others) → S6 satisfies Goal
In definitive, ADL allows to express more concrete facts that are not possible
with STRIPS. Besides the example from the section 4.1, here are some other
expressions not possible in STRIPS but in ADL:
• Parent(God,Jesus) ∨ Parent(Maria,Jesus). This sentences says that either
God or Maria is a parent of Jesus, without specifying which one is.
• ∃x Cousin(Maria,x) ∧ Male(x). Maria has at least one cousin, but we do
not specify who.
• ∀x Friend(Jesus, x) ⊃ ∃y Child(x,y). All the friends of Jesus have children.
5
EXAMPLES WITH ADL AND STRIPS
5.3
19
How is planning done
We have previously spoke about planning and search strategies. In this section
we will analyze how the planning is done in STRIPS and ADL.
There are two types of planning search that can be applied: forward and backward search.
The forward (or progression search) starts in the initial state and uses the problem’s action to search forward for the goal state. It select actions whose preconditions match with the current state description (before-action state) through
unification. It apply actions to the current world state and Generate possible
follow-states (after-action states) according to the add and delete lists of the
action description. It is repeated for every generated new world state, and only
stops when a state is generated which includes the goal formula.
The backward (or regression search) starts at the goal state and uses the inverse
of the action to search backward for the initial state. This type of search checks
for unsatisfied (pre)conditions of the goal description. When one is identified,
it is selected and the actions which have those conditions as effects are applied.
Afterwards, it proceeds in the same way backwards, trying to fulfill preconditions of each new action by recursively choosing actions which achieve those
preconditions. It only stops when the precondition is part of the initital state,
and thus a sequence of actions is found leading from the initial state to the goal
state.
The means-ends analysis is the planning used in the GPS strategy, mentioned
in the chapter 2.4. It reduce the difference between the start state and the goal
state. The action-operators are chosen based on which generate literals of the
goal-state description. Recursively they generate an action sequence by trying
to fulfill preconditions of chosen actions, until they are finally grounded in the
start-state (what means, they match with literals of the start-state).
The Figure 5 shows how it works the backwards and the forward search.
5
EXAMPLES WITH ADL AND STRIPS
20
Figure 5: Forward and Backward search
STRIPS and ADL uses the following algorithm to perform the planning search:
Given a goal stack:
1. Consider the top goal
2. Find a sequence of actions satisfying the goal from the current state and
apply them.
3. The next goal is considered from the new state.
4. Termination: stack empty
5. Check goals again.
We will use the problem of the robot and the box to explain the inner working
of STRIPS [40]. There are three different rooms R1, R2 and R3. R1 is next to
R2, and R2 is next to R3. The door D1 connects R1 and R2, and the door D2
connects R2 and R3. The robot is in R1, and the box in R2. The goal is to have
the robot at R1 at the box at R1. We can apply the operators GOTHRU(the
robots goes from one room to another) and PUSHTHRU (the robots pushes the
box from one room to another). Formally, this is represented as:
GOTHRU (d, r1, r2).
PRECOND: INROOM (robot, r1) ∧ CONNECTS(d,r1,r2)
DELETE LIST: INROOM (robot, $)
ADD LIST: INROOM (robot, r2)
PUSHTHRU (b, d, r1, r2).
PRECOND: INROOM (b, r1) ∧ INROOM (robot, r1) ∧ CONNECTS(d,r1,r2)
DELETE LIST: INROOM (robot, $), INROOM (b, $)
5
EXAMPLES WITH ADL AND STRIPS
21
ADD LIST: INROOM (robot, r2), INROOM (b, r2)
Goal:.
G0: (∃x[BOX(x) ∧ INROOM (x, r1)] |
Initial Model:.
M0: INROOM(robot, r1)
CONNECTS(d1,r1,r2)
CONNECTS(d2,r2,r3)
BOX(BOX1)
INROOM(BOX1,r2)
...
∀x ∀y ∀z CONNECTS(x,y,z) ⇒ CONNECTS(x,y,z)
This initial model, M0, consists of a set of wffs. The planner attempts to prove
the conjunctive goal, G0 (having a box and the robot in Room R1). The first
conjunct is false in the initial model. Therefore, the planner tries to search for
an operator with an expression in the Add List which can make the first of the
conjunctions true.
The operator PUSHTHRU has INROOM(b,r2) in its Add List and when BOX 1
is substituted for b and Room R1 for r1 then the first conjunct is satisfied. Now
we have to determine whether this operator can be applied to the current model,
M0. In order to determine this, an attempt is made to prove the Precondition
wff against M0. This attempt fails and the Precondition wff for this operator
becomes a new subproblem. This new subproblem, G1:
G1: INROOM(BOX, r1) ∧ INROOM (robot, r1)] ∧ CONNECTS(d,r1,r2)
We also have another goal, G2, the instantiated precondition obtained from
GOTHRU:
G2: INROOM (robot, r1)] ∧ CONNECTS(d,r1,r2)
It can be proved true in M0. Consequently, this operator can be applied. The
Delete and Add Lists for GOTHRU are used to create the model that results
from the application. This is the new model M1:
Model M1:.
M1: INROOM(robot, r2)
CONNECTS(d1,r1,r2)
CONNECTS(d2,r2,r3)
BOX(BOX1)
INROOM(BOX1,r2)
...
∀x ∀y ∀z CONNECTS(x,y,z) ⇒ CONNECTS(x,y,z)
G1 is now at the top of the goal stack and an attempt is made to prove this
wff against M1 and this proof succeeds. Consequently PUSHTHRU is applied
resulting in model, M2:
6
PRACTICAL APPLICATIONS OF STRIPS AND ADL
22
Model M2:.
M2: INROOM(robot, r1)
CONNECTS(d1,r1,r2)
CONNECTS(d2,r2,r3)
BOX(BOX1)
INROOM(BOX1,r1)
...
∀x ∀y ∀z CONNECTS(x,y,z) ⇒ CONNECTS(x,y,z)
G0 is now at the top of the stack and it is provable against M2. Consequently,
the problem is solved and the plan in this instantiated and completely order set
of actions shown as follows:
GOTHRU(d1,r1,r2), PUSHTHRU(BOX1,d1,r2,r1).
6
Practical applications of STRIPS and ADL
STRIPS and ADL are actually used for automated planning applications.This
comprises intelligent agents, autonomous robots and unmanned vehicles. The
Hubble Space Telescope uses a short-term system called SPSS and a long-term
planning system called Spike . The Hubble Telescope has been proven to be
one of the most successful telescopes ever built, and the fact that it is carried
in the space makes from the automated planning systems one of the keys for its
success [13].
It has as well well-known applications for spacecraft control and operations.
Interval Logic Corporation, a company bought later on by PRI Automation ,
used Spike scheduling techniques to semiconductor manufacturing.
Typically, ADL and STRIPS can be used to model certain games based on a
tree search. By using it we can analyze the adversarial game in order to try to
determine who can win the game and what moves the player should do in order
to win. Game tree based search is one of the oldest topics in AI. The original
idea was developed by Shannon in 1950 [14] and independently by Turing in
1951, in the context of the game of chess. Their ideas still form the basis for
the techniques used today. It has been used in even more complex games, such
F.E.A.R. [31]. The algorithms used in games, however, have mostly to see with
refined variants of a relatively primitive search in game trees. Unlike board
games such players show in card games such as Bridge only partial information
about the game. This leads to a considerable increase of combinatorial diversity
and brings game-tree search phrases into trouble
Instead of maintaining a list of facts about the known world, F.E.A.R. expresses
it as a fixed vector of variables, which at the compilation time are well known.
This increases efficiency at the cost of flexibility, as Jeff Orkin pointed out.
Parts of STRIPS (the planner) are almost a perfect match for many aspects of
game logic, especially for software engineering purposes. Such a design helps
with modularity of the code. However, as specified in this paper, a full STRIPS
solution is not ideal for games. Few games require the complexity of the theorem prover, and games that are complex enough will suffer from performance
7
CONCLUSIONS
23
issues. NPC behaviors can certainly benefit from the additional automation and
modularity brought by a planner. Some games may not see an obvious increase
in intelligence by using this solution, but the AI will be more robust because of
it (compared to more procedural approaches like scripts).
Konstantina Garou and Alexander Koller report in [16] a system which is able
to generate instructions which deliberately guide the hearer to a location that
is convenient for the generation of simple referring expressions. They presented
the development to the Challenge on Generating Instructions in Virtual Environments, GIVE , nding that it performs well even under the constraints of real
time generation.
In definitive, any activity or context susceptible to be planned can be solved
using automated planning. More examples are airport traffic control [24]
7
7.1
Conclusions
Summary
STRIPS operator language contributes with its solution to the frame problem.
The solution employed in the STRIPS language is to represent the effects of
actions as transformations on sets of formulas and afterwards to provide a simple
means of specifying such transformations in terms of differences between sets.
As the transformations are completely defined by set differences, there is no
need to specify the elements of the sets that are in common [23].
ADL issues an important question in the representation of knowledge and automated planning, which is to find the equilibrium of the expressivity of logic
formalism against the cost of reasoning with the same formalism. The expressive
power of ADL approaches that of the situation calculus, yet its computational
costs compare favorably to those of the STRIPS language. In particular, when
the initial state of a planning situation is known, the initial state can be explicitly represented and we can use query techniques developed for relational
database systems in order to perform reasoning tasks. This increases computational costs; however, the increase is inevitable. [27, 28].
Another of the features of ADL is that it carries a solution to the frame problem:
that is the model-theoretic counterpart to the solution used in the STRIPS operator language: the transformations that take place when an action is performed
are represented as set differences, as with the STRIPS operators. Therefore, we
only need to describe that changes that occur when an action is performed, and
not what remains unaltered. Unlike STRIPS operators, ADL schemas define
transformations based on the model-theoretic structures that underlie the semantics of first-order logic, while STRIPS operators define transformations on
formulas. ADL thus has a true model-theoretic semantics. Moreover, the transformations in ADL can be functions of the situations in which the actions are
performed, allowing actions with context-dependent effects to be represented.
Such actions cannot be represented using STRIPS operators.
7
CONCLUSIONS
7.2
24
Future Work
There is more effort needed to develop automated planning under the point of
view of the engineering. One necessity is to put more effort to integrate various approaches, specially the integration of planning and scheduling and the
integration of planning and acting. The integrations effort should also be extensible under the perspective of the levels of knowledge perspective and domain
modeling, and should involve consistent integration of several problem solving
techniques [15].
Standardization in the field of the languages for automated planning is still
a pending issue. PDDL (”Planning Domain Definition Language”) [17] is a
recent development to standardize planning domain and problem description
languages. It was developed mainly to make the 1998/2000 International Planning Competitions possible. PDDL contains the ADL and STRIPS language,
among another. However, most planners do not fully support PDDL, but a restricted subset: in fact, the majority supports only the STRIPS subset. There
have been further extensions of PDDL, such as PPDDL 1.0 [18] (to add support for probabilistic effects) or PPDL 2.1 [19] (to express temporal planning
domains).
Concerning the languages their selves, they can be further developed to allow
more advance features. Richard E. Fikes, Nils J. Nilsson [8] mentioned that one
possible step is the one concerning the synthesis of more complex procedures
rather than just simple sequence of linear operators. Specifically, procedures
involving iterations, recursion and conditional branching. There are some research concerning the problem of automatic program synthesis [20,21, 22] that
could be eventually
ADL has already three extensions (A, B, C) solving the limitations initially
faced, but there is some work to do on it. The Stolen Car example [25] is too
deep to be represented here, but is an example on how ADL cannot be used
for representing ”causal anomalies or ”miracles [26]. The proposed approach to
solve it in is to view them as evidence of unknown events that occur concurrently
with the given actions and contribute to the properties of the new situation
REFERENCES
8
25
Bibliography
References
[1] Heron of Alexandria. Pneumatica and Automatica
[2] Fowler, Charles B. (October 1967), ”The Museum of Music: A History of Mechanical Instruments”, Music Educators Journal 54 (2): 4549,
doi:10.2307/3391092
[3] Ghallab, Malik; Nau, Dana S.; Traverso, Paolo (2004), Automated Planning: Theory and Practice, Morgan Kaufmann, ISBN 1-55860-856-7
[4] STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving. R. E. Fikes, N.J. Nilsson.
[5] Green, C. Application of theorem proving to problem solving. Proc. Int’l.
Joint Conf. Artificial Intelligence, Washington, D.C. (May 1969)
[6] Pednault. Formulating multi-agent dynamic-world problems in the classical planning framework. In Michael Georgeff and Amy Lansky, editors,
Reasoning about actions and plans pages 47-82. Morgan Kaufmann, San
Mateo, CA, 1987.
[7] Action Languages. Michael Gelfond and Vladimir Lifschitz.
[8] Richard E. Fikes, Nils J. Nilsson. STRIPS, a New Approach to the Application of Theorem Proving to Problem Solving. Stanford Research Institute,
Menlo Park, California
[9] Ernst, G. and Newell, A. GPS: A Case Study in Generality and Problem
Solving. ACM. Monograph Series. Academic Press, New York, New York,
1969.
[10] Knoll, B., Kisyski, J., Carenini, G., Conati, C., Mackworth, A., Poole,
D. 2008. AIspace: Interactive Tools for Learning Artificial Intelligence. In
Proceedings of the AAAI 2008 AI Education Workshop.
[11] Pearl. J,Heuristics: Intelligent search strategies for computer problem solving. Addison-Wesley Publishing Co., Inc., Reading, MA 01867.2008
[12] Russell, J., Norvig, P.: Artificial Intelligence: A Modern Approach. Prentice Hall, ISBN -10: 0-13-04259-7
[13] Spitzer, Lyman S.. ”History of the Space Telescope”. Quarterly Journal of
the Royal Astronomical Society 20: 2936. 1979
[14] Claude E. Shannon. Programming a computer for playing chess. Philosophical Magazine (seventh series), XLI(314):256-275, March 1950. First
presented at the National Institute of Radio Engineers Convention, March
9, 1949, New York.
[15] Malik Ghallab,Dana S. Nau,Paolo Traverso. Automated planning: theory
and practice. ISBN-10: 1558608567. Pag. 540
REFERENCES
26
[16] Konstantina Garou and Alexander Koller. Automated planning for situated
natural language generation
[17] Drew Mcdermott, Malik Ghallab, Adele Howe, Craig Knoblock, Ashwin
Ram, Manuela Veloso, Daniel Weld, David Wilkins. The Planning Domain
Definition Language (1998)
[18] H.L.S. Younes, M.L. Littman, PPDDL1.0: An extension to PDDL for expressing planning domains with probabilistic effects, Tech. Rep. CMU-CS04-167, Carnegie Mellon University, October 2004
[19] M Fox, D Long. PDDL2. 1: An extension to PDDL for expressing temporal planning domains. Journal of Artificial Intelligence Research, 2003 aaai.org
[20] Green, C. Application of theorem proving to problem solving. Proc. Int’l.
Joint Conf.Artificial Intelligence, Washington, D.C. (May 1969).
[21] Waldinger, R. and Lee, R. PROW: A step toward automatic program writing. Proc.lnt’l. Conf. Artificial Intelligence, Washington, D.C. (May 1969).
[22] Manna, Z. and Waldinger, R. Towards automatic program synthes,IS.
Comm. ACM.14, No. 3 (March 1971).
[23] Edwing P.D. Pednault. ADL and the State-Transition Model of Action
[24] Sebastian Trg, Jrg Hoffmann and Bernhard Nebel. Applying Automatic
Planning Systems to Airport Ground-Traffic Control A Feasibility Study.
KI 2004: Advances in Artificial Intelligence
[25] M Gelfond, V Lifschitz. Representing action and change by logic programs.
The Journal of Logic Programming, 1993 Elsevier
[26] Vladimir Lifschitz and Arkady Rabinov. Miracles in formal theories of actions. Artificial Intelligence, 626(3):89-116. 1986
[27] H. J. Levesque and R. J. Brachman. A fundamental tradeoff in knowledge
representation and reasoning. In Readings in Knowledge Representation,
H. J. Levesque and R. J. Brachman, eds, pp. 42-70. Morgan Kaufmann,
San Mateo, CA, 1985.
[28] H. J. Levesque. Making believers out of computers. Artificial Intelligence,
30, 81-108, 1986
[29] Edwin P.D. Pednault. ADL. Exploring the Middle Ground Between
STRIPS and the Situation Calculus. In Proceedings of KR-89, 324-332.
[30] Jorge A. Baier. Effective Search Techniques for Non-Classical Planning via
Reformulation. PhD. Thesis, University of Toronto, 2003.
[31] http://aigamedev.com/open/reviews/fear-ai/. F.E.A.R. review. Last time
visited: 12 August 2010.
[32] Gazen, B. C. and Knoblock, C. A. Combining the Expressivity of UCPOP
with the Efficiency of Graphplan. In ECP97, pp. 221233. Toulouse, France.
1997
REFERENCES
27
[33] Nebel, B. On the Compilability and Expressive Power of Propositional
Planning Formalisms. Journal of Artificial Intelligence Research, 12,
271315. 2000
[34] McCarthy, J. and Hayes, P.J. Some Philosophical Problems from the Standpoint of Artificial Intelligence, in Machine Intelligence 4, ed. D.Michie and
B.Meltzer, Edinburgh University Press, pp. 463502. 1969
[35] E. Sandewall. An approach to the Frame Problem and its Implementation,
Machine Intelligence, 7:195204. 1972
[36] F. C. Langbein. Notes from the lecture Artificial Intelligence lectures,
Knowledge and Reasoning. Chapter 6: Planning. School of Computer Science, Cardiff University.
[37] E. P. D. Pednault. Formulating multiagent, dynamic-world problems in
the classical planning framework. In Reasoning about Actions and Plans:
Proceedings of the 1986 Workshop, M. P. Georgeff and A. L. Lansky, eds,
pp. 47-82. Morgan Kaufmann, San Mateo, CA, 1987. Reprinted in Readings
in Planning, J. Allen, J. Hendler, and A. Tale, eds, pp. 675-710. Morgan
Kaufmann, San Mateo, CA, 1990.
[38] K. Erol, D.S. Nau and V.S. Subrahmanian. Complexity, decidability and
undecidability results for domain-independent planning. Technical report,
Dept. of Computer Science, Univ. of Maryland, College Park, Maryland,
1991.
[39] T. Bylander. The Computational Complexity of Propositional STRIPS
Planning. Division of Mathematics, Computer Science and Statistics. University of Texas, San Antonio.
[40] Richard E. Fikes, Peter E. Hart, and Nils J. Nilsson, Learning and Executing Generalized Robot Plans. Artificial Intelligence, 3 (1972) 251-288.