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.
Output 4.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 | 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'.
Output 4.16.2: Resource Usage: Supplementary Resources
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 |