next up previous
Next: Macro Generation Up: Enhancing a Domain with Previous: Building Abstract Components


Creating Macro-Operators

A macro-operator $m$ in CA-ED is formally equivalent to a normal operator: it has a set of variables $V(m)$, a set of preconditions $P(m)$, a set of add effects $A(m)$, and a set of delete effects $D(m)$. Figure 6 shows an example of a macro in Depots. Figure 7 shows complete STRIPS definitions for this macro and the operators that it contains.

Figure 6: Example of a macro in Depots.
\includegraphics[width=.4\linewidth]{depotsmacro.eps}

Figure 7: STRIPS definitions of macro UNLOAD--DROP and the operators that it contains.
\begin{figure}\begin{center}\par
\begin{tabbing}
\par
\hspace{0.0em} \= (:acti...
...ar ?s)) (clear ?y) (on ?y ?s)) \\
)
\par
\end{tabbing}
\end{center}\end{figure}

Macro operators are obtained in two steps, which are presented in detail in the remaining part of this section. First, an extended set of macros is built and next the macros are filtered in a quick training process. Since empirical evidence indicates that the extra information added to a domain definition should be quite small, the methods described next tend to minimize the number of macros and their size, measured by the number of variables, preconditions and effects. Static macro generation uses many constraints for pruning the space of macro operators, and discards large macros. Finally, dynamic filtering keeps only a few top performing macros for solving future problems.



Subsections
next up previous
Next: Macro Generation Up: Enhancing a Domain with Previous: Building Abstract Components
Adi Botea 2005-08-01