The CPM Procedure |
In this example, the same project as in Example 4.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 4.16.1 and Output 4.16.2, respectively.
title 'Using Supplementary Resources'; proc cpm date='01dec03'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 22, 23, 24, and 25, to complete the project 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 22 by using a supplementary level of the resource engineer.
The supplementary level is used only if the activity would otherwise get delayed beyond L_START + DELAY. Thus, the activity 'Study Market' is delayed by five days (S_START = '15DEC03') and scheduled later than its early start time (E_START = '08DEC03'), 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 '21JAN04' 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.
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 | 01DEC03 | 05DEC03 | 01DEC03 | 05DEC03 | 01DEC03 | 05DEC03 | 0 | ||
2 | 2 | 3 | 10 | Drawings | 1 | 200 | 08DEC03 | 19DEC03 | 08DEC03 | 19DEC03 | 08DEC03 | 19DEC03 | 0 | ||
3 | 2 | 4 | 5 | Study Market | 1 | 200 | 15DEC03 | 19DEC03 | 08DEC03 | 12DEC03 | 21JAN04 | 27JAN04 | 5 | engineer | |
4 | 2 | 3 | 5 | Write Specs | 2 | 400 | 08DEC03 | 12DEC03 | 08DEC03 | 12DEC03 | 15DEC03 | 19DEC03 | 0 | ||
5 | 3 | 5 | 15 | Prototype | 4 | 800 | 22DEC03 | 13JAN04 | 22DEC03 | 13JAN04 | 22DEC03 | 13JAN04 | 0 | engineer | |
6 | 4 | 6 | 10 | Mkt. Strat. | . | . | 22DEC03 | 06JAN04 | 15DEC03 | 29DEC03 | 28JAN04 | 10FEB04 | 0 | ||
7 | 5 | 7 | 10 | Materials | . | . | 14JAN04 | 27JAN04 | 14JAN04 | 27JAN04 | 14JAN04 | 27JAN04 | 0 | ||
8 | 5 | 7 | 10 | Facility | 2 | 400 | 14JAN04 | 27JAN04 | 14JAN04 | 27JAN04 | 14JAN04 | 27JAN04 | 0 | ||
9 | 7 | 8 | 10 | Init. Prod. | 4 | 800 | 28JAN04 | 10FEB04 | 28JAN04 | 10FEB04 | 28JAN04 | 10FEB04 | 0 | ||
10 | 8 | 9 | 10 | Evaluate | 1 | 200 | 11FEB04 | 24FEB04 | 11FEB04 | 24FEB04 | 18FEB04 | 02MAR04 | 0 | ||
11 | 6 | 9 | 15 | Test Market | . | . | 11FEB04 | 02MAR04 | 11FEB04 | 02MAR04 | 11FEB04 | 02MAR04 | 0 | ||
12 | 9 | 10 | 5 | Changes | 2 | 400 | 03MAR04 | 09MAR04 | 03MAR04 | 09MAR04 | 03MAR04 | 09MAR04 | 0 | ||
13 | 10 | 11 | 0 | Production | 4 | 800 | 10MAR04 | 10MAR04 | 10MAR04 | 10MAR04 | 10MAR04 | 10MAR04 | 0 | ||
14 | 6 | 12 | 0 | Marketing | . | . | 11FEB04 | 11FEB04 | 11FEB04 | 11FEB04 | 10MAR04 | 10MAR04 | 0 | ||
15 | 8 | 6 | 0 | Dummy | . | . | 11FEB04 | 11FEB04 | 11FEB04 | 11FEB04 | 11FEB04 | 11FEB04 | 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 4.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 7th and 8th of December equals the value for the beginning of the 6th 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 8, 2003, requiring one and two engineers, respectively. The 'Write Specs' activity finishes on the 12th, freeing up two engineers, whereas 'Drawings' finishes only on the 19th of December. Thus, the data set WIDGRO16 has Rengineer equal to '3' from 8DEC03 to 12DEC03 and then equal to '1' on the 13th and 14th of December. Another engineer is required by the activity 'Study Market' from December 15, 2003; thus, the total usage from 15DEC03 to 19DEC03 is '2'.
Using Supplementary Resources |
Usage Profiles for Constrained Schedule |
O b s |
_ T I M E _ |
E e n g i n e e r |
L e n g i n e e r |
R e n g i n e e r |
A e n g i n e e r |
E e n g c o s t |
L e n g c o s t |
R e n g c o s t |
A e n g c o s t |
---|---|---|---|---|---|---|---|---|---|
1 | 01DEC03 | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 40000 |
2 | 02DEC03 | 2 | 2 | 2 | 1 | 400 | 400 | 400 | 39600 |
3 | 03DEC03 | 2 | 2 | 2 | 1 | 800 | 800 | 800 | 39200 |
4 | 04DEC03 | 2 | 2 | 2 | 1 | 1200 | 1200 | 1200 | 38800 |
5 | 05DEC03 | 2 | 2 | 2 | 1 | 1600 | 1600 | 1600 | 38400 |
6 | 06DEC03 | 0 | 0 | 0 | 3 | 2000 | 2000 | 2000 | 38000 |
7 | 07DEC03 | 0 | 0 | 0 | 3 | 2000 | 2000 | 2000 | 38000 |
8 | 08DEC03 | 4 | 1 | 3 | 0 | 2000 | 2000 | 2000 | 38000 |
9 | 09DEC03 | 4 | 1 | 3 | 0 | 2800 | 2200 | 2600 | 37400 |
10 | 10DEC03 | 4 | 1 | 3 | 0 | 3600 | 2400 | 3200 | 36800 |
11 | 11DEC03 | 4 | 1 | 3 | 0 | 4400 | 2600 | 3800 | 36200 |
12 | 12DEC03 | 4 | 1 | 3 | 0 | 5200 | 2800 | 4400 | 35600 |
13 | 13DEC03 | 1 | 1 | 1 | 2 | 6000 | 3000 | 5000 | 35000 |
14 | 14DEC03 | 1 | 1 | 1 | 2 | 6000 | 3000 | 5000 | 35000 |
15 | 15DEC03 | 1 | 3 | 2 | 1 | 6000 | 3000 | 5000 | 35000 |
16 | 16DEC03 | 1 | 3 | 2 | 1 | 6200 | 3600 | 5400 | 34600 |
17 | 17DEC03 | 1 | 3 | 2 | 1 | 6400 | 4200 | 5800 | 34200 |
18 | 18DEC03 | 1 | 3 | 2 | 1 | 6600 | 4800 | 6200 | 33800 |
19 | 19DEC03 | 1 | 3 | 2 | 1 | 6800 | 5400 | 6600 | 33400 |
20 | 20DEC03 | 0 | 0 | 0 | 3 | 7000 | 6000 | 7000 | 33000 |
21 | 21DEC03 | 0 | 0 | 0 | 3 | 7000 | 6000 | 7000 | 33000 |
22 | 22DEC03 | 4 | 4 | 4 | -1 | 7000 | 6000 | 7000 | 33000 |
23 | 23DEC03 | 4 | 4 | 4 | -1 | 7800 | 6800 | 7800 | 32200 |
24 | 24DEC03 | 4 | 4 | 4 | -1 | 8600 | 7600 | 8600 | 31400 |
25 | 25DEC03 | 4 | 4 | 4 | -1 | 9400 | 8400 | 9400 | 30600 |
26 | 26DEC03 | 4 | 4 | 4 | 0 | 9400 | 8400 | 9400 | 30600 |
27 | 27DEC03 | 4 | 4 | 4 | 0 | 10200 | 9200 | 10200 | 29800 |
28 | 28DEC03 | 4 | 4 | 4 | 0 | 10200 | 9200 | 10200 | 29800 |
29 | 29DEC03 | 4 | 4 | 4 | 0 | 10200 | 9200 | 10200 | 29800 |
30 | 30DEC03 | 4 | 4 | 4 | 0 | 11000 | 10000 | 11000 | 29000 |
31 | 31DEC03 | 4 | 4 | 4 | 0 | 11800 | 10800 | 11800 | 28200 |
32 | 01JAN04 | 4 | 4 | 4 | 0 | 12600 | 11600 | 12600 | 27400 |
33 | 02JAN04 | 4 | 4 | 4 | 0 | 12600 | 11600 | 12600 | 27400 |
34 | 03JAN04 | 4 | 4 | 4 | 0 | 13400 | 12400 | 13400 | 26600 |
35 | 04JAN04 | 4 | 4 | 4 | 0 | 13400 | 12400 | 13400 | 26600 |
36 | 05JAN04 | 4 | 4 | 4 | 0 | 13400 | 12400 | 13400 | 26600 |
37 | 06JAN04 | 4 | 4 | 4 | 0 | 14200 | 13200 | 14200 | 25800 |
38 | 07JAN04 | 4 | 4 | 4 | 0 | 15000 | 14000 | 15000 | 25000 |
39 | 08JAN04 | 4 | 4 | 4 | 0 | 15800 | 14800 | 15800 | 24200 |
40 | 09JAN04 | 4 | 4 | 4 | 0 | 16600 | 15600 | 16600 | 23400 |
41 | 10JAN04 | 4 | 4 | 4 | 0 | 17400 | 16400 | 17400 | 22600 |
42 | 11JAN04 | 4 | 4 | 4 | 0 | 17400 | 16400 | 17400 | 22600 |
43 | 12JAN04 | 4 | 4 | 4 | 0 | 17400 | 16400 | 17400 | 22600 |
44 | 13JAN04 | 4 | 4 | 4 | 0 | 18200 | 17200 | 18200 | 21800 |
45 | 14JAN04 | 2 | 2 | 2 | 2 | 19000 | 18000 | 19000 | 21000 |
46 | 15JAN04 | 2 | 2 | 2 | 2 | 19400 | 18400 | 19400 | 20600 |
47 | 16JAN04 | 2 | 2 | 2 | 2 | 19800 | 18800 | 19800 | 20200 |
48 | 17JAN04 | 2 | 2 | 2 | 2 | 20200 | 19200 | 20200 | 19800 |
49 | 18JAN04 | 2 | 2 | 2 | 2 | 20200 | 19200 | 20200 | 19800 |
50 | 19JAN04 | 2 | 2 | 2 | 2 | 20200 | 19200 | 20200 | 19800 |
51 | 20JAN04 | 2 | 2 | 2 | 2 | 20600 | 19600 | 20600 | 19400 |
52 | 21JAN04 | 2 | 3 | 2 | 2 | 21000 | 20000 | 21000 | 19000 |
53 | 22JAN04 | 2 | 3 | 2 | 2 | 21400 | 20600 | 21400 | 18600 |
54 | 23JAN04 | 2 | 3 | 2 | 2 | 21800 | 21200 | 21800 | 18200 |
55 | 24JAN04 | 2 | 3 | 2 | 2 | 22200 | 21800 | 22200 | 17800 |
56 | 25JAN04 | 2 | 3 | 2 | 2 | 22200 | 21800 | 22200 | 17800 |
57 | 26JAN04 | 2 | 3 | 2 | 2 | 22200 | 21800 | 22200 | 17800 |
58 | 27JAN04 | 2 | 3 | 2 | 2 | 22600 | 22400 | 22600 | 17400 |
59 | 28JAN04 | 4 | 4 | 4 | 0 | 23000 | 23000 | 23000 | 17000 |
60 | 29JAN04 | 4 | 4 | 4 | 0 | 23800 | 23800 | 23800 | 16200 |
61 | 30JAN04 | 4 | 4 | 4 | 0 | 24600 | 24600 | 24600 | 15400 |
62 | 31JAN04 | 4 | 4 | 4 | 0 | 25400 | 25400 | 25400 | 14600 |
63 | 01FEB04 | 4 | 4 | 4 | 0 | 25400 | 25400 | 25400 | 14600 |
64 | 02FEB04 | 4 | 4 | 4 | 0 | 25400 | 25400 | 25400 | 14600 |
65 | 03FEB04 | 4 | 4 | 4 | 0 | 26200 | 26200 | 26200 | 13800 |
66 | 04FEB04 | 4 | 4 | 4 | 0 | 27000 | 27000 | 27000 | 13000 |
67 | 05FEB04 | 4 | 4 | 4 | 0 | 27800 | 27800 | 27800 | 12200 |
68 | 06FEB04 | 4 | 4 | 4 | 0 | 28600 | 28600 | 28600 | 11400 |
69 | 07FEB04 | 4 | 4 | 4 | 0 | 29400 | 29400 | 29400 | 10600 |
70 | 08FEB04 | 4 | 4 | 4 | 0 | 29400 | 29400 | 29400 | 10600 |
71 | 09FEB04 | 4 | 4 | 4 | 0 | 29400 | 29400 | 29400 | 10600 |
72 | 10FEB04 | 4 | 4 | 4 | 0 | 30200 | 30200 | 30200 | 9800 |
73 | 11FEB04 | 1 | 0 | 1 | 3 | 31000 | 31000 | 31000 | 9000 |
74 | 12FEB04 | 1 | 0 | 1 | 3 | 31200 | 31000 | 31200 | 8800 |
75 | 13FEB04 | 1 | 0 | 1 | 3 | 31400 | 31000 | 31400 | 8600 |
76 | 14FEB04 | 1 | 0 | 1 | 3 | 31600 | 31000 | 31600 | 8400 |
77 | 15FEB04 | 1 | 0 | 1 | 3 | 31600 | 31000 | 31600 | 8400 |
78 | 16FEB04 | 1 | 0 | 1 | 3 | 31600 | 31000 | 31600 | 8400 |
79 | 17FEB04 | 1 | 0 | 1 | 3 | 31800 | 31000 | 31800 | 8200 |
80 | 18FEB04 | 1 | 1 | 1 | 3 | 32000 | 31000 | 32000 | 8000 |
81 | 19FEB04 | 1 | 1 | 1 | 3 | 32200 | 31200 | 32200 | 7800 |
82 | 20FEB04 | 1 | 1 | 1 | 3 | 32400 | 31400 | 32400 | 7600 |
83 | 21FEB04 | 1 | 1 | 1 | 3 | 32600 | 31600 | 32600 | 7400 |
84 | 22FEB04 | 1 | 1 | 1 | 3 | 32600 | 31600 | 32600 | 7400 |
85 | 23FEB04 | 1 | 1 | 1 | 3 | 32600 | 31600 | 32600 | 7400 |
86 | 24FEB04 | 1 | 1 | 1 | 3 | 32800 | 31800 | 32800 | 7200 |
87 | 25FEB04 | 0 | 1 | 0 | 4 | 33000 | 32000 | 33000 | 7000 |
88 | 26FEB04 | 0 | 1 | 0 | 4 | 33000 | 32200 | 33000 | 7000 |
89 | 27FEB04 | 0 | 1 | 0 | 4 | 33000 | 32400 | 33000 | 7000 |
90 | 28FEB04 | 0 | 1 | 0 | 4 | 33000 | 32600 | 33000 | 7000 |
91 | 29FEB04 | 0 | 1 | 0 | 4 | 33000 | 32600 | 33000 | 7000 |
92 | 01MAR04 | 0 | 1 | 0 | 4 | 33000 | 32600 | 33000 | 7000 |
93 | 02MAR04 | 0 | 1 | 0 | 4 | 33000 | 32800 | 33000 | 7000 |
94 | 03MAR04 | 2 | 2 | 2 | 2 | 33000 | 33000 | 33000 | 7000 |
95 | 04MAR04 | 2 | 2 | 2 | 2 | 33400 | 33400 | 33400 | 6600 |
96 | 05MAR04 | 2 | 2 | 2 | 2 | 33800 | 33800 | 33800 | 6200 |
97 | 06MAR04 | 2 | 2 | 2 | 2 | 34200 | 34200 | 34200 | 5800 |
98 | 07MAR04 | 2 | 2 | 2 | 2 | 34200 | 34200 | 34200 | 5800 |
99 | 08MAR04 | 2 | 2 | 2 | 2 | 34200 | 34200 | 34200 | 5800 |
100 | 09MAR04 | 2 | 2 | 2 | 2 | 34600 | 34600 | 34600 | 5400 |
101 | 10MAR04 | 0 | 0 | 0 | 4 | 35000 | 35000 | 35000 | 5000 |
Copyright © SAS Institute, Inc. All Rights Reserved.