Blocks world (source code)

= Blocks world

The <blocks world> is a <classical planning> model of movable blocks arranged in stacks on an unlimited table. Each block has one support, each block supports at most one other block, and the support relation has no <directed cycle>. A clear block can move onto another clear block or onto the table. In a direct-transfer <STRIPS> representation, an action includes the entire pickup-and-placement operation; a separate holding or empty-hand <planning fluent> is unnecessary unless the action model explicitly splits those operations.

The table has unlimited capacity, so its availability must not be deleted when a block is placed there. <Planning state invariants> connect the <predicate> describing a clear block to the absence of any block directly above it. <Goal interaction in planning> makes this small model useful for testing <automated planning> methods.