  Generalized planning is concerned with the characterization and computation
of plans that solve many instances at once. In the standard formulation, a
generalized plan is a mapping from feature or observation histories into
actions, assuming that the instances share a common pool of features and
actions. This assumption, however, excludes the standard relational planning
domains where actions and objects change across instances. In this work, we
extend the standard formulation of generalized planning to such domains. This
is achieved by projecting the actions over the features, resulting in a common
set of abstract actions which can be tested for soundness and completeness, and
which can be used for generating general policies such as "if the gripper is
empty, pick the clear block above x and place it on the table" that achieve the
goal clear(x) in any Blocksworld instance. In this policy, "pick the clear
block above x" is an abstract action that may represent the action Unstack(a,
b) in one situation and the action Unstack(b, c) in another. Transformations
are also introduced for computing such policies by means of fully observable
non-deterministic (FOND) planners. The value of generalized representations for
learning general policies is also discussed.
