1. Planning——Classical plans

2017.05.10 11:03* 字数 599

In AI, the model-based reasoning approach is called planning
Planning is the reasoning side of acting. Planning = Search + KR.


  1. Planning looks for a sequence of actions achieving a goal state.

  2. Planning uses search BUT in conjunction with adequate KR.

  3. Planning uses representations of states and actions allowing us to exploit the structure of the problem and lead to general heuristics for planning.

  4. Planners are general problem solvers that take as input a description of the problem in a high-level language

“Planning is the reasoning side of acting. It is an explicit deliberation process that chooses and organises actions, on the basis of their expected outcomes, in order to achieve some objective as best as pos- sible.”[Ghallab et. al., 2003]

Planner = solver over a class of planning models

Classical planning

Classical planning is an off-line process which assumes a single agent and a static environment, determinism, full observability, reachability goals, and ignores qantitative time.

• finite: states, actions, observations are finite
• static, single agent: no event outside of the planner’s control
• deterministic: unique initial state, unique resulting state
• fully observable: sensors provide all relevant aspects of the current state
• off-line planning: planning decoupled from execution
• implicit time: no durations, instantaneous actions
• sequential: solution is a sequence of actions
• reachability goals: acceptable sequences end in a goal state
• cost function: length or path-cost of the sequence

Classical planning model:

• a finite set of states S
• a finite set of actions A
• a transition function γ : S × A → S
• an initial state s0
• a set SG of goal states
• a (step) cost function c : A → R+

3 kinds of classical planning mdel:

  1. linear plan (or sequence): totally ordered set ⟨a1, . . . , an⟩, ai ∈ A, such that γ(. . . γ(γ(s0, a1), a2), . . . , an) ∈ SG. Produced by state-space planning approaches.

  2. non-linear plan: partially ordered set ⟨{a1, . . . , an}, <⟩, ai ∈ A, such that each linearisation is a valid linear plan. More flexible for execution. Produced by plan-space planning approaches.

  3. parallel plan: sequence of parallel action sets⟨{a1,1, . . . , a1,l(1)}, . . . , {a1,n, . . . , a1,l(n)}⟩, ai,j ∈ A. Actions in each set must not interfere: performing them in any order or in parallel must lead to the same result. Produced by set-based and graph-based planning approaches.


linear plan:
⟨unstack(R1, A, B), unstack(R2, D, E), putdown(R1, A), stack(R2, D, B)⟩

non-linear plan:
⟨{unstack(R1, A, B), unstack(R2, D, E), putdown(R1, A), stack(R2, D, B)},{unstack(R1, A, B) < putdown(R1, A), unstack(R2, D, E) < stack(R2, D, B), unstack(R1, A, B) < stack(R2, D, B)}⟩

parallel plan:
⟨{unstack(R1, A, B), unstack(R2, D, E)}, {putdown(R1, A), stack(R2, D, B)}⟩


  1. most planning problems are too large to be explicitly described e.g. blocks world with 30 blocks has 197987401295571718915006598239796851 states.

  2. problems with a large branching factor would require human-supplied heuristics, defeating the goal of building domain-independent planners.

To improve: rely on adequate representations of the planning problem, we can improve scaling whilst maintaining domain-independence.

Planning algorithms differ by the search space they explore and the type of classical plan they produce: sequential, partially ordered, or parallel plan.