Planning: Situation Calculus

It is possible to represent a state space in predicate calculus and use a proof procedure to find solutions to problems.

An example of a classical planning problem is the ``Monkey and Bananas Problem:'' A monkey in a cage wants to get some bananas that hang from the ceiling. The monkey cannot reach the bananas directly. However, there is a box in the cage; by pushing the box underneath the bananas and climbing on the box, the monkey can get the bananas.

Since a state space operator changes the state, we cannot simply represent facts with predicates such as At(Monkey, a). While the monkey may be at a in some state, the monkey can move. Ordinary logic is monotonic, i.e., the set of true predicates can only increase; facts cannot be retracted.

One way to represent mutable facts is to add a situation or state variable to each predicate: At(Monkey, a, s0). This states that the monkey is at a in state s0, which remains true even if the monkey moves (which puts it in a new state).