The Resource Usage operator typifies the behaviour of the more complex operators in the Knowledge network. The Usage operator has several connections that carry ranges, and must respond to changes in those ranges.
The Usage operator is connected to the start time, duration and finish time for the task, the connections providing the information needed for fragmentation if this is allowed for the particular task. It also has connections to a Resource, a Resource Intensity, a Start Hint, and a Calendar. Ranges of values may be present on the Start, Finish, Duration, Intensity, and Start Hint input/outputs. The Intensity and Duration connections may be linked together through an ELASTIC operator to give the effect of duration elasticity, a low resource intensity forcing a longer duration, and vice versa.
Either the Duration or Intensity ranges may include zero, allowing resource use to be turned off (effectively making the task disappear). Several Usages of the one resource may be strung together on the same task to model complex resource loading. The Resource Intensity may include positive and negative values, the Usage potentially able to operate as a source or sink of resource. During scheduling, logical conditions may force one or the other condition, or it may still be unresolved at the completion of scheduling, implying that there was adequate resource elsewhere in the plan.
The Start Hint is used to indicate where in the Start Time range the most preferred starting point would be, as early as possible to maximise time for completion, as late as possible to maximise availability, as late as possible while preserving a safety zone, etc. The Hint controls the probability used when booking resources. As the Start Time range moves around, the Hint also changes, requiring continual rebooking of resources for the usage.
A hard booking by some other Usage on another activity may force the particular Usage to relinquish some of its tentative bookings, and it responds to this by cutting the range of its Start Time, and propagating the range out of the Start Time connection. It also forces other usages on the same activity to relinquish their bookings. If this Usage is to be hard booked, a singular value will come in on the Start Time connection, or the available duration is only just available between Start and Finish for fragmentable activities. The Usage will undo tentative bookings outside the range, and, if there is no zero in either the Duration or Intensity ranges, "bump" any other Usages which have tentative bookings affected by the hard booking. The bumped usages bump other usages, so a single hard booking can lead to a cascade of effects. The mechanism inside the operator is busy maintaining consistency among the various ranges as the ranges fragment, and the available resource fragments.