Вы находитесь на странице: 1из 2

Situational Calculus:

Planning has recently become a very exciting area of research in Artificial Intelligence. Much of the
work of Artificial Intelligence is concerned with problem solving. As we will see, planning is no
exception. Planning is a very simple concept: a planner starts in an initial state and has a particular
goal it needs to achieve. To reach the goal state, the planner develops a plan and then executes that
plan. The planner might be a robot arm, or a mobile robot, but in many cases it exists purely in
software and is designed to plan solutions to virtual problems. A planner has a set of possible actions
it can take, and as we will see, these actions are usually limited, depending on the current state of
the planner. For example, a robot cannot open a door if the door is already open, or if it is nowhere
near the door, or if its hands are full. The actions that a planner can take are its atomic actions—
these actions are usually described in terms of the effect they have on the planner and on the world.
For example, a planning system might use actions such as “pick up object X” or “close door” or “go
to supermarket.” Note that thus far we have assumed that the planner is the same entity as the
entity that will execute the plan. This is not necessarily the case because a planner may be intended
to develop plans for another entity.

 One notation that is often used in discussing planning is situation calculus. Situation calculus
is a form of first-order predicate calculus.
 First-order predicate calculus allows us to make assertions about objects but does not
provide a very good way of expressing change, or temporal relationships. Situation calculus
allows us to describe an object in one state, or situation, and then describe how that object
will change when a given action is taken.
 For example, the following situation calculus expression represents the assertion that in
situation S1, the robot is in the same room as the cheese:

 Here the predicate In is used to indicate which room a given entity is in.
 The predicate has been augmented with a third variable, which is the situation that is being
described. This third variable, S1, is known as a situation variable.
 Of course, not all objects change over time, and so we can continue to use standard
predicates without a situation variable.
 For example, we could use the following expression to assert that the robot’s name is
Robbie and that this will not change over time:
Name (Robot, Robbie)
 To describe the effects that actions have on the world, we use the Result function. The
Result function takes as arguments an action and a situation and returns the situation that
occurs as a result of that action.
 For example, Result (Movei,j, S1) = S2 Here we are using the notation Movei,j to indicate the
action of moving from room i to room j. Hence, if the current situation is S1, and the robot
carries out the action of moving from room 1 to room 2, this will result in situation S2.
 A number of rules are needed to describe the effects of actions. These rules are known as
effect axioms. For example, we might have the following effect axiom:

 This effect axiom states the following rule: If the robot is in a room, y, and an object x is also
in that room, then if the robot carries out a Take action, this will result in a new situation in
which the robot has object x. We might want to further refine this axiom, by ensuring that x
is the kind of object that the robot can carry—for example, by stating that it must be light
enough and small enough to carry and that it must not be fixed down.

Вам также может понравиться