next up previous
Next: Issues in Contingency Up: Algorithm Previous: Resolving Threats to

Establishing Open Conditions

Figure 15 shows the procedure used. Procedure EstablishPre shows the methods of adding a new step and reusing an existing step; they are essentially the methods used in UCPOP extended to reflect the need to check and propagate contingency labels.

Procedure EstablishUnk shows methods of adding a new decision and reusing an existing decision that are specific to Cassandra. The issues involved were discussed in Section 4.2.

Establish(Plan, Open)

  1. If the open condition is not of type :unknown do EstablishPre(Plan, Open) and return the resulting list of plans;
  2. If the open condition is of type :unknown with source of uncertainty Uncertainty and outcome Outcome do EstablishUnk(Plan, Open, Uncertainty, Outcome) and return the resulting list of plans.
EstablishPre(Plan, Open)
  1. Initialize list NewPlans;
  2. For each effect Eff resulting from a step Step in Plan
    If Eff can occur in every contingency in which Open must be established
    and if Eff can precede the step SupStep that Open is required to support
    and if there is a postcondition EffCond of Eff that can unify with condition Cond that Open is required to establish:
  3. For each operator with an effect Eff with a postcondition EffCond that can unify with Cond:
  4. For each plan in NewPlans:
  5. Return NewPlans.
EstablishUnk(Plan, Open, Uncertainty, Outcome)
  1. Initialize list NewCPlans;
  2. If Uncertainty is a new source of uncertainty in the plan:
  3. If Uncertainty is an existing source of uncertainty in the plan:
  4. For each plan in NewCPlans:
  5. Return NewCPlans.

Figure 15: Establishing open conditions



next up previous
Next: Issues in Contingency Up: Algorithm Previous: Resolving Threats to

Louise Pryor <louisep@aisb.ed.ac.uk>;
Last modified: Mon Mar 18 17:42:23 1996