We start with a new example for simplicity that motivates our choice of representation. Consider the task of coordinating a collection of rovers as they explore the environment around a lander on Mars. This exploration takes the form of visiting different locations and making observations. Each traversal between locations follows established paths to minimize effort and risk. These paths combine to form a network like the one mapped out in Figure 10, where vertices denote distinguished locations, and edges denote allowed paths. Thinner edges are harder to traverse, and labeled points have associated observation goals. While some paths are over hard ground, others are over loose sand where traversal is harder since a rover can slip.
Figure 11 gives an example of an abstract task. Imagine a rover that wants to make an early morning trip from point to point on the example map. During this trip the sun slowly rises above the horizon giving the rover the ability to progressively use soak rays tasks to provide more solar power (a non-consumable resource3) to motors in the wheels. In addition to collecting photons, the morning traverse moves the rover, and the resultant go tasks require path dependent amounts of power. While a rover traveling from point to point can take any number of paths, the shortest three involve following one, two, or three steps.
A summarized resource usage consists of ranges of potential resource usage amounts during and after performing an abstract task, and we represent this summary information for a plan on a resource using the structure where the resource's local usage occurs within 's execution, and the persistent usage represents the usage that lasts after the execution terminates for consumable resources.
The context for Definition 12 is the set of all histories where the value of is 0 in the initial state, and only contains the execution of and its subexecutions. Thus, the term is the combined usage of at time of all executions in the hierarchy as defined in Section 2.4. So, the maximum of the is the highest among all histories of the lowest point of usage during 's execution. The usage ranges capture the multiple possible usage profiles of a task with multiple decomposition choices and timing choices among loosely constrained subtasks. For example, the high path task has a [4,4],[6,6],[0,0] summary power use over a 40 minute interval. In this case the ranges are single points due to no uncertainty - the task simply uses 4 watts for 15 minutes followed by 6 watts for 25 minutes. The (A,B) task provides a slightly more complex example due to its decompositional uncertainty. This task has a [0,4],[4,6],[0,0] summary power use over a 50 minute interval. In both cases the is [0,0] because solar power is a non-consumable resource.
As an example of reasoning with resource usage summaries, suppose that only 3 watts of power were available during a (A,B) task. Given the [4,6] , we know that there is not enough power no matter how the task is decomposed. Raising the available power to 4 watts makes the task executable depending on how it gets decomposed and scheduled, and raising to 6 or more watts makes the task executable for all possible decompositions.
This representation of abstract (or uncertain) metric resource usage can be seen as an extension of tracking optimistic and pessimistic resource levels [Drabble TateDrabble Tate1994]. Computing only the upper and lower bounds on resource usage for an abstract plan gives some information about whether lower or upper bound constraints on a resource may, must, or must not be violated, but it is not complete. By representing upper and lower bounds as ranges of these bounds over all potential histories, we can certainly know whether bounds may, must, or must not be violated over all histories. For the example above, if we only tracked one range for the local usage, [0,6], we would not know that there is definitely a conflict when only 3 watts are available. Knowing this extra information can avoid exploration of an infeasible search space.