Backward Chaining
   - You can only simulate a backward chained plan.
 
   - You start at the goal state, and consider the moves that 
       can take you there.
 
   - Using the same example, the initial state is:  On(B, Ground), 
       On(A, Ground), On(C,A), Clear(B) and Clear(C).
 
   - The goal state is:  On(C, Ground), On(B, C), and On(A,B).
 
   - The only move you can make to get here is Move(A,B,Ground).
 
   - However, from this state, you can choose Move(A,Ground,B),
       Move(B,C,Ground), or Move(B,A,C).
 
   - You can ignore the one that takes you back to the goal state.
 
   - In reverse, what you want to do is: 
 
   - you want to, as the last step Move(A,Ground,B), before that, Move(B,Ground,C) and intially
       Move(C,A,Ground).
 
   - What is a good algorithm to explore this space?
 
   - Depth first search isn't good because you have infinite chains; 
       you can fix this by making sure not to revisit states.
 
   - What about clear?
 
   - We've just mentioned the moves, not the ongoing description of
       the states.