Final Version
Final Version
Final Version
net/publication/321632092
CITATIONS READS
24 1,765
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Damien Pellier on 08 December 2017.
Pddl4j (Planning Domain Description Library for Java) is an open source toolkit for Java
cross-platform developers meant (1) to provide state-of-the-art planners based on the Pddl
language, and (2) to facilitate research works on new planners. In this article, we present
an overview of the Automated Planning concepts and languages. We present some planning
systems and their most significant applications. Then, we detail the Pddl4j toolkit with an
emphasis on the available informative structures, heuristics and search algorithms.
Introduction
Pddl4j (Planning Domain Description Library for Java1 ) is an open source toolkit for
Java cross-platform developers meant (1) to provide state-of-the-art planning tools based
on the Pddl language, and (2) to facilitate research works on new planners. Pddl4j
has been successfully used in several domains, e.g., automatic web services composition
(Bevilacqua, Furno, Scotto di Carlo, & Zimeo, 2011), verification of business processes
(Salnitri, Paja, & Giorgini, 2015), game (Cheng, Knoll, Luttenberger, & Buckl, 2011)
and robotics (Zaman, Steinbauer, Maurer, Lepej, & Uran, 2013).
The Pddl language was originally developed by Malik Ghallab and the 1998 Inter-
national Planning Competition (Ipc) committee (Ghallab et al., 1998). It was inspired
by the need to encourage the empirical comparison between planning systems and the
diffusion of benchmarks within the planning community. Consequently, Pddl has im-
proved planning system evaluation and led to important advances in performances and
expressivity.
Since these pioneering works, Pddl has become a de facto standard language for the
description of planning domains for Ipc (its growing collection of domains is generally
adopted as standard benchmarks) and for the applications embedding planners. The
emergence of Pddl as a standard language has had a significant impact on the entire
Artificial Intelligence field. It has facilitated the dissemination of planning techniques in
different research and application fields where modelling and solving decision problems
are challenging issues.
This paper is organized as follows: in Section 1, we present some of the most repre-
sentative fields of application for planners. Section 2 describes how to get started with
the Pddl4j toolkit. Section 3.1 introduces the background concepts of the automated
∗ Corresponding author. Email: damien.pellier@imag.fr
1 http://pddl4j.imag.fr
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
1.1.1. Robotics
Automated planning systems have come a long way in robotics since the Shakey robot
and the Strips planner (Fikes & Nilsson, 1971). Robotics is one of the most appealing
application areas for automated planning, and, for several years, the PlanRob workshop
at Icaps (International Conference on Automated Planning and Scheduling) has be-
come an important forum specifically dedicated to the challenges related to planning
for autonomous robots. Among the challenges is the integration of planners in robot
architectures, which is difficult and has been intensively investigated. Indeed, planning
is an open loop activity that produces plans based on action models, the current state
of the world and the targeted goal. On the other hand, executing actions is a closed
loop activity that perceives the current state of the world, events modifying this state
and feedbacks from the performed actions. Thus, planning in robotics needs an inte-
grated approach to handle time, concurrency, synchronizations, deadlines and resources
(Di Rocco, Pecora, & Saffiotti, 2013). For instance, Fape (Dvor̆ák, Bit-Monnot, Ingrand,
& Ghallab, 2014) (Flexible Acting and Planning Environment) is a system integrating
a planning language with expressive timeline representation, the planning process inter-
acting with a dispatching mechanism that synchronizes observed time points of action
effects and events with planned time. Another important issue is combining tasks and
motion planning. In robot architectures, generally a ”discrete” symbolic module reasons
about causal and/or temporal relationships between actions, while ”continuous” geomet-
ric/kinematic reasoning is entirely delegated to a specific module. For instance, picking
up an object may require removing many others that obstruct this object. Identifying the
exact obstructions requires geometric reasoning with results that are difficult to represent
efficiently at the level of a symbolic planner. Different propositions based on new rep-
resentation techniques have been made to synchronize continuous and discrete planning
levels (Lagriffoul, 2014; Srivastava, Riano, Russell, & Abbeel, 2013; Garrett, Lozano-
Pérez, & Kaelbling, n.d.; Ferrer-Mestres, Francès, & Geffner, 2015; Fernandez-Gonzalez,
Karpas, & Williams, 2015). It is also possible to couple a symbolic planner with an on-
tology in order to reason about the action possibilities that are available to the planner
as the set of known objects is updated (Cashmore et al., 2015). Furthermore, robots have
2
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
to interact with persons in an appropriate way and to act socially. Hatp (Lallement, de
Silva, & Alami, n.d.) is a planning framework that extends the planning representation
by making Human-Robot interactions ”first class” entities in the language. ”Social rules”
can be defined specifying which behaviours are acceptable. Hatp interleaves symbolic
planning with geometric reasoning to validate the human/robot interactions.
3
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
not need to manually specify which actions are associated with which goals, which actions
can transition to which other actions, or which goals can transition to other goals. The
benefits of planning are numerous. Decoupling goals and actions allow different types of
characters to satisfy goals in different ways. The second benefit of the planning approach
is facilitating layering of behaviors and the incremental design of new characters from
existing ones by adding/removing actions and goals (for instance, adding the ”cover”
goal, which makes a character who is not currently under cover get to cover etc.) Finally,
an important benefit of a planning system is the capacity to dynamically solve problems:
characters can re-plan, chznge their decisions etc. Characters are sensitive to the changes
induced by the player in their environment: if the goal of a character is to open a door
and this door is locked, then the character activates a new goal – enforce room access,
and generates a new plan to satisfy its goal – kick in the door or get in through the win-
dow etc. Automated planning is used as an abstraction layer for model design. It allows
non-technical developers to program AI systems, to design ”interactive narratives” such
as in AI based virtual agent games, intelligent tutoring systems, embodied conversational
agents, etc. (Fernández, Adarve, Pérez, Rybarczyk, & Borrajo, 2006; Thomas & Young,
2006).
Getting started with Pddl4j is simple. The command lines above (see Listing 1) show
how to proceed.
1 $ git init
2 $ g i t c l o n e h t t p s : / / g i t h u b . com/ p e l l i e r d / p d d l 4 j . g i t
3 $ cd p d d l 4 j
4 $ . / gradlew clean build
5 $ . / gradlew javadoc
6 $ . / g r a d l e w run −PArgs=−o ,<DOMAIN FILE PATH>,−f ,<PROBLEM FILE PATH>
Listing 1 Pddl4j Installation, Compilation and Test
The GIT version control system allows to easily install Pddl4j (line 1 and 2). Pddl4j
comes with all the configuration files for the Gradle build automation system (line
4 and 5): these command lines build Pddl4j on the host platform, and generate the
documentation. Pddl files are available in /pddl directory to test HSP (Heuristic Seach
Planner), our default planner (line 6). The plans generated by Pddl4j are compliant
with Pddl3.1 and can be validated with Val, a plan validator (Howey, Long, & Fox,
2004).
4
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Listing 2 shows how to directly run the HSP planner with the Java Virtual Machine.
Note that the build generates a jar file in /build/libs.
1 $ j a v a −j a v a a g e n t : b u i l d / l i b s / p d d l 4 j −VERSION . j a r −s e r v e r −Xms2048m −Xmx2048m f r . uga
. p d d l 4 j . p l a n n e r s . hsp . HSP −o <DOMAIN FILE PATH> −f <PROBLEM FILE PATH>
Listing 2 Java Run Command
First, we get the path of the domain and the path of the problem from the command
line (lines 4 and 5). Then a planning problem ”factory” is created (line 8). The factory’s
parser (line 11) takes both paths as input. Then, the planning problem is encoded by
the factory (line 18). The method ”isSovable()” (line 19) does a time-polynomial test
asserting whether a solution is possible after the encoding step. Then, a planner ”object”
is created (line 26). In our case, we create an instance of the simple planner HSP (see
Section 5.6 for more details about the planners available in Pddl4j). Then, a heuristic
for the search is chosen (line 27). In our example, the Fast Forward heuristic is chosen
(see section 5.5 for more details about the heuristics available in Pddl4j). Finally, a
solution, namely a ”plan” in Automated Planning terminology, is searched (line 30) in
exponential time (Automated Planning is NP-hard) and the solution plan is displayed.
5
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
3. PDDL4J Background
6
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
• c : A → R+ is a cost function,
• γ : S × A → S is a state transition function.
A State Transition System can be represented as a directed graph whose nodes are
states of S, and vertices are actions of A. Given an action a and a state s, if γ(s, a)
is defined, then action a is applicable in the state s. Applying a to s produces a new
state s0 = γ(s, a) with a cost c(a). Σ is deterministic if for all states s and actions a, the
transition function γ(a, s) produces a unique state s0 . Σ has a unit cost if, for all a ∈ A,
c(a) = 1. A plan is any sequence of actions π = [a1 , · · · , ak ] (the size of π is k). The
state produced by applying π to a state s is the state obtained by applying each action
of π sequentially. We denote this by extending the state transition function to plans as
follows:
s, if k = 0
γ(s, π) = γ(γ(s, a1 ), [a2 , · · · , ak ]), if k > 0 and a1 is applicable to s
undefined, otherwise
A state s0 is reachable from a state s, if there exists a plan π such that s0 = γ(s, π).
7
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
To transform the operators of the Pddl language (in the domain file) into the actions
used by the planning algorithm, an instantiation process is triggered. This process is time
consuming, and several speed-ups have been proposed in the literature. The instantiation
process of Pddl4j is described in Section 5.2.
Pddl (problem and domain) files do not provide a procedure on how to solve a plan-
ning problem as in an imperative language (the ”procedural” approach). They express
a theory of action and its underpinning grammar of decisions asserting what satisfying
combinations of actions can be tried to fulfill the targeted goal. This is a ”declarative”
approach on which the planners are based.
Once this specification is provided to the planner, the planning process uses a mean-
ends reasoning to decide how to achieve goals given the available actions (see section 5.6
for planning algorithms). The computational hardness of the mean-ends planning process
is high (NP-hard) because it entails non-deterministic decisions selecting objects, acting
on objects, sorting out actions, as well as the backtracting from dead end decisions in
combinatorial search spaces. For instance, in the graph coloring problem (see Section
3.1), the search space is the set of all the valid combinations of coloring actions: the
bigger the graph, the higher the number of coloring actions, and the search space size is
exponential in the number of actions. The logistics problem (see Section 3.1) empha-
sizes another determinant feature of planning problems: precedence constraints. Actions
are not necessarily reversible and have to be performed in an appropriate sequence in
order to achieve the planning goal: for example, packets have to be loaded before un-
loading etc. Furthermore, actions can have negative effects and the progression towards
8
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
the goal is not monotone. For instance, suppose that in a logistics problem, the goal is
to have the truck x0 at place f1 and parcel p0 at place t1 . If in the initial state, the truck
x0 is at place f1 and p0 is loaded in x0 , driving that truck x0 from f1 to t1 to deliver
p0 will delete the fact ”truck x0 is at place f1 ”. This has to be added again (by driving
back the truck x0 from t1 to f1 ) to fulfill the goal.
The consequence of the planning computational complexity is that planners do not
rely on brute-force search. They use informed search algorithms and extract heuristic
information from planning problem representations (see Section 5.5).
Definition 3.5: Let V be a finite set of variables, where each variable v has an associated
finite domain Dom(v) that contains the default value nil. An operator in the Fdr is a
triple o = (name(o), precond(o), effect(o)), where name(o), precond(o) and effect(o) are
respectively the name, the preconditions and the effects of the operator o. precond(o)
and effects(o) are subsets of V . The parameters of the operator o are the variables of V .
Definition 3.8: Let (V, A, c, I, G) be a Fdr planning problem. The state space of
(V, A, c, I, G) is the state transition system (S, A, c, γ) where:
• states S are complete variable assignments,
• actions A and the cost function c are those of the planning problem,
• the transition function γ(s, a), when a is applicable to s, is:
9
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Proposed for the first time in 1998 (Ghallab et al., 1998), Pddl is mainly inspired by
Strips (Fikes & Nilsson, 1971) (STanford Research Institute Problem Solver) and Adl
(Pednault, 1994) (Action Description Language). It expresses planning problems in two
files: (1) the domain file describing the operators, and (2) the problem file describing the
initial state and the goal.
2 http://icaps-conference.org/index.php/Main/Competitions/
10
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
if the domain uses typing as a requirement). The symbol terms are alphanumeric char-
acters, hyphens ”-” and underscores ” ”. Any argument term starts with a question
mark ”?”. For instance, (at ?x - physobj ?l - location) expresses that an object
?x whose type is physobj is located at location ?l.
In a domain description, operators, i.e. first order actions (see Section 3.1), specify
the different ways to perform changes of the world state. Consider this simple operator
description:
(:action load
:parameters (?o - object ?v - vehicle ?l - location)
:precondition (and (at ?o ?l) (at ?v ?l))
:effect (and (in ?o ?v) (not (at ?o ?l))))
This action means that an object ?o can be loaded in a vehicle ?v at a location ?l.
The preconditions require that the object ?o and the vehicle ?v are at the same location
?l. After the load action is executed, load effects express that object ?o will be in the
vehicle ?v.
Likewise, unload can be specified as follows:
(:action unload
:parameters (?o - object ?v - vehicle ?l - location)
:precondition (and (in ?o ?v) (at ?v ?l))
:effect (and (not (in ?o ?v))))
In this action, object ?o can be unloaded from a vehicle ?v at a location ?l. The
preconditions assert that object ?o has to be in the vehicle ?v, and that the vehicle ?v
is at the location ?l. After the unload is executed, the fact (in ?o ?v) will be false.
Now, consider a more complicated action description with conditional effects and a
universal quantifier:
(:action fly-airplane
:parameters (?o - object ?p - airplane ?from ?to - airport)
:precondition (and (at ?p ?from) )
:effect (and (at ?p ?to) (not (at ?p ?from))
(forall (?o - object) (when (and (in ?o ?p))
(and (not (at ?o ?from)) (at ?p ?to)))))))
This specifies that an airplane ?p can fly from a departure airport ?from to an arrival
airport ?to if the airplane is initially at the departure airport ?from. The effect of
fly-airplane is to move the airplane and all its objects to the airplane destination.
The predicates (at ?p ?from) and (not (at ?p ?from)) in the effect description are
called the unconditional effects. Conversely, the predicates in a when-expression are called
conditional effects. The term (and (in ?o ?p)) is the antecedent of the conditional
effects, and (and (not (at ?o ?from)) (at ?p ?to)) is its consequence.
Finally, the drive-truck action allows moving an object by truck:
(:action drive-truck
:parameters (?o - object ?t - truck ?from ?to - location ?c - city)
:precondition (and (at ?t ?from)
(in-city ?from ?c)
(in-city ?t ?c))
:effect (and (at ?t ?to) (not (at ?t ?from))
(forall (?o - object) (when (and (in ?o ?t))
11
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
12
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
IPC 2
(2000)
PDDL + NDDL
(2002) (2002)
MAPL
(2003)
PPDL
(2004)
OPT
(2005)
IPC 7
(2011)
MA-PDDL RDDL
(2011)
(2012)
IPC 8
(2014)
we present in Section 5.3 the algorithm used in Pddl4j to translate a Pddl planning
problem into a Fdr.
13
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
PDDL4J API
Planners
State Plan Planning
SAT CSP ...
Space Space Graph
Heuristics
Critical Path Delete Relaxation Abstraction Landmarks
Probabilistic Track of the 4th and 5th Ipc in 2004 and 2006 respectively.
In 2006, a new major release of Pddl was proposed for the 5th Ipc. This version
(Gerevini & Long, 2005c, 2005b, 2005a) introduced state-trajectory constraints, which
have to be satisfied by the states generated by plan execution, and preferences, which are
constraints that can be violated. In parallel, Appl (Butler & Muñoz, 2006) (Abstract
Plan Preparation Language), a new version of Nddl was proposed. Its purpose was to
simplify the formal analysis and specification of planning problems.
The lastest version of Pddl, Pddl 3.1 (Helmert, n.d.; Kovacs, n.d.-a) was proposed in
2008. It has been used from Ipc6 to Ipc8 in 2014. It introduces object-fluents, i.e. func-
tions that manipulate any object type and not only numerical objects. Two extensions
of Pddl 3.1 have to be mentioned. The first one is Rddl (Relational Dynamic influence
Diagram Language) (Sanner, n.d.), which is an extension of Pddl 3.1 for probabilistic
planning. The introduction of partial observability is one of the most important changes
in Rddl with respect to Ppddl. Rddl has been used for the Uncertainty Track of the
7th Ipc in 20011. The last extension is Ma-Pddl (Multi-Agent Pddl) (Kovacs, n.d.-b)
for multi-agent planning.
5. PDDL4J Architecture
Pddl4j is composed of several independent modules (see Figure 2). It has a full PDDL
3.1 parser that has been validated on all the available benchmarks of the International
Planning Competitions (see Section 5.1 for the parser description and Section 6 for the
validation tests). On top of the parser, Pddl4j provides a pre-processing module, the
instantiation module (see Section 5.2), which is determinant for planner performances,
as well as many state-of-the-art informative structures (see Section 5.4) and their cor-
responding heuristics (see Section 5.5). Lastly, some classical planners (see Section 5.6)
are also provided.
14
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
at ?t ?to
at ?o ?to
The Pddl4j parser is based on JavaCC3 , ”the Java Compiler Compiler”, which is a
parser and lexical analyzer generator. It takes as input file a description of the Pddl
language, i.e., its lexical and grammar specifications (the BNF), and generates the Java
parser. JavaCC is particularly adapted to Pddl4j because it allows new Pddl language
extensions and the different versions of Pddl to be easily managed without any hand-
coding. Moreover, JavaCC has good error reporting, which is very useful for domain
debugging.
The semantic layer of the parser proceeds to verifications. Some of them just raise
warnings:
• a constant, a quantified parameter, a predicate, a function or a type declared and
never used in the domain and problem files,
• a declared parameter never used in the operator,
• the domain name used in the domain file does not match with the domain name
defined in the problem file, etc.
The parser also detects different errors:
• a type, a predicate, a constant or a function used but not declared,
• an inconsistent type hierarchy,
• a quantified parameter without type etc.
After these verifications, the parser generates a compact internal representation of the
planning problem. First, all the parameters in the domain and problem files are renamed
with a unique name. For instance, the logical formula ψ(?x) ∧ ∃?x ϕ(?x) is renamed
ψ(?x1 ) ∧ ∃?x2 ϕ(?x2 ). Then, the formulas are encoded as tree structures with integer
labels (see Figure 3): each integer maps a string, i.e., predicate name, parameter name,
constant name, function name, etc.
3 https://javacc.java.net
15
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
16
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
?p p1 p2 ... pn
?p p1 p2 ... pn
preconditions are encoded as a state and the conditional effects as a list of couples
of states, one for the condition and one for the effects.
17
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
18
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
(:action load_1
:parameters (?o - t1 ?v ?l)
:precondition (and (true) (vehicle ?v) (location ?l)
(at ?o ?l) (at ?v ?l))
:effect (and (in ?o ?v) (not (at ?o ?l))))
(:action load_2
:parameters (?o - t2 ?v ?l)
:precondition (and (false) (vehicle ?v) (location ?l)
(at ?o ?l) (at ?v ?l))
:effect (and (in ?o ?v) (not (at ?o ?l))))
In the first operator, the simplification process removes true, and, in this second op-
erator, invalidates all the preconditions: this operator will never be applicable and is
removed from the planning domain. However, remember that preconditions can be any
logical formula and simplification follows the usual contraction rules. The simplification
process is iterated over all the operator parameters. It terminates when an inferred type
is assigned to each parameter and all the unary inertias are removed from the operators.
19
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Rule 3. If the consequent of a conditional effect is replaced by true, the conditional effect
is removed from the operator because it will never lead to any state transition,
Rule 4. If the precondition or an unconditional effect of an operation is replaced by
false, the operator is removed from the planning domain because it will never be
applied in any state,
Rule 5. If the effect of an operator is true, the operator is removed from the planning
domain because it will never generate any new state.
20
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Variable Selection
Recall that each variable in the Fdr corresponds to one or more facts of the world in
the logical representation. In order to have a compact representation, we want to rep-
resent as many propositions as possible by a single variable induced by the computed
invariants. The procedure implemented in Pddl4j does not guarantee finding the most
compact representation (this is a NP-complete problem), but it uses the best approxi-
mation algorithm (Ausiello, Crescenzi, Gambosi, Kann, & Marchetti-Spaccamela, 1999).
The variable selection procedure consists in four steps:
Step 1. The procedure starts by extracting the relevant propositions of the planning
problem. This is quickly done by extracting all the propositions defined in the pre-
conditions and the effects of the grounded operators. For instance, in the Logistics
problem (see §4.1), the relevant propositions are those listed in Table 2.
Step 2. The procedure instantiates the computed invariants. In the logistics domains,
two invariants are extracted:
(1) ∀?p (at ?p ?l) and (in ?p ?v) are mutually exclusive: whatever the pack-
age ?p, ?p is either at a location ?l or in a vehicle ?v. This invariant produces
two partial instantiations: (at p1 ?l) is mutually exclusive with (in
p1 ?v), and (at p2 ?l) is mutally exclusive with (in p2 ?v),
(2) ∀?v (at ?v ?l) stating that whatever the vehicle ?v, the vehicle is at only
one location ?l. This invariant produces two partial instantiations: (at truck
?l) and (at plane ?l).
Step 3. Then, for each partial instantiation satisfying the initial state, a mutex-group of
propositions is created. This mutex-group of propositions contains all the relevant
propositions of the planning problem that unify with a predicate of the partial
instantiations. In our example, four mutex-groups shown in Table 2, one for each
partial instantiation, are generated;
Step 4. Finally, the procedure selects the mutex-group with the highest cardinality and
creates a variable of the domain that contains all the propositions of the mutex-
group plus the ⊥ value that stands for “none of propositions in the mutex-group is
true”. All the propositions of this mutex-group are removed from the other mutex-
groups, and empty mutex-groups are removed from the list of mutex-groups. The
process is repeated until this list is empty. In the logistics domain, the following
variables are created:
21
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Action encoding
The encoding of the preconditions and the positive effects of an action is similar to
the initial state and goal encoding. Nevertheless, encoding the negative effects requires
some care as the same variable can be simultaneously involved in positive and negative
effects. A variable encoding a negative effect is set to ⊥ only if no positive effect is
encoded with the same variable. For instance, the action (load-truck p1 truck cdg)
is encoded with the preconditions {?p1 = at-cdg, ?truck = at-cdg} and the effect
{?p1 = in-truck}.
22
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
of the initial state I. The level Ai with i > 0 is an action level containing all the actions
a ∈ A applicable from the proposition level Pi , and Pi+1 contains all the propositions
generated by the effects (both positive and negative) of the actions in Ai . Edges of the
planning graph explicitly represent relations between actions and propositions. Actions
in an action level Ai are connected by precondition edges to their preconditions in level
Pi , by add-edges to their positive effects in level Pi+1 , and by delete-edges to their nega-
tive effects in level Pi+1 . At each level Pi , every proposition p ∈ Pi is propagated to the
next level Pi+1 by a dummy action that has one precondition p and one positive effect
p. Two actions a and b in level Ai are mutex if (i) a deletes a precondition of b, (ii) a
deletes a positive effect of b or (iii) a precondition of a is mutex with a precondition
of b. Two propositions p and q in Pi are mutex if every action in Ai−1 that has p as a
positive effect (including dummy actions) is mutex with every action that produces q.
The sets of mutual exclusion relations at a proposition level Pi and an action level Ai
is respectively µPi and µAi . For instance, in Figure 5, at the action level 1, the action
(fly-airplane plane lhr cdg) is mutex with the action (load-airplane p1 plane
lhr) and (load-airplane p2 plane lhr).
Every planning graph P G has a fixed-point level. This fixed-point level is a level i such
that for ∀j > i, level j is identical to level i, i.e., Pi = Pj , µPi = µPj , Ai−1 = Aj−1 and
µAi−1 = µAj−1 . It is easy to verify the following assertions:
• The number of actions required to produce a proposition is no less than the index
of the smallest proposition level in the planning graph in which this proposition
appears. This can be generalized to a pair of propositions. In this case, the number
of actions to produce a pair of propositions is no less than the index of the smallest
proposition level in which both propositions appear without mutex,
• The set of actions at the fixed-point level contains all the actions applicable to
states reachable from the initial state.
These assertions give some indications on how the information in the planning graph can
be used to guide the search of the planners. The first assertion shows that the level index
in the planning graph can be used to estimate the ”cost” of deriving a set of propositions.
The second assertion shows which actions have to be considered by search algorithm, and
which actions have to be discarded etc.
The good news is that the computation of a planning graph takes polynomial time:
it depends on the number of actions and propositions of the problem (Kambhampati,
Parker, & Lambrecht, 1997). In Pddl4j, the planning graph is based on an efficient im-
plementation (a compact bit vector representation) proposed in the planner Ipp (Koehler,
1999) (different implementations exist, e.g., Stan (Long & Fox, 1999), Blackbox (Kautz
& Selman, 1999)).
23
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
at p1 cdg
unload-airplane p1 plane cdg
at p2 cdg
unload-airplane p2 plane cdg
at plane cdg at plan cdg
fly-airplane plane cdg lhr
in p1 plane in p1 plane
unload-airplane p1 plane lhr
in p2 plane in p2 plane
unload-airplane p2 plane lhr
at plane lhr at plane lhr at plane lhr
fly-airplane plane lhr cdg fly-airplane plane lhr cdg
at truck cdg at truck cdg at truck cdg
load-airplane p1 plane lhr load-airplane p1 plane lhr
at p1 lhr at p1 lhr at p1 lhr
load-airplane p2 plane lhr load-airplane p2 plane lhr
at p2 lhr at p2 lhr at p2 lhr
P0 A0 P1 A1 P2
Figure 5. The two first levels of the planning graph for the logistics problem. Each box is either a proposition
or an action. Solid lines represent preconditions and positive effects of actions, and dashed lines represent negative
effects. For readability, mutexes are not shown.
?truck ?aiplane
?p1 ?p2
Figure 6. Causal graph of a logistics problem: vertices are state variables in Finite Domain Representation and
arcs show variable dependencies.
24
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
in
at-north
airplane
at-north
at-south
at-south
Figure 7. Domain Transition Graphs of a logistics problem for the variables ?p1 and ?p2 (left), the variable
?airplane (centre) and the variable ?truck (right): vertices are values of the state variables and arcs possible
transitions. For simplicity, action labels are not depicted.
and (v = d0 ) ∈ effects(a). The Domain Transition Graph is said to be invertible if, for
each arc (d, d0 ), there is an arc (d0 , d) in the graph. The Domain Transition Graphs of the
state variables of the logistics problem are shown in Figure 7. It is proved (H. Chen &
Giménez, n.d.) (1) that plan existence for a planning problem with an acyclic causal graph
and whose Domains Transition Graphs are all invertible can be decided in polynomial
time, and (2) that if the causal graph contains cycles deciding if a plan exists is NP-Hard.
25
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Critical Path
Additive Critical Path
Heuristics
Abstraction
AbstractionHeuristics
Heuristics
Landmarks Heuristics
their properties in order to reduce the size of the search space. When the abstraction
is small enough it is feasible to quickly find an optimal solution for the abstracted
problem that is used as a heuristics value during the search,
• Landmarks heuristics (Hoffmann, Porteous, & Sebastia, 2004; Richter, Helmet, &
Westphal, 2008) are based on the observation that some propositions are true at
some point in every plan to reduce and decompose the search space.
For now, Pddl4j only implements critical path and delete relaxation heuristics (see
Figure 8. Heuristics in gray are admissible heuristics).
26
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
computed and the sum of these individual computations is returned as the heuristic
value. This computation requires less time than the original heuristic.
Additive Heuristic. The additive heuristic (Bonet & Geffner, 2001) h+ as in all the
heuristics of the delete relaxation heuristics category ignores the negative effects of the
actions. It approximates the distance from a state s to a goal g as the sum of the distances
to the propositions p ∈ g. h+ is given by the following equations:
where:
h(s, p)+ = 0 if p ∈ s
h(s, p)+ = ∞ if ∀a ∈ A, p 6∈ effect+ (a)
h(s, p)+ = min(cost(a)) + h+ (s, pre(a)) if ∃a ∈ A, p ∈ effect+ (a)
This heuristic requires polynomial time in the number of propositions and actions of the
planning problem. However h+ is not admissible.
Although hmax is admissible, in practice, it is less informative than the additive heuristic.
Note that hmax is equivalent to hm when m = 1.
Additive Mutex Heuristic. The additive mutex heuristic h+M improves the additive
heuristic by using mutex relations as in Graphplan (Blum & Furst, 1997). The mutex
relation used in h+M are ”structural” mutexes (time independent mutexes). Two propo-
sitions p and q are mutex when they cannot be present together in any reachable states
from the initial state of the planning problem. The additive mutex heuristic is as follows:
+M ∞ if ∃(p, q) ∈ s and mutex(p, q)
h (s, g) = (4)
Σp∈g h+ (s, p) otherwise
h+M is admissible, but empirical evaluations (Nguyen et al., 2002) show that h+M is more
informative than h+ specially when subgoals are relatively independent. The procedure
used to compute mutex relations starts with a large set of potential mutex pairs and
27
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
then precludes those that are not actually mutex. The initial set M of mutex pairs is
defined as the union of two sets M1 and M2 defined as follows:
• M1 is the set of pairs P = {p, q} such that some action adds p and deletes q,
• M2 is the set of pairs P = {r, q} such that for some pair m0 = {p, q} in M1 and
some action a, r ∈ pre(a) and p ∈ effect+ (a).
Then, for each mutex pair m = {p, q} ∈ M , given a set of actions A and an initial
state I, m is not derived if and only if m is not true in I. Therefore, for every a ∈ A
that adds p, either a deletes q, or a does not add q, and for some precondition r of a,
m0 = {r, q} is a pair in M .
Set-Level Heuristic. The set-level heuristic (Nguyen et al., 2002) computation is based
on the extraction of information from a planning graph structure. Suppose a planning
graph P G = hP0 , µP0 , A0 , µA0 , . . . , Pn , µPn i is expanded until its fixed point is reached.
Pi and Ai represent respectively the ith propositional and action level, and µPi and
µAi , the propositional and action mutex relation at level i. We call level(p) the first
propositional level of the planning graph where p appears. By extension, level(g) denotes
the first level of the planning graph where all the propositions of the goal g are present
in the propositional level Pi and are mutex free, i.e., g ∈ / µPi . The set-level heuristic is:
lev level(g)
h (s, g) = (5)
∞ otherwise
The set-level heuristic is admissible and more informative than the maximum heuristic.
This is because the maximum heuristic is equivalent to the set-level heuristic without
mutex constraints. Moreover, in practice, the set-level heuristic outperforms the additive
heuristic because it subsumes most of the structural mutex relations computed by the
additive heuristic.
Adjusted Additive Heuristic. The adjusted additive heuristic (Nguyen et al., 2002)
tries to avoid the drawbacks of the set-level heuristic that tends to underestimate the
goal distance as well as those of the additive heuristic that tends to overestimate the goal
distance by neglecting the negative effects of the actions. The main idea of the adjusted
additive heuristic is to make a partition of k subsets of the goal propositions and to apply
the set-level heuristic on each subset. The adjusted additive heuristic is:
where
∆(g) can be considered as a measure of the interdependence between the goal propositions
contained in g. In the best case, if there is no interdependence in g, i.e., all the goal
propositions are independent, ∆(g) = 0 and the adjusted additive heuristics is equivalent
to h+ . However, the adjusted additive heuristics, like h+ , is not admissible.
28
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Pddl4j also implements two improvements of the adjusted additive heuristic. The
first improvement consists in taking into account the propositions that are derived by an
action. The computation of h+ in equation 6 is then given by:
where a is an action that derives p ∈ g such that level(p) = maxpi ∈g level(pi ). Note that
recursively applying this equation implies extracting a sequence of actions. In this sense,
this adjusted additive heuristic variant is similar to the relaxed plan heuristic develop by
J. Hoffmann and B. Nebel in the FastForward planner (Hoffmann & Nebel, 2001).
The second improvement consists in improving the computation of ∆(g) by counting
more precisely the interdependences between the goal propositions. Instead of considering
goal propositions individually, the interdependence between each pair p and q of goal
propositions is considered. ∆(g) in equation 7 is then given by:
Combo Heuristic. As with the adjusted additive heuristic, the combo heuristic tries
to take advantage of combining two heuristic: the set-level heuristic and the additive
heuristic. Unlike the adjusted additive heuristic, it neglects the second term of equation 7.
The Combo heuristic is calculated as follows:
Empirical evaluations show that the combo heuristic is slightly faster than the adjusted
additive heuristic.
Relaxed Planning Graph Heuristic. The relaxed planning graph heuristic (Hoffmann
& Nebel, 2001) is based on the delete relaxation idea. The heuristic computation starts
by constructing a relaxed variant of the planning graph (see § 5.4.1) in which the negative
effects of the actions and the mutex relations are ignored. Then, a backward procedure is
applied to extract a relaxed plan from the first level k of the planning graph containing the
set of goal propositions. During the extraction, two sequences are maintained: a sequence
of goal propositions g1 , . . . , gk achieved at each propositional level and a sequence of set of
actions A0 , . . . , Ak−1 that represents the actions chosen to derive these goal propositions
g1 , . . . , gk . The sequence A0 , . . . , Ak−1 is the relaxed plan. Formally, the relaxed planning
graph heuristic can be defined as follows:
The relaxed planning graph heuristic returns the number of actions of the relaxed plan
as an estimation of the goal achievement if such a plan exists, or ∞ otherwise. Note that
building a relaxed planning graph and extracting a relaxed plan are polynomial time
operations. However, the relaxed planning graph heuristic is not admissible.
5.6. Planners
Several state-of-the-art planners are implemented in Pddl4j. The objective of the toolkit
is not to be exhaustive, but rather (1) to propose for pedagogical purposes an implementa-
29
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
tion of some canonical planners, and (2) to allow researchers to build on existing planners.
We present in this section the implemented planners in three categories: state-space plan-
ning, graph planning, and Sat planning. Other planning techniques exists, for instance
plan-space search (Penberthy & Weld, 1992), Model checking techniques (Triantafillou,
Baier, & McIlraith, 2015) or Markov Decision Process (Mausam & Kolobov, 2012). But,
for now, no planner based on these techniques is implemented in Pddl4j.
Fast Forward is a state-space planner based on the relaxed planning graph heuristic
(Hoffmann & Nebel, 2001). The search procedure is based on a variation of the
hill-climbing search called enforced hill-climbing. The idea of this search procedure is to
perform an exhaustive search only for the best states. The search uses also a heuristic
called ”helpful actions” to reduce the branching factor: only the actions of the relaxed
planning graph at the first level are used to compute the successor states. This heuristic
with the enforced hill climbing search makes Fast Forward incomplete. To guarantee
the completeness, Fast Forward launches an A* search without helpful actions when the
enforced hill-climbing search fails. Fast Forward does not find optimal plans. However,
in practice, the plans are relatively close to the optimum.
Fast Downward is a state-space search planner based on Fdr and the causal graph
heuristic (Helmert, 2006). The main search procedure of Fast Downward is a greedy best-
first search procedure, which is a modified version of classical best-first with deferred
heuristic evaluations to mitigate the negative influence of wide branching factors. It
extends the helpful actions proposed by Fast Forward in the context of causal graphs.
This planner is the foundation of several other planners, as for instance Lama (Richter
& Westphal, 2010) etc.
30
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
is no solution and the planner returns failure. The planners presented below differ
mainly in the search procedure used to extract a solution plan from the planning graph:
Graphplan was the first planner that introduced a planning graph structure (Blum &
Furst, 1997). The extraction of a solution plan from the planning graph is a backward
search from the last proposition level containing the goal to the first proposition level,
which is the initial state of the planning problem. For each goal proposition at the
last level of the planning graph, the search procedure non-deterministically chooses
a set of mutex free actions producing the goal propositions. If such a set exists, the
new goal becomes the union of the preconditions of these actions. Otherwise, there
is no solution, the search procedure backtracks and tries another set of mutex free
actions. The search is exponential in time. More information about Graphplan implemen-
tation in Pddl4j is available in Ipp planner papers (Koehler, 1999; Koehler et al., 1997).
SATPlan is a graph-based planner where the search is carried out by a Sat solver. The
implementation in Pddl4j relies on the papers of H. Kautz and B. Selman (Kautz,
Selman, & Hoffmann, 2006; Kautz & Selman, 1999). Once the planning graph is
extended, it is encoded as a Sat problem. This Sat problem is then solved with the
Sat4j (Le Berre & Parrain, 2010) library.
GP-CSP is a graph-based planner where the search is carried out by a Csp solver. The
implementation in Pddl4j is based on the M. Do and S. Kambhampati paper (Do
& Kambhampati, 2001). In this case, the planning graph is encoded as a Constraints
Satisfaction Problem (CSP). The CSP problem is then solved with the Choco library
(Prud’homme, Fages, & Lorca, 2014). Note that alternative approaches (Lopez & Bac-
chus, 2003; Barták & Toropila, 2008; Cooper, de Roquemaurel, & Régnier, 2011) based
on different planning graph encodings exist.
31
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
In this section, we propose a comparison of Pddl4j with the two other planning toolkits:
Fast-Downward (Fd) (Helmert, 2006) and Fast-Forward (Ff) (Hoffmann & Nebel, 2001)
(the Lightweight Automated Planning ToolKiT (Ramirez, Lipovetzky, & Muise, 2015) is
based on Fd and Ff). For each toolkit, we evaluate the comparable modules: the parsing
module and the encoding module. These modules are written respectively in Java for
Pddl4j, in Python for Fd and in C for Ff. The exhautive comparison was made on all
the 29 Strips planning domains of the successive International Planning Competitions.
The experiments were carried out on a 6-core Intel Xeon clocked at 2.2 GHz. For each
experiment a memory of 16 GBytes was allocated.
The performances of the parsing modules are shown Figure 9. For every domain, Fig-
ure 9 shows the average time in seconds needed by Pdd4j, Ff and Fd to parse all the
domains and problems files. Ff has the most performant parsing module. Then there is
Pddl4j and finally Fd. The difference of performance between, on the one hand, Fd
and, on the other hand, Ff and Pddl4j, is significant for domains like openstracks or
optical-telegraph where problem files are very large (more than 10 MBytes). The im-
plementation of the parsing module of Fd written in Python is definitely less performant
than the implementation of Pddl4l based on JavaCC, and the implementation of Ff
based on Flex and Bison. However, whatever the parsing implementation, the average
time for parsing remains relatively small and comparable (between 0.1 to 8 seconds).
The performances of the encoding modules are evaluated by : (1) the average time
needed to encode all the planning problems of a domain (see Figure 10) and (2) the
average memory needed to store all the encoded planning problems of a domain (see
Figure 11). The time needed to encode planning problems remains relatively small (be-
tween 1 to 60 seconds for most of the domains). The encoding module of Fd is much
slower than Pddl4l and Ff in this order. Fd encoding module takes more time for the
large problems (those identified in the evaluation of the parsing modules). However, Fd
outperforms Pddl4j and Ff in two domains: logistics and thoughtful. These two
domains have the particularity of having planning operators with a lot of parameters. For
instance, the thoughtful domain has operators with more than 6 parameters. If we go
into detail in the implementation of the encoding modules of Ff and Pddl4j, we can no-
tice that the computation of the inertias requires the creation of several multi-dimensions
arrays whose size is exponential with the number of operator parameters. This explains
why Ff and Pddl4j, which implement inertia computation, are less performant to en-
code the logistics and thoughtful problems. Concerning the average memory used to
store the encoded planning problems (see Figure 11), Pddl4j is broadly less memory-
hungry than the other toolkits except for logistics and thoughtful for the reasons
above.
To summarize, the experiments show that Pddl4j parsing and encoding modules
are competitive with the two main research planning toolkits Ff and Fd, even if
Pddl4j is written in Java. Moreover, Pdd4j is more mature than research code. It
has been completely refectored by professional developers and its development pro-
cess follows software engineering standards: there is a source code repository avail-
able at http://pddl4j.imag.fr. Continuous inspection of code quality is managed by the
SonarQube platform (see http://pddl4j.imag.fr/sonar). Pddl4j source code is imple-
mented according ”Continous Integration” (CI) principles (through Jenkins CI server,
see http://pddl4j.imag.fr/jenkins): CI consists in verifying that each code modification
does not produce code regression with respect to automated unit and integration tests.
This is meant to avoid and/or efficiently identify bugs in code upgrades which could im-
32
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
��
������
��
��
��
��
��
���������������
��
��
��
��
��
��
�� ��
�� ��
�� ���
�� ��� ��
�� ��
�� ���
��� ����
�� ���
�� ��
��
� ����
� ��
�� ����
�� ����
�� ���
�� ���� �
�� ��� ���
�� ���
�� ���
�� ��� ��
��
�� �
�� �����
�� ���
�� ��
�� ���
���
��
��
��
�� �
��
��
�� �
��
��
��
��
� ��
��
��
��
��� ��
��
��
��
��
�� ��
�
�� ��
��� ��
�� ���
��
��� �
��
��
��
�
�
�
�
�
���
��
���
�
�
�
��
Figure 9. Average time for domain and problem parsing
pair Pddl4j functionalities and performances. We would like to highlight that Pddl4j
comes with an exhaustive code documentation making Pddl4j a relevant Java toolkit
for both industrial and research applications. Note that Pddl4j is released under LGPL
license.
Conclusion
The future developments and extensions of Pddl4j will focus on the following points:
(1) Add new state-of-art planners and heuristics developed in the planning research
community in order to integrate the lastest advances and keep the Pddl4j toolkit
competitive.
(2) Develop the interfaces of Pddl4j to ease its integration and use in different contexts
of applications. In particular, we will tackle the following implementions:
(a) Simplified interfaces with other solvers based on Sat and Csp techniques such
as Sat4j and Choco to bridge the gap between these communities, and
(b) an interface to the Robot Operating System (Quigley, Gerkey, & Smart, 2015)
(Ros) to facilitate Pddl4j usage in the robotics community. Ros is an open
source framework aiming at writing softwares for robots. It is a collection
33
� �
�� ��
of tools, libraries, and conventions that help to create complex and robust
robot behaviors on a wide variety of robotic platforms. It is currently used
by hundreds of research groups and companies in the robotics industry. A
��� ���
�� ��
�� ��
�� ��
��� ���
� �
� �� � ��
������
��
��
������
��
��
�� ��� �� ���
�� ��
�� �� �� ��
� �
�� � �� �
�� �� �� ��
�� ��
�� ����� �� �����
�� ��
�� � �� �
�� ��
�� ��
� ��� � ���
�� ��� �� �� ��� ��
� �
�� � �� �
�� �� �� ��
Figure 11. Average memory usage of the encodings of the planning problems
� �
��� �� ��� ��
�� �� � �� �� �
�� �� �� ��
�� ��� �� �� ��� ��
�� ���� �� ����
�� ��� � �� ��� �
��� �� ��� ��
�� ��� �� ���
main
�� ��� �� ���
�� ��� �� ���
34
� �
�� ���� �� ����
� �� � ��
� �
�� ��
� ���� � ����
� �
�� ��
�� ��
�� ��
�� ��
�� �� �� ��
� �
�� ��
�� ��� �� ���
�� � �� �
��� ��� ��� ���
�� � �� �
�� ��� �� ���
� �
�� ��
�� �� �� ��
�� �� �� ��
�� ��� �� �� ��� ��
��� �� ��� ��
�� ��� �� ���
�� � ��
�� � �� ��
�� ��
�� � �� ��
�� �
�� ��
�� ��
���
���
���
���
���
���
��
���
���
���
���
���
���
���
���
��
��������������� ������
July 4, 2017
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
References
Ambite, J. L., & Kapoor, D. (2007). Automatically Composing Data Workflows with Rela-
tional Descriptions and Shim Services. In Proceedings of the International Semantic Web
Conference (pp. 15–29).
Ausiello, G., Crescenzi, P., Gambosi, G., Kann, V., & Marchetti-Spaccamela, A. (1999). Com-
plexity and Approximation. Springer-Verlag.
Backes, P. G., Norris, J. S., Powell, M. W., & Vona, M. A. (2004). Multi-mission Activity
Planning for Mars Lander and Rover Missions. In Proceedings of the IEEE Aerospace
Conference (pp. 877–886).
Bäckström, C., & Nebel, B. (1995). Complexity Results for SAS+ Planning. Computational
Intelligence, 11 , 625–656.
Barták, R., Salido, M., & Rossi, F. (2010). Constraint satisfaction techniques in planning and
scheduling. Journal Intelligent Manufacturing, 21 (1), 5–15.
Barták, R., & Toropila, D. (2008). Reformulating constraint models for classical planning. In
Proceedings of The International Florida Artificial Intelligence Research Society Conference
(pp. 525–530).
Bernardini, S., & Smith, D. (n.d.).
In Proceedings of the icaps workshop on heuristics for domain-independent planning.
Bevilacqua, L., Furno, A., Scotto di Carlo, V., & Zimeo, E. (2011). A tool for automatic
generation of WS-BPEL compositions from OWL-S described services. In Proceedings of
the International Conference on Software, Knowledge Information, Industrial Management
and Applications.
Blum, A., & Furst, M. (1997). Fast Planning Through Planning Graph Analysis. Artificial
Intelligence, 90 (1-2), 281–300.
Bonet, B., & Geffner, H. (2001). Planning as Heuristic Search. Artificial Intelligence, 129 (1–2),
5–33.
Brafman, R., & Domshlak, C. (2003). Structure and Complexity in Planning with Unary Oper-
ators. Journal of Artificial Intelligence Research, 18 (1), 315–349.
Brafman, R., & Domshlak, C. (2006). Factored Planning: How, When, and When Not. In
Proceedings of the Association for the Advancement of Artificial Intelligence (pp. 809–
814).
Brenner, M. (2003). A Multiagent Planning Language. In Proceedings of the ICAPS Workshop
on Planning Domain Description Language.
Bresina, J. L., Jónsson, A. K., Morris, P. H., & Rajan, K. (2005). Activity Planning for the
Mars Exploration Rovers. In Proceedings of the International Conference on Automated
Planning and Scheduling (pp. 40–49).
Bryce, D., & Kambhampati, S. (2007). A Tutorial on Planning Graph Based Reachability
Heuristics. Artificial Intelligence Magazine, 27 (1), 47–83.
Butler, R., & Muñoz, C. (2006). An Abstract Plan Preparation Language (Tech. Rep. No.
TM-2006-214518). NASA.
Cashmore, M., Fox, M., Long, D., Magazzeni, D., Ridder, B., De Carolis, V., . . . Maurelli, F.
(2015). Dynamically Extending Planning Models using an Ontology. In Proceedings of the
ICAPS Workshop on Planning and Robotics (pp. 79–85).
Chen, H., & Giménez, O. (n.d.). Causal graphs and structurally restricted planning. Journal of
Computer System and Science(10), 273–314.
Chen, Y., Zhao, X., & Zhang, W. (2007). Long-distance mutual exclusion for propositional
4 https://github.com/pellierd/pddl4j-rospy
35
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
36
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Ghallab, M., Howe, A., Knoblock, G., McDermott, D., Ram, A., Veloso, M., . . . Wilkins, D.
(1998). PDDL: The Planning Domain Definition Language [Computer software manual].
Haslum, P., Bonet, B., & Geffner, H. (2005). New Admissible Heuristics for Domain-Independent
Planning. In Proceedings of the Association for the Advancement of Artificial Intelligence
(pp. 1163–1168).
Haslum, P., Botea, A., Helmert, M., Bonet, B., & Koenig, S. (2007). Domain-Independent
Construction of Pattern Database Heuristics for Cost-Optimal Planning. In Proceedings of
the association for the advancement of artificial intelligence (pp. 1007–1012).
Haslum, P., & Geffner, H. (2000). Admissible Heuristics for Optimal Planning. In Proceedings
of the Artificial Intelligence Planning Systems (pp. 140–149).
Helmert, M. (n.d., 2008). Changes in PDDL 3.1. (Unpublished manuscript International Planning
Competition website)
Helmert, M. (2006). The Fast Downward Planning System. Journal of Artificial Intelligence
Research, 26 , 191–246.
Helmert, M. (2009). Concise finite-domain representations for PDDL planning tasks. Artificial
Intelligence, 173 (5-6), 503–535.
Helmert, M., & Domshlak, C. (2009). Landmarks, Critical Paths and Abstractions: What is
the difference anyway. In Proceedings of the International Conference on Planning and
Scheduling (p. 162-171).
Helmert, M., Haslum, P., Hoffmann, J., & Nissim, R. (2014). Merge-and-Shrink Abstraction:
A Method for Generating Lower Bounds in Factored State Spaces. Journal of the ACM ,
61 (3), 16–63.
Hoffmann, J. (2011). Analyzing search topology without running any search: On the connection
between causal graphs and h+. Journal of Artificial Intelligence Research, 41 , 155–229.
Hoffmann, J., & Nebel, B. (2001). The FF Planning System: Fast Plan Generation Through
Heuristic Search. Journal of Artificial Intelligence Research, 14 (1), 253–302.
Hoffmann, J., Porteous, J., & Sebastia, L. (2004). Ordered Landmarks in Planning. Journal of
Artificial Intelligence Research, 22 (1).
Hoffmann, J., Weber, I., & Kraft, F. (2009). Planning@SAP: An Application in Business Pro-
cess Management. In Proceedings of the ICAPS Workshop on Scheduling and Planning
Applications.
Howey, R., Long, D., & Fox, M. (2004). VAL: automatic plan validation, continuous effects and
mixed initiative planning using PDDL. In Proceedings of the IEEE international conference
on tools with artificial intelligence (pp. 294–301).
Jonsson, A. (2007). The Role of Macros in Tractable Planning Over Causal Graphs. In Proceedings
of the International Joint Conference on Artificial Intelligence (p. 1936-1941).
Jonsson, P., & Bäckström, C. (1998). Tractable plan existence does not imply tractable plan
generation. Annals of Mathematics and Artificial Intelligence, 22 (3–4), 281–296.
Kambhampati, S. (2000). Planning Graph as a (Dynamic) CSP: Exploiting EBL, DDB and other
CSP Search Techniques in Graphplan. Journal of Artificial Intelligence Research, 12 (1),
1–34.
Kambhampati, S. (2001). Planning as constraint Satisfaction: Solving the planning graph by
compiling into CSP. Artificial Intelligence, 132 (2), 151–182.
Kambhampati, S., Parker, E., & Lambrecht, E. (1997). Understanding and Extending Graphplan.
In Proceedings of the European conference on Planning (p. 260-272).
Katz, M., & Domshlak, C. (2008). Structural Patterns Heuristics via Fork Decomposition. In
Proceedings of the International Conference on Automated Planning and Scheduling (pp.
182–189).
Kautz, H., & Selman, B. (1992). Planning as Satisfiability. In Proceedings of the European
Conference on Artificial Intelligence (pp. 359–363).
Kautz, H., & Selman, B. (1999). Unifying SAT-based and Graph-based Planning. In Proceedings
of International Joint Conference on Artificial Intelligence (pp. 318–325).
Kautz, H., Selman, B., & Hoffmann, J. (2006). Satplan: Planning as satisfiability. In Abstracts
of the 5th international planning competition.
37
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
38
July 4, 2017 Journal of Experimental & Theoretical Artificial Intelligence main
Salnitri, M., Paja, E., & Giorgini, P. (2015). Maintaining Secure Business Processes in Light of
Socio-Technical System’s Evaluation (Tech. Rep.). DISI-University of Trento.
Sanner, S. (n.d., 2010). Relational Dynamic Influence Diagram Language (RDDL): Language
Description. (Unpublished manuscript from the International Planning Competition web-
site)
Srivastava, S., Riano, L., Russell, S., & Abbeel, P. (2013). Using Classical Planners for Tasks with
Continuous Operators in Robotics. In Proceedings of the ICAPS Workshop on Planning
and Robotics (pp. 27–35).
Thomas, J. M., & Young, M. R. (2006). Author in the Loop: Using Mixed-Initiative Planning
to Improve Interactive Narrative. In Proceedings of the ICAPS Workshop on AI Planning
for Synthetic Characters and Computer Games.
Triantafillou, E., Baier, J., & McIlraith, S. (2015). A Unifying Framework for Planning with LTL
and Regular Expressions. In Proceedings of the ICAPS Workshop on Model-Checking and
Automated Planning (p. 23-31).
van Beek, P., & Chen, X. (1999). CPlan: A constraint programming approach to planning. In
Proceedings of the Association for the Advancement of Artificial Intelligence (pp. 585–590).
Wehrle, M., & Rintanen, J. (2007). Planning as satisfiability with relaxed ∃-step plans. In
Proceedings of the Australian Joint Conference on Artificial Intelligence (pp. 244–253).
Williams, B., & Nayak, P. (1997). A reactive planner for a model-based executive. In Proceedings
of the International Joint Conference on Artificial Intelligence (pp. 150–159).
Younes, H., & Littman, M. (2004). PPDDL 1.0: an extension to PDDL for expressing plan-
ning domains with probabilistic effects (Tech. Rep. No. CMU-CS-04-167). Carnegie Mellon
University.
Zaman, S., Steinbauer, G., Maurer, J., Lepej, P., & Uran, S. (2013). An integrated model-
based diagnosis and repair architecture for ROS-based robot systems. In Proceedings of
the International Conference on Robotics and Automation (pp. 482–489).
39