next up previous
Next: BEST-ANSWER: Up: Project Walk-Through Previous: FOLLOWING INITIAL RULE

MODIFIED RECURSIVE DESCENT:

Now the modified recursive descent processor takes over. I stress the word ``modified'' because its operation is greatly enhanced by the continued use of the soundness (need-based) and island-processing behavior described above. At each node in the recursive descentgif, one of the remaining rules is chosen, and the others failed. This, in effect, makes an artificial island out of the node, and its island constraints can be implemented. Every time a rule is failed, the soundness of other rules that depend on it is checked, and the effected node's island status determined and acted upon.

It should also be noted that, if at any point, the above processes cause a node to have no valid rules remaining, that situation is immediately detected and backtracking is instigatedgif. This occurs at the node where the failures are propagated. In a ``normal'' planner (i.e. one without the dependency information available here), such a failure would not even be noticed until the failed node is reached in the recursive descent processing. This is because the effects of instantiating a rule on other rules is not known until the other nodes are reached and their preconditions analyzed. In practice, this might not happen until much wasted processing has occurred in between.

RELATION_19: no decision necessary
CLAUSE_28:
    eliminating rule 0 in CLAUSE_28
    rule 0 in CLAUSE_28 already failed
    eliminating rule 2 in CLAUSE_28
  making island in CLAUSE_28 rule 1
    APPLYING ISLAND CONSTRAINTS
      eliminating rule 0 in CLAUSE_28
      rule 0 in CLAUSE_28 already failed
%RECONCILE_1: no decision necessary
%JESUS_20: no decision necessary
%CREATURE-SET_6: no decision necessary
%GOD_15: no decision necessary
CLAUSE_31: no decision necessary
%DEATH_1:
    eliminating rule 1 in %DEATH_1
  making island in %DEATH_1 rule 0
    APPLYING ISLAND CONSTRAINTS
      no island constraints
%JESUS_21: no decision necessary
%CROSS: 
    eliminating rule 1 in %CROSS_1
  making island in %CROSS_1 rule 0
    APPLYING ISLAND CONSTRAINTS
      no island constraints



Steve Beale
Tue Oct 1 12:13:07 MDT 1996