1. Termination check: If G is
empty, report success and stop.
2. Goal selection: Let c be a
goal in G, and let Oneed be the plan step for which c is a precondition.
3. Operator selection: Let Oadd
be an operator in the library that adds c.
If there
is no such Oadd, then terminate and report failure.
Backtracking point - all such
operators must be considered.
4. Ordering selection: Let Odel
be the last deleter of c.
Order Oadd
after Odel and before Oneed
Repeat until there are no interactions:
- ·Select a step Oint
that interacts with Oadd.
- Order Oint
either before or after Oadd.
Backtracking point - both
orders must be considered for completeness.
Let P' be the resulting plan.
5. Update goal set: Let G' be
the set of preconditions in P' that are not true.
6. Recursive invocation: TO(P',G')