Go backward to The Problem Space Computational Model.
Go up to The Problem Space Computational Model.
Go forward to Implementing PSCM functions.
PSCM functions
--------------
1. Goals:
* Proposing, comparing and selecting a goal. Whenever progress
cannot be made on the current goal, a subgoal can be created, so
that the lack of progress can itself be considered a problem to be
solved. In Soar, goals arise only from impasses in carrying out
the other problem space functions. Because of the nature of
impasses, a goal can have only a single subgoal. A subgoal can
itself have a subgoal, but there is never any need to compare or
select goals.
* Refining the information available about the current goal.
A
goal arises in the context of some other problem solving, such as
trying to select or apply an operator. New structures that are
refinements of the current situation can be added to the goal. The
refinements might be combinations of existing information or
recollections of prior knowledge that relates to the cause of the
impasse. For example, if the goal is to apply an operator that
creates a structure with block A on top of block B, it should be
possible to add information that A does not have another block on
top of it (i.e., that block A is clear).
* Terminating a goal. The system must recognize when a problem
space's current state achieves the current goal. In Soar, goals
are created because of impasses in performing PSCM functions. When
these impasses are resolved, the subgoal will be automatically
terminated. Therefore, goals based on different types of impasses
will be terminated in different ways. For example, if an impasse
arises because an operator cannot be directly applied, the goal's
termination will correspond to the successful application of the
operator. If an impasse arises because there is insufficient
knowledge to distinguish between a set of operators, the goal's
termination will correspond to the selection of an operator.
Therefore, a test for goal achievement or failure is not an
independent PSCM function, but instead is embodied in the PSCM
function that gave rise to the subgoal.
2. Problem Spaces:
* Proposing, comparing, and selecting a problem space
for the goal.
Many different problem spaces may be appropriate for
a given goal. Knowledge can be used to propose different problem
spaces, compare them, and select the one most appropriate for the
current goal. If a problem space is selected and found to be
inadequate, it must be possible to select another problem space.
Only a single problem space may be used for a goal at one time.
* Refining the information available about the current problem space.
Once
a problem space is proposed or selected, it may be specialized to
the current goal. A problem space may also have refinements that
are explicit descriptions of important invariants that hold in the
states or operators of the problem space. For example, a general
problem space for manipulating blocks may be specialized if all
blocks are cubes of the same size. Once it is specialized, the
problem space may be augmented with additional information, such as
that it doesn't matter which way a block is oriented when it is
stacked.
3. States:
* Proposing, comparing and selecting an initial state.
The initial state of a problem is the starting situation from which
progress will begin. It will usually be based on the sensory
information available from the environment, the local problem
solving context (the goal and problem space), and permanent
knowledge relevant in the context. Different initial states are
possible depending on what knowledge is relevant to the problem, as
well as which representations are most appropriate for the states.
Only a single initial state can be selected.
* Refining the information available about the current state.
Once a state is selected, additional knowledge may exist to augment
its description with the refinements of the current situation. For
example, if the current state contains information that block A is
of height 2 and block B is of height 4, the state could be
augmented with knowledge that block B is twice the height of block
A.
4. Operators:
* Proposing, comparing and selecting an operator. One of the most
important decisions in problem solving is selecting which operator
to apply next. This includes proposing the available operators,
comparing them, and selecting the best one, given the available
knowledge. As part of proposing an operator, it may be necessary
to *instantiate* the operator with data from the current state. A
single operator can be instantiated with different components of
the state, leading to the proposal of multiple specific operators.
For example, a generic operator to move a block may be instantiated
with each block in the environment, leading to many different
specific operators from which to choose. Only a single operator
can be selected at any time. As will be explained later, this does
not constrain Soar to carry out one external action at a time, as a
single operator can involve many actions.
* Refining the information available about the current operator.
Once an operator has been selected, it may be further instantiated
with specific information from the state. For example, once an
operator is selected to move a block, the operator might be
augmented with a description of the block's exact location and
destination. This information may have been unnecessary for
determining which operator to select.
* Applying an operator to a state. A selected operator generates a
new state by making persistent modifications to the current state.
Some of these changes may result in motor command that will
indirectly change the state through perception.
One component of applying an operator is detecting that the
operator is terminated. In most cases, detecting that an operator
is finished is independent of how the operator was actually
applied. For an operator that changes only an internal state,
termination can be signaled as soon as the change is made.
However, if the operator involves changes that are problematic, a
separate test may be required to signal termination. For example,
if a robot has an operator to pick up blocks, that operator would
terminate only through the testing of feedback from the
environment.
Missing from these descriptions of the PSCM are functions for input, output,
and learning. In this formulation, input occurs asynchronously in the
current state of the problem space for interacting with the external
environment. No PSCM function is required, it just happens. Output occurs
as part of operator application in the current state of the problem space for
interacting with the external environment. In this formulation, learning is
not a PSCM function, but instead a property of the underlying symbol-level
architecture.