Chapter Contents |
Previous |
Next |
The CPM Procedure |
The RESOURCEOUT= data set (referred to as the Usage data set) contains information about the resource usage for the resources specified in the RESOURCE statement. The options ALL, AVPROFILE, ESPROFILE, LSPROFILE, and RCPROFILE (each is discussed earlier in the "RESOURCE Statement" section) control the number of variables that are to be created in this data set. The ROUTINTERVAL= and ROUTINTPER= options control the number of observations that this data set is to contain. Of the options controlling the number of variables, AVPROFILE and RCPROFILE are allowed only if the procedure is used to obtain a resource-constrained schedule. The Usage data set always contains a variable named _TIME_ that specifies the date for which the resource usage or availability in the observation is valid. For each of the variables specified in the RESOURCE statement, one, two, three, or four new variables are created depending on how many of the four possible options (AVPROFILE, ESPROFILE, LSPROFILE, and RCPROFILE) are in effect. If none of these four options is specified, the ALL option is assumed to be in effect. Recall that the ALL option is equivalent to specifying ESPROFILE and LSPROFILE when PROC CPM is used to obtain an unconstrained schedule, and it is equivalent to specifying all four options when PROC CPM is used to obtain a resource-constrained schedule.
The new variables are named according to the following convention:
The suffix is the name of the resource variable if the name is less than the maximum possible variable length (which is dependent on the VALIDVARNAME option). If the length of the name is equal to this maximum length, the suffix is formed by deleting the character following the (n/2)th position. The user must ensure that this naming convention results in unique variable names in the Usage data set.
The ROUTINTERVAL=routinterval and ROUTINTPER=routintper options specify that two successive values of the _TIME_ variable differ by routintper number of routinterval units, measured with respect to a specific calendar. If the routinterval is not specified, PROC CPM chooses a default value depending on the format of the start and finish variables in the Schedule data set. The value of routinterval is indicated in a message written to the SAS log.
The MINDATE=mindate and MAXDATE=maxdate options specify the minimum and maximum values of the _TIME_ variable, respectively. Thus, the Usage data set has observations containing the resource usage information from mindate to maxdate with the time interval between the values of the _TIME_ variable in two successive observations being equal to routintper units of routinterval, measured with respect to a specific calendar. For example, if routinterval is MONTH and routintper is 3, then the time interval between successive observations in the Usage data set is three months. The calendar used for incrementing the _TIME_ variable is specified using the AROUTCAL= or NROUTCAL= options according as the calendars for the project are specified using alphanumeric or numeric values, respectively. In the absence of either of these specifications, the default calendar is used. For example, if the default calendar follows a five-day work week and ROUTINTERVAL=DAY, the Usage data set will not contain observations corresponding to Saturdays and Sundays. You can also use the ROUTNOBREAK option to indicate that there should be no breaks in the _TIME_ values due to breaks or holidays.
By default, each observation in the Resource Usage data set indicates the rate of resource usage per unit routinterval at the start of the time interval specified in the _TIME_ variable. Note that replenishable resources are assumed to be tied to an activity during any of the activity's breaks or holidays that fall in the course of the activity's duration. For consumable resources, you can use the CUMUSAGE option to obtain cumulative usage of the resource, instead of daily rate of usage. Often, it is more useful to obtain cumulative usage for consumable resources. You can use the TOTUSAGE option on the RESOURCE statement to get the total resource usage for each resource within each time period. If you wish to obtain both the rate of usage and the total usage for each time period, use the APPEND option on the RESOURCE statement.
The following example illustrates the default interpretation of the new variables.
Suppose that for the data given earlier (see the "Specifying Resource Requirements" section), activities `A' and `B' have S_START equal to 1JUL92 and 5JUL92, respectively. If the RESOURCE statement has the options AVPROFILE and RCPROFILE, the Usage data set has these five variables, _TIME_, RWORKERS, AWORKERS, RBRICKS, and ABRICKS. Suppose further that routinterval is DAY and routintper is 1. The Usage data set contains the following observations:
_TIME_ RWORKERS AWORKERS RBRICKS ABRICKS 1JUL92 0 0 100 1000 2JUL92 0 0 100 900 3JUL92 0 0 100 800 4JUL92 0 0 100 700 5JUL92 2 2 100 600 6JUL92 2 2 0 500 7JUL92 2 2 0 500 8JUL92 2 2 0 500 9JUL92 0 4 0 1000
On each day of activity A's duration, the resource BRICKS is consumed at the rate of 100 bricks per day. At the beginning of the first day (July 1, 1992), all 1000 bricks are still available. Note that each day the availability drops by 100 bricks, which is the rate of consumption. On July 5, activity `B' is scheduled to start. On the four days starting with July 5, the value of RWORKERS is `2', indicating that 2 workers are used on each of those days leaving an available supply of 2 workers (AWORKERS is equal to `2' on all 4 days).
If ROUTINTPER is set to 2, and the CUMUSAGE option is used, then the observations would be as follows:
_TIME_ RWORKERS AWORKERS RBRICKS ABRICKS 1JUL92 0 0 0 1000 3JUL92 0 0 200 800 5JUL92 2 2 400 600 7JUL92 2 2 500 500 9JUL92 0 4 500 1000
Note that the value of RBRICKS indicates the cumulative usage of the resource BRICKS through the beginning of the date specified by the value of the variable _TIME_ in each observation. That is why, for example, RBRICKS = 0 on 1JUL92 and not 200. If the procedure uses supplementary levels of resources, then, on a day when supplementary levels of resources were used through the beginning of the day, the value for the availability profile for the relevant resources would be negative. The absolute magnitude of this value would denote the amount of supplementary resource that was used through the beginning of the day. For instance, if ABRICKS is `-100' on 11JUL92, it would indicate that 100 bricks from the supplementary reservoir were used through the end of July 10, 1992. See Example 2.16, "Using Supplementary Resources," and Example 2.17, "Use of the INFEASDIAGNOSTIC Option." If, for the same data, ROUTINTPER is 2, and the APPEND option is specified, the Usage data set would contain two sets of observations, the first indicating the rate of resource usage per day, and the second set indicating the product of the rate and the time interval between two succesive observations. The observations (five in each set) would be as follows:
_TIME_ OBS_TYPE RWORKERS RBRICKS 01JUL92 RES_RATE 0 100 03JUL92 RES_RATE 0 100 05JUL92 RES_RATE 2 100 07JUL92 RES_RATE 2 0 09JUL92 RES_RATE 0 0 01JUL92 RES_USED 0 200 03JUL92 RES_USED 0 200 05JUL92 RES_USED 4 100 07JUL92 RES_USED 4 0 09JUL92 RES_USED 0 0
Chapter Contents |
Previous |
Next |
Top |
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.