Situation Calculus
Situation Calculus
Situation Calculus
Second-Order Logic (SOL)
P ( P(a) P(b) )
Second-Order Logic (SOL)
Examples:
Reiter 1991
Actions
move(x, y): robot is moving to a new location (x, y)
Situations
Initial situation S0: no actions have yet occurred
A new situation, resulting from the performance of
an action a in current situation s, is denoted using
the function symbol do(a, s).
do(move(2, 3), S0): denotes the new situation after the
performance of action move(2, 3) in initial situation S0.
do(pickup(Ball ), do(move(2, 3), S0))
do(a,s) is equal to do(a’,s’) s=s’ and a=a’
Situation Calculus
Fluents: “properties of the world”
Relational fluents
Statements whose truth value may change
Fluents (cont.)
Functional fluents
Examples:
Poss(drop(o),s) is_carrying(o,s)
Examples:
Poss(pickup(o),s) → is_carrying(o,do(pickup(o),s))
Example:
Poss(a,s) → [broken(o,do(a,s)) (a=drop(o) fragile(o))
(broken(o,s) a repair(o,s))]
Situation Calculus
Precondition Axioms
Poss(pickup(o),s) z ¬is_carrying(z,s) ¬heavy(o)
Poss(putonfloor(o),s) is_carrying(o,s)
Poss(putontable(o),s) is_carrying(o,s)
Initial state
¬is_carrying(o,S0)
OnTable(o, S0) o=A o=B