This document discusses bounded planning problems and the SAT encoding used to solve them. It describes the key components of the SAT encoding: (1) the initial state, (2) action descriptions with preconditions and effects, (3) explanatory frame axioms describing what doesn't change, (4) complete exclusion axioms ensuring only one action occurs at a time, and (5) the goal. It provides an example of encoding a move action and explains how the encoding can be improved by leveraging static domain relations.
2. Formulas
1. Initial State
2. Actions (Preconditions and Effects)
3. Explanatory Frame Axiom
4. Complete Exclusion Axiom
5. Goal
3. Formulas
• To satisfy:
initial state & all possible action descriptions & goal
1 & {2, 3, 4} & 5
4. 1 - Initial State
• Specify what is true at the beginning (t = 0).
– Example: (at v0 l0 0)
• Specify what is not true at the beginning (t = 0).
– Example: (not (at v0 l1 0))
5. Dynamic vs Static
• We need to specify only the falsehood of
dynamic states, but not of static states!
• Why?
Possible actions will always satisfy the
precondition for corresponding static states, since
they are generated using the facts about static
states themselves!
• In other words, it is safe to give an interpretation
for any static state wrt. possible actions, to be
true at a specific time (well since they are static!).
6. OWA
• Propositional logic has no CWA!
– Therefore, what are not specified can be interpreted
as True (xor False).
– Example: (random-predicate random-constant) can be
interpreted as true!
• Therefore, if we ask for the satisfiability of:
(at v0 l0 0) & -(at v0 l1 0) & (asdf zxcv 0)
The answer will still be YES!
• Do we need to add -(asdf zxcv 0)? No since we
will never care about the value of (asdf zxcv 0)
and never put it in the formula!
7. 2 - Actions
• We want to represent the actions as compact as
possible!
• Characteristics:
– Action name
– Preconditions
– Effects
– Typing
• All these characteristics define:
Possible actions!
PS: We can think these possible actions as a
substitution!
9. Move
• move (?v, ?l1, ?l2, ?f1, ?f2)
• ?v is of type Vehicle
• (at ?v ?l1) is in precondition, but do you think
we can use this knowledge benefit? No, since
at is dynamic (time dependent)!
• Therefore, ?v ranges over objects defined as a
vehicle without any other restrictions
10. Move
• move (?v, ?l1, ?l2 , ?f1, ?f2)
• ?l1 and ?l2 are of type Location
• (conn ?l1 ?l2) is in precondition, but do you think
we can use this knowledge benefit? Yes, since
conn is static (time independent)!
• Therefore, ?l1 and ?l2 ranges over object
locations defined in conn!
• Another benefit: the precondition of conn is
always satisfied!
11. Move
• move (?v, ?l1, ?l2,?f1, ?f2 )
• ?f1 and ?f2 are of type Fuel
• (fuel-neighbor ?f2 ?f1), beware of the order, is in
precondition, but do you think we can use this
knowledge benefit? Yes, since fuel-neighbor is
static!
• Therefore, ?f1 and ?f2 ranges over object fuels
defined in fuel-neighbor!
• Another benefit: the precondition of fuel-
neighbor is always satisfied!
12. How much reduction do we get?
• Suppose |v| = 10, |l| = 10, |f| = 10,
|conn| = 2 * 10, |fuel-neighbor| = 10
• Naive encoding (typing) =
n ^ 5 = 10 ^ 5 = 100.000
• Improved encoding =
2 * (n ^ 3) = 10 * 2 * 10 * 10 = 2000
• Even worse, suppose n = 100, then:
100 ^ 5 = 10.000.000.000 (☠)
• But with the improved encoding:
100 * 2 * 100 * 100 = 2.000.000
19. 3 - Explanatory Frame Axiom
• Describe what doesn’t change between steps i and i +
1.
• Two axioms for every possible dynamic state at every
time step i
• Say that if s changes truth value between i and i+1 then
the action at step i must be responsible:
– not (s, i) & (s, i + 1) -> BIG OR {(a, i)| e in EFF(s)} OR False
– (s, i) & not (s, i + 1) -> BIG OR {(a, i)| e in EFF(-s)} OR False
• If s became true then some action must have added it,
if s became false then some action must have deleted
it!
21. 4 - Complete Exclusion Axiom
• Very simple but huge!
• For all actions a and b and time steps i
include the formula
¬ (a, i) OR ¬ (b, i)
• This guaranteed that there could be only one
action at a time
• Example:
(or (not (unload c0 v0 l0 s0 s1 0))
(not (unload c0 v0 l1 s0 s1 0)))
22. 5 - Goal
• Very simple!
• Just a conjunction of your goals at the time n
(aka the bound).
• Example (n = 20):
(and (at c0 l0 20) (at c1 l1 20) (at c2 l2 20))