Classical Planning
PDDL/STRIPS
It's an approach based on a particular subset of FOL. To define a STRIPS planning problem we need four elements:
With:
Cond, it's a finite set of ground functionless atomic formulas (also called conditions), which are predicative symbols applied to just constants:
Q(c1,...,cn), where Q is the predicative symbol and c1,...,cn are constants.
Ground means that they do not used existential or universal quantifiers, functionless that they do not use function symbols, and atomic because they are made by just one predicates. If we're using DPLL we're good, but no negation is allowed in the STRIPS language.
Note that states are subset of the Condition set: {p1,...,pn}⊆Cond. In fact states are made of conjunction of conditions.
Action is a finite set of operators. An action is made up by two elements:
a=(Precond,Effect)∈A. The precondition defines the conditions under which we can execute a, while the effect describes how the state is modified after applying action a.
Precond⊆Cond
Effect⊆(Cond∪Condˉ), with Condˉ={¬p:p∈Cond}
It's a conjunction of conditions and negations (only moment in which negation is allowed) of conditions.
Init⊆Cond, it's the initial state
Goal⊆Cond, it's the goal condition
Actions and Effects
Applicability of an action a in a state s is found by checking the following condition:
a∈actions(s)⟺Precond⊆s, or Precond⊨s.
Execution of an action a in a state s:
Effect=Effect+∪Effect−. The first set is called conditions, while the second is called negation of conditions. The former are going to be added to the state, while the latter conditions are going to be removed from the state. The result of execution an action on a state is a new state:
result(s,a)=(s\Effect−)∪Effect+
Some observations:
Goal test: is_goal(s)⟺Goal⊆S.
Solution-plan: it's a sequence of actions which starts from s0 and gets to a goal state sg.
PDDL vs STRIPS
In base PDDL, you can use negative literals in preconditions and goal (unlike what you can do in STRIPS).
Some definitions
Unique Name Assumption (UNA): different constants always denote different objects.
Domain Closure Assumption (DCA): the environment includes only those objects that are denoted by a constant
Closed World Assumption (CWA): all literals that are not explicitly mentioned in the description of the state are assumed to be false (i.e., their negation is assumed to be true).
Problem formulation
You need to specify:
Constants: used to denote object
Predicates: used to represent properties of the objects and relationships between the objects
Action schemas (parametric actions): family of actions parametrized with a variable x (or, in general, with more variables) that is instantiated to satisfy the preconditions in a state. Recall that:
∀a∈A:a=<Precond,Effect>Init, Goal
Example

Two rooms
One robot
The robot can move between room and suck dirt
Constants: Robot,R1,R2
Predicates:
In(x,y): object x is located into room y
Clean(x): room x is clean
We also need special predicates to determine the nature of a given variable, which are needed while writing action schemas:
Robot(x): x is a robot
Room(x): same but room
Example of state representation:
means that robot is in room 1 and that room 1 is clean, as seen in the picture. Note that we cannot have negate variables (only exception is in the Effect set), which is why we did not include, for example, egClean(R2). Also STRIPS uses CNF, which means that to describe a state no or will be used between different clauses.
Action example
MoveRight
Preconditions=In(Robot,R1)
As you can see Effects is made up by new predicates and ones which previously belonged to the Precondition set (those can also be negated).
Action schema example
Same as actions, but parametric:
Suck(x)
Preconditions=In(Robot,x)
Forward/Backward search
Init→Goal
Goal→Init
Notes:
Goal test at node generation
DFS with closed list to avoid repeated states
Formulation as a classical search problem, conjunction of predicates as nodes, action [schemas] as arcs.
SATplan
based on PL
Application of DPLL to show that the goal is satisfiable after converting the STRIPS/PDDL representation to CNF form
Basically states (from the initial to the goal) are converted from FOL to PL. Then DPLL is applied to check if the SATPlan is satisfiable or not.
Last updated