Decision Cycle

Decision Procedure

The first half of the Soar decision cycle, elaboration, added preferences and objects to working memory monotonically. The decision procedure's function is to propose a change to the context slot based upon these preferences.

The semantics of the preference language is simple. A decision must be acceptable to be considered. A rejected decision will not be chosen, regardless. When there is a preference for one decision over another, that decision will always be chosen before the other. Similarly, when a decision is worse than another, the other will always be chosen over it. Absolute preferences represent the extremes in the partial ordering of decisions. Indifferent decisions may be chosen arbitrarily.

When a decision is made, the context stack is updated with the value determined by the decision procedure (and any working memory elements associated with the previous context slot and any contexts below the one being replaced are removed as well. A new decision phase then begins. Preferences that do not result in unambiguous decisions cause an impasse, resulting in the creation of a subgoal to resolve the ambiguity in the preferences. A new decision cycle begins here as well but with a new goal on the context stack.

The decision procedure is designed with an explicit ordering to reduce to number of possible impasses that may be generated. First, any change at a level higher (closest to the top goal) than another is considered to have a better preference. This is because subgoals are generated when impasses arise and any impasse that can be resolved higher in the goal represents a larger step toward the top goal. The slots of the context stack have an explicit order as well; problem space changes have greater preference than do state changes which, in turn, have greater preference than operator proposals.

The operation of the decision procedure is completely unconstrained -- any of the appropriate decisions (described in Problem Spaces) can be made at any time for any member of the context stack. This means that all the knowledge to make decisions must be embedded in the productions of long-term memory since the decision procedure simply interprets the available knowledge to make a decision.


To return, press HOME. To go to the next document, press NEXT.