Initial State A B D C E F ----------------------------------------- Goal State A B C F D E ----------------------------------------- Operators: Pick up a block (places block in robot hand) Put down a block (block must be in robot's hand) Stack a block onto another (block must be in robot's hand and destination clear) Unstack a block from another (places block in robot hand) From initial state, possible moves: Pickup(C) Unstack(A) Unstack(D) Pickup(C) has moves: Putdown(C) Stack(C, A) Stack(C, D) Unstack(A) has moves: Putdown(A) Stack(A, C) Stack(A, B) Stack(A, D) Unstack(D) has moves: Putdown(D) Stack(D, C) Stack(D, A) Stack(D, F) From goal state, possible moves: Stack(F, E) Stack(A, B) Stack(F, E) has possible moves: Pickup(F) Unstack(F, x) Stack(A, B) has possible moves: Pickup(A) Unstack(A, x)