Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The CPM Procedure

Example 2.16: Using Supplementary Resources

In this example, the same project as in Example 2.15 is scheduled with a specification of DELAY=0. This indicates to PROC CPM that a supplementary level of resources is to be used if an activity cannot be scheduled to start on or before its latest start time (as computed in the unconstrained case). The schedule data and resource usage data are saved in the data sets WIDGO16 and WIDGRO16, respectively. They are displayed in Output 2.16.1 and Output 2.16.2, respectively.

   title 'Using Supplementary Resources';
   proc cpm date='02dec91'd interval=weekday
            data=widgres holidata=holdata resin=widgrin
            out=widgo16 resout=widgro16;
      tailnode tail;
      duration days;
      headnode head;
      holiday hol;
      resource engineer engcost / period=per obstype=otype
                                  cumusage
                                  delay=0
                                  delayanalysis
                                  routnobreak;
      id task;
      run;

To analyze the results of the resource constrained scheduling, you must examine both output data sets, WIDGRO16 and WIDGO16. The negative values for Aengineer in observation numbers 22 through 25 of the Usage data set WIDGRO16 indicate the amount of supplementary resource that is needed on December 23, 24, 25, and 26, to allow the project to be completed without delaying any activity beyond its latest start time. Examination of the SUPPL_R variable in the Schedule data set WIDGO16 indicates that the activity, `Prototype', is scheduled to start on December 23 by using a supplementary level of the resource engineer.

Note that the supplementary level is used only if the activity would otherwise get delayed beyond L_START + DELAY. Thus, the activity `Anal. Market' is delayed by five days (S_START = `16DEC91') and scheduled later than its early start time (E_START = `09DEC91'), even though a supplementary level of the resource could have been used to start the activity earlier, because the activity's L_START time is equal to `22JAN92' and DELAY = 0.

Further, note the use of the option CUMUSAGE in the RESOURCE statement, requesting that cumulative resource usage be saved in the Usage data set for consumable resources. Thus, for the consumable resource engcost, the procedure saves the cumulative resource usage in the variables Eengcost, Lengcost, and Rengcost, respectively. For instance, Eengcost in a given observation specifies the cumulative value of engcost for the early start schedule through the end of the previous day.

Output 2.16.1: Resource-Constrained Schedule: Supplementary Resource

Using Supplementary Resources
Resource Constrained Schedule

Obs tail head days task engineer engcost S_START S_FINISH E_START E_FINISH L_START L_FINISH R_DELAY DELAY_R SUPPL_R
1 1 2 5 Approve Plan 2 400 02DEC91 06DEC91 02DEC91 06DEC91 02DEC91 06DEC91 0    
2 2 3 10 Drawings 1 200 09DEC91 20DEC91 09DEC91 20DEC91 09DEC91 20DEC91 0    
3 2 4 5 Anal. Market 1 200 16DEC91 20DEC91 09DEC91 13DEC91 22JAN92 28JAN92 5 engineer  
4 2 3 5 Write Specs 2 400 09DEC91 13DEC91 09DEC91 13DEC91 16DEC91 20DEC91 0    
5 3 5 15 Prototype 4 800 23DEC91 14JAN92 23DEC91 14JAN92 23DEC91 14JAN92 0   engineer
6 4 6 10 Mkt. Strat. . . 23DEC91 07JAN92 16DEC91 30DEC91 29JAN92 11FEB92 0    
7 5 7 10 Materials . . 15JAN92 28JAN92 15JAN92 28JAN92 15JAN92 28JAN92 0    
8 5 7 10 Facility 2 400 15JAN92 28JAN92 15JAN92 28JAN92 15JAN92 28JAN92 0    
9 7 8 10 Init. Prod. 4 800 29JAN92 11FEB92 29JAN92 11FEB92 29JAN92 11FEB92 0    
10 8 9 10 Evaluate 1 200 12FEB92 25FEB92 12FEB92 25FEB92 19FEB92 03MAR92 0    
11 6 9 15 Test Market . . 12FEB92 03MAR92 12FEB92 03MAR92 12FEB92 03MAR92 0    
12 9 10 5 Changes 2 400 04MAR92 10MAR92 04MAR92 10MAR92 04MAR92 10MAR92 0    
13 10 11 0 Production 4 800 11MAR92 11MAR92 11MAR92 11MAR92 11MAR92 11MAR92 0    
14 6 12 0 Marketing . . 12FEB92 12FEB92 12FEB92 12FEB92 11MAR92 11MAR92 0    
15 8 6 0 Dummy . . 12FEB92 12FEB92 12FEB92 12FEB92 12FEB92 12FEB92 0    


This example also illustrates the use of the ROUTNOBREAK option to produce a resource usage output data set that does not have any breaks for holidays. Thus, the output data set WIDGRO16 has observations corresponding to holidays and weekends, unlike the corresponding resource output data sets in Example 2.15. Note that for consumable resources with cumulative usage there is no accumulation of the resource on holidays; thus, the cumulative value of engcost at the beginning of the 8th and 9th of December equals the value for the beginning of the 7th of December. For the resource engineer, however, the resource is assumed to be tied to the activity in progress even across holidays or weekends that are spanned by the activity's duration. For example, both activities `Drawings' and `Write Specs' start on December 9, 1991, requiring one and two engineers, respectively. The `Write Specs' activity finishes on the 13th, freeing up two engineers, whereas `Drawings' finishes only on the 20th of December. Thus, the data set WIDGRO16 has Rengineer equal to `3' from 9DEC91 to 13DEC91 and then equal to `1' on the 14th and 15th of December. Another engineer is required by the activity `Anal. Market' from December 16, 1991; thus the total usage from 16DEC91 to 20DEC91 is 2.

Output 2.16.2: Resource Usage: Supplementary Resources

Using Supplementary Resources
Usage Profiles for Constrained Schedule

Obs _TIME_ Eengineer Lengineer Rengineer Aengineer Eengcost Lengcost Rengcost Aengcost
1 02DEC91 2 2 2 1 0 0 0 40000
2 03DEC91 2 2 2 1 400 400 400 39600
3 04DEC91 2 2 2 1 800 800 800 39200
4 05DEC91 2 2 2 1 1200 1200 1200 38800
5 06DEC91 2 2 2 1 1600 1600 1600 38400
6 07DEC91 0 0 0 3 2000 2000 2000 38000
7 08DEC91 0 0 0 3 2000 2000 2000 38000
8 09DEC91 4 1 3 0 2000 2000 2000 38000
9 10DEC91 4 1 3 0 2800 2200 2600 37400
10 11DEC91 4 1 3 0 3600 2400 3200 36800
11 12DEC91 4 1 3 0 4400 2600 3800 36200
12 13DEC91 4 1 3 0 5200 2800 4400 35600
13 14DEC91 1 1 1 2 6000 3000 5000 35000
14 15DEC91 1 1 1 2 6000 3000 5000 35000
15 16DEC91 1 3 2 1 6000 3000 5000 35000
16 17DEC91 1 3 2 1 6200 3600 5400 34600
17 18DEC91 1 3 2 1 6400 4200 5800 34200
18 19DEC91 1 3 2 1 6600 4800 6200 33800
19 20DEC91 1 3 2 1 6800 5400 6600 33400
20 21DEC91 0 0 0 3 7000 6000 7000 33000
21 22DEC91 0 0 0 3 7000 6000 7000 33000
22 23DEC91 4 4 4 -1 7000 6000 7000 33000
23 24DEC91 4 4 4 -1 7800 6800 7800 32200
24 25DEC91 4 4 4 -1 8600 7600 8600 31400
25 26DEC91 4 4 4 -1 8600 7600 8600 31400
26 27DEC91 4 4 4 0 9400 8400 9400 30600
27 28DEC91 4 4 4 0 10200 9200 10200 29800
28 29DEC91 4 4 4 0 10200 9200 10200 29800
29 30DEC91 4 4 4 0 10200 9200 10200 29800
30 31DEC91 4 4 4 0 11000 10000 11000 29000
31 01JAN92 4 4 4 0 11800 10800 11800 28200
32 02JAN92 4 4 4 0 11800 10800 11800 28200
33 03JAN92 4 4 4 0 12600 11600 12600 27400
34 04JAN92 4 4 4 0 13400 12400 13400 26600
35 05JAN92 4 4 4 0 13400 12400 13400 26600
36 06JAN92 4 4 4 0 13400 12400 13400 26600
37 07JAN92 4 4 4 0 14200 13200 14200 25800
38 08JAN92 4 4 4 0 15000 14000 15000 25000
39 09JAN92 4 4 4 0 15800 14800 15800 24200
40 10JAN92 4 4 4 0 16600 15600 16600 23400
41 11JAN92 4 4 4 0 17400 16400 17400 22600
42 12JAN92 4 4 4 0 17400 16400 17400 22600
43 13JAN92 4 4 4 0 17400 16400 17400 22600
44 14JAN92 4 4 4 0 18200 17200 18200 21800
45 15JAN92 2 2 2 2 19000 18000 19000 21000
46 16JAN92 2 2 2 2 19400 18400 19400 20600
47 17JAN92 2 2 2 2 19800 18800 19800 20200
48 18JAN92 2 2 2 2 20200 19200 20200 19800
49 19JAN92 2 2 2 2 20200 19200 20200 19800
50 20JAN92 2 2 2 2 20200 19200 20200 19800
51 21JAN92 2 2 2 2 20600 19600 20600 19400
52 22JAN92 2 3 2 2 21000 20000 21000 19000
53 23JAN92 2 3 2 2 21400 20600 21400 18600
54 24JAN92 2 3 2 2 21800 21200 21800 18200
55 25JAN92 2 3 2 2 22200 21800 22200 17800
56 26JAN92 2 3 2 2 22200 21800 22200 17800
57 27JAN92 2 3 2 2 22200 21800 22200 17800
58 28JAN92 2 3 2 2 22600 22400 22600 17400
59 29JAN92 4 4 4 0 23000 23000 23000 17000
60 30JAN92 4 4 4 0 23800 23800 23800 16200
61 31JAN92 4 4 4 0 24600 24600 24600 15400
62 01FEB92 4 4 4 0 25400 25400 25400 14600
63 02FEB92 4 4 4 0 25400 25400 25400 14600
64 03FEB92 4 4 4 0 25400 25400 25400 14600
65 04FEB92 4 4 4 0 26200 26200 26200 13800
66 05FEB92 4 4 4 0 27000 27000 27000 13000
67 06FEB92 4 4 4 0 27800 27800 27800 12200
68 07FEB92 4 4 4 0 28600 28600 28600 11400
69 08FEB92 4 4 4 0 29400 29400 29400 10600
70 09FEB92 4 4 4 0 29400 29400 29400 10600
71 10FEB92 4 4 4 0 29400 29400 29400 10600
72 11FEB92 4 4 4 0 30200 30200 30200 9800
73 12FEB92 1 0 1 3 31000 31000 31000 9000
74 13FEB92 1 0 1 3 31200 31000 31200 8800
75 14FEB92 1 0 1 3 31400 31000 31400 8600
76 15FEB92 1 0 1 3 31600 31000 31600 8400
77 16FEB92 1 0 1 3 31600 31000 31600 8400
78 17FEB92 1 0 1 3 31600 31000 31600 8400
79 18FEB92 1 0 1 3 31800 31000 31800 8200
80 19FEB92 1 1 1 3 32000 31000 32000 8000
81 20FEB92 1 1 1 3 32200 31200 32200 7800
82 21FEB92 1 1 1 3 32400 31400 32400 7600
83 22FEB92 1 1 1 3 32600 31600 32600 7400
84 23FEB92 1 1 1 3 32600 31600 32600 7400
85 24FEB92 1 1 1 3 32600 31600 32600 7400
86 25FEB92 1 1 1 3 32800 31800 32800 7200
87 26FEB92 0 1 0 4 33000 32000 33000 7000
88 27FEB92 0 1 0 4 33000 32200 33000 7000
89 28FEB92 0 1 0 4 33000 32400 33000 7000
90 29FEB92 0 1 0 4 33000 32600 33000 7000
91 01MAR92 0 1 0 4 33000 32600 33000 7000
92 02MAR92 0 1 0 4 33000 32600 33000 7000
93 03MAR92 0 1 0 4 33000 32800 33000 7000
94 04MAR92 2 2 2 2 33000 33000 33000 7000
95 05MAR92 2 2 2 2 33400 33400 33400 6600
96 06MAR92 2 2 2 2 33800 33800 33800 6200
97 07MAR92 2 2 2 2 34200 34200 34200 5800
98 08MAR92 2 2 2 2 34200 34200 34200 5800
99 09MAR92 2 2 2 2 34200 34200 34200 5800
100 10MAR92 2 2 2 2 34600 34600 34600 5400
101 11MAR92 0 0 0 4 35000 35000 35000 5000

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.