next up previous
Next: Evaluation Up: Discussion of Main Previous: Optimization

Modified Recursive Descent Algorithm

The background algorithm at work in this system is a recursive descent planner. It traverses the input tree, at each node picks one rule, instantiates it, and moves on to the next node in a depth-first manner. If a situation is ever encountered where a node has no rules left, backtracking occurs.

This is a modified recursive descent algorithm in that it takes advantage of all of the above processes to reduce the search space, prevent backtracking, and automatically propagate constraints. As explained several times above, the algorithm works like this:

At each node, the first active rule is instantiatedgif. All of its island constraints are implemented, effectively failing all the rules that conflict with it. At this point, the soundness and island conditions of each of the nodes that had rules failed is checked and acted upon, which in turn may fail other rules, etc.. When equilibrium is reached, the next node in the tree is visited in a depth-first traversal.

There are two exceptions to this general mode of operation. First, if the node is already an island, nothing needs to be done. This is true because all of the island constraints were implemented at the time the node first became an islandgif. Secondly, if as a result of instantiating the rule (and the subsequent island and soundness processing) a node in the tree has all of its rules failedgif, then backtracking commences. If there are other rules in this node, they are tried. If all the rules in this node lead to failure, then we backtrack up to the previous node, and try the next rule there.

It should be noted that backtracking is minimized by the system. The soundness and island processing work to eliminate conflicting sets of rules without the need to try them out, fail, and backtrack. Also, the optimizing techniques identify all of the nodes that must be failed every time a rule is instantiated. Thus, it is not necessary to traverse the tree down to where the failure occurs in order to detect the failure. This eliminates much of the wasted processing associated with backtracking.



next up previous
Next: Evaluation Up: Discussion of Main Previous: Optimization



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