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='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 'Anal. 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 2.16.1: Resource-Constrained Schedule: Supplementary Resource
1 |
2 |
5 |
Approve Plan |
2 |
400 |
01DEC03 |
05DEC03 |
01DEC03 |
05DEC03 |
01DEC03 |
05DEC03 |
0 |
|
|
2 |
3 |
10 |
Drawings |
1 |
200 |
08DEC03 |
19DEC03 |
08DEC03 |
19DEC03 |
08DEC03 |
19DEC03 |
0 |
|
|
2 |
4 |
5 |
Anal. Market |
1 |
200 |
15DEC03 |
19DEC03 |
08DEC03 |
12DEC03 |
21JAN04 |
27JAN04 |
5 |
engineer |
|
2 |
3 |
5 |
Write Specs |
2 |
400 |
08DEC03 |
12DEC03 |
08DEC03 |
12DEC03 |
15DEC03 |
19DEC03 |
0 |
|
|
3 |
5 |
15 |
Prototype |
4 |
800 |
22DEC03 |
13JAN04 |
22DEC03 |
13JAN04 |
22DEC03 |
13JAN04 |
0 |
|
engineer |
4 |
6 |
10 |
Mkt. Strat. |
. |
. |
22DEC03 |
06JAN04 |
15DEC03 |
29DEC03 |
28JAN04 |
10FEB04 |
0 |
|
|
5 |
7 |
10 |
Materials |
. |
. |
14JAN04 |
27JAN04 |
14JAN04 |
27JAN04 |
14JAN04 |
27JAN04 |
0 |
|
|
5 |
7 |
10 |
Facility |
2 |
400 |
14JAN04 |
27JAN04 |
14JAN04 |
27JAN04 |
14JAN04 |
27JAN04 |
0 |
|
|
7 |
8 |
10 |
Init. Prod. |
4 |
800 |
28JAN04 |
10FEB04 |
28JAN04 |
10FEB04 |
28JAN04 |
10FEB04 |
0 |
|
|
8 |
9 |
10 |
Evaluate |
1 |
200 |
11FEB04 |
24FEB04 |
11FEB04 |
24FEB04 |
18FEB04 |
02MAR04 |
0 |
|
|
6 |
9 |
15 |
Test Market |
. |
. |
11FEB04 |
02MAR04 |
11FEB04 |
02MAR04 |
11FEB04 |
02MAR04 |
0 |
|
|
9 |
10 |
5 |
Changes |
2 |
400 |
03MAR04 |
09MAR04 |
03MAR04 |
09MAR04 |
03MAR04 |
09MAR04 |
0 |
|
|
10 |
11 |
0 |
Production |
4 |
800 |
10MAR04 |
10MAR04 |
10MAR04 |
10MAR04 |
10MAR04 |
10MAR04 |
0 |
|
|
6 |
12 |
0 |
Marketing |
. |
. |
11FEB04 |
11FEB04 |
11FEB04 |
11FEB04 |
10MAR04 |
10MAR04 |
0 |
|
|
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 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 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 'Anal. Market' from
December 15, 2003;
thus, the total usage from 15DEC03 to 19DEC03 is '2'.
Output 2.16.2: Resource Usage: Supplementary Resources
01DEC03 |
2 |
2 |
2 |
1 |
0 |
0 |
0 |
40000 |
02DEC03 |
2 |
2 |
2 |
1 |
400 |
400 |
400 |
39600 |
03DEC03 |
2 |
2 |
2 |
1 |
800 |
800 |
800 |
39200 |
04DEC03 |
2 |
2 |
2 |
1 |
1200 |
1200 |
1200 |
38800 |
05DEC03 |
2 |
2 |
2 |
1 |
1600 |
1600 |
1600 |
38400 |
06DEC03 |
0 |
0 |
0 |
3 |
2000 |
2000 |
2000 |
38000 |
07DEC03 |
0 |
0 |
0 |
3 |
2000 |
2000 |
2000 |
38000 |
08DEC03 |
4 |
1 |
3 |
0 |
2000 |
2000 |
2000 |
38000 |
09DEC03 |
4 |
1 |
3 |
0 |
2800 |
2200 |
2600 |
37400 |
10DEC03 |
4 |
1 |
3 |
0 |
3600 |
2400 |
3200 |
36800 |
11DEC03 |
4 |
1 |
3 |
0 |
4400 |
2600 |
3800 |
36200 |
12DEC03 |
4 |
1 |
3 |
0 |
5200 |
2800 |
4400 |
35600 |
13DEC03 |
1 |
1 |
1 |
2 |
6000 |
3000 |
5000 |
35000 |
14DEC03 |
1 |
1 |
1 |
2 |
6000 |
3000 |
5000 |
35000 |
15DEC03 |
1 |
3 |
2 |
1 |
6000 |
3000 |
5000 |
35000 |
16DEC03 |
1 |
3 |
2 |
1 |
6200 |
3600 |
5400 |
34600 |
17DEC03 |
1 |
3 |
2 |
1 |
6400 |
4200 |
5800 |
34200 |
18DEC03 |
1 |
3 |
2 |
1 |
6600 |
4800 |
6200 |
33800 |
19DEC03 |
1 |
3 |
2 |
1 |
6800 |
5400 |
6600 |
33400 |
20DEC03 |
0 |
0 |
0 |
3 |
7000 |
6000 |
7000 |
33000 |
21DEC03 |
0 |
0 |
0 |
3 |
7000 |
6000 |
7000 |
33000 |
22DEC03 |
4 |
4 |
4 |
-1 |
7000 |
6000 |
7000 |
33000 |
23DEC03 |
4 |
4 |
4 |
-1 |
7800 |
6800 |
7800 |
32200 |
24DEC03 |
4 |
4 |
4 |
-1 |
8600 |
7600 |
8600 |
31400 |
25DEC03 |
4 |
4 |
4 |
-1 |
9400 |
8400 |
9400 |
30600 |
26DEC03 |
4 |
4 |
4 |
0 |
9400 |
8400 |
9400 |
30600 |
27DEC03 |
4 |
4 |
4 |
0 |
10200 |
9200 |
10200 |
29800 |
28DEC03 |
4 |
4 |
4 |
0 |
10200 |
9200 |
10200 |
29800 |
29DEC03 |
4 |
4 |
4 |
0 |
10200 |
9200 |
10200 |
29800 |
30DEC03 |
4 |
4 |
4 |
0 |
11000 |
10000 |
11000 |
29000 |
31DEC03 |
4 |
4 |
4 |
0 |
11800 |
10800 |
11800 |
28200 |
01JAN04 |
4 |
4 |
4 |
0 |
12600 |
11600 |
12600 |
27400 |
02JAN04 |
4 |
4 |
4 |
0 |
12600 |
11600 |
12600 |
27400 |
03JAN04 |
4 |
4 |
4 |
0 |
13400 |
12400 |
13400 |
26600 |
04JAN04 |
4 |
4 |
4 |
0 |
13400 |
12400 |
13400 |
26600 |
05JAN04 |
4 |
4 |
4 |
0 |
13400 |
12400 |
13400 |
26600 |
06JAN04 |
4 |
4 |
4 |
0 |
14200 |
13200 |
14200 |
25800 |
07JAN04 |
4 |
4 |
4 |
0 |
15000 |
14000 |
15000 |
25000 |
08JAN04 |
4 |
4 |
4 |
0 |
15800 |
14800 |
15800 |
24200 |
09JAN04 |
4 |
4 |
4 |
0 |
16600 |
15600 |
16600 |
23400 |
10JAN04 |
4 |
4 |
4 |
0 |
17400 |
16400 |
17400 |
22600 |
11JAN04 |
4 |
4 |
4 |
0 |
17400 |
16400 |
17400 |
22600 |
12JAN04 |
4 |
4 |
4 |
0 |
17400 |
16400 |
17400 |
22600 |
13JAN04 |
4 |
4 |
4 |
0 |
18200 |
17200 |
18200 |
21800 |
14JAN04 |
2 |
2 |
2 |
2 |
19000 |
18000 |
19000 |
21000 |
15JAN04 |
2 |
2 |
2 |
2 |
19400 |
18400 |
19400 |
20600 |
16JAN04 |
2 |
2 |
2 |
2 |
19800 |
18800 |
19800 |
20200 |
17JAN04 |
2 |
2 |
2 |
2 |
20200 |
19200 |
20200 |
19800 |
18JAN04 |
2 |
2 |
2 |
2 |
20200 |
19200 |
20200 |
19800 |
19JAN04 |
2 |
2 |
2 |
2 |
20200 |
19200 |
20200 |
19800 |
20JAN04 |
2 |
2 |
2 |
2 |
20600 |
19600 |
20600 |
19400 |
21JAN04 |
2 |
3 |
2 |
2 |
21000 |
20000 |
21000 |
19000 |
22JAN04 |
2 |
3 |
2 |
2 |
21400 |
20600 |
21400 |
18600 |
23JAN04 |
2 |
3 |
2 |
2 |
21800 |
21200 |
21800 |
18200 |
24JAN04 |
2 |
3 |
2 |
2 |
22200 |
21800 |
22200 |
17800 |
25JAN04 |
2 |
3 |
2 |
2 |
22200 |
21800 |
22200 |
17800 |
26JAN04 |
2 |
3 |
2 |
2 |
22200 |
21800 |
22200 |
17800 |
27JAN04 |
2 |
3 |
2 |
2 |
22600 |
22400 |
22600 |
17400 |
28JAN04 |
4 |
4 |
4 |
0 |
23000 |
23000 |
23000 |
17000 |
29JAN04 |
4 |
4 |
4 |
0 |
23800 |
23800 |
23800 |
16200 |
30JAN04 |
4 |
4 |
4 |
0 |
24600 |
24600 |
24600 |
15400 |
31JAN04 |
4 |
4 |
4 |
0 |
25400 |
25400 |
25400 |
14600 |
01FEB04 |
4 |
4 |
4 |
0 |
25400 |
25400 |
25400 |
14600 |
02FEB04 |
4 |
4 |
4 |
0 |
25400 |
25400 |
25400 |
14600 |
03FEB04 |
4 |
4 |
4 |
0 |
26200 |
26200 |
26200 |
13800 |
04FEB04 |
4 |
4 |
4 |
0 |
27000 |
27000 |
27000 |
13000 |
05FEB04 |
4 |
4 |
4 |
0 |
27800 |
27800 |
27800 |
12200 |
06FEB04 |
4 |
4 |
4 |
0 |
28600 |
28600 |
28600 |
11400 |
07FEB04 |
4 |
4 |
4 |
0 |
29400 |
29400 |
29400 |
10600 |
08FEB04 |
4 |
4 |
4 |
0 |
29400 |
29400 |
29400 |
10600 |
09FEB04 |
4 |
4 |
4 |
0 |
29400 |
29400 |
29400 |
10600 |
10FEB04 |
4 |
4 |
4 |
0 |
30200 |
30200 |
30200 |
9800 |
11FEB04 |
1 |
0 |
1 |
3 |
31000 |
31000 |
31000 |
9000 |
12FEB04 |
1 |
0 |
1 |
3 |
31200 |
31000 |
31200 |
8800 |
13FEB04 |
1 |
0 |
1 |
3 |
31400 |
31000 |
31400 |
8600 |
14FEB04 |
1 |
0 |
1 |
3 |
31600 |
31000 |
31600 |
8400 |
15FEB04 |
1 |
0 |
1 |
3 |
31600 |
31000 |
31600 |
8400 |
16FEB04 |
1 |
0 |
1 |
3 |
31600 |
31000 |
31600 |
8400 |
17FEB04 |
1 |
0 |
1 |
3 |
31800 |
31000 |
31800 |
8200 |
18FEB04 |
1 |
1 |
1 |
3 |
32000 |
31000 |
32000 |
8000 |
19FEB04 |
1 |
1 |
1 |
3 |
32200 |
31200 |
32200 |
7800 |
20FEB04 |
1 |
1 |
1 |
3 |
32400 |
31400 |
32400 |
7600 |
21FEB04 |
1 |
1 |
1 |
3 |
32600 |
31600 |
32600 |
7400 |
22FEB04 |
1 |
1 |
1 |
3 |
32600 |
31600 |
32600 |
7400 |
23FEB04 |
1 |
1 |
1 |
3 |
32600 |
31600 |
32600 |
7400 |
24FEB04 |
1 |
1 |
1 |
3 |
32800 |
31800 |
32800 |
7200 |
25FEB04 |
0 |
1 |
0 |
4 |
33000 |
32000 |
33000 |
7000 |
26FEB04 |
0 |
1 |
0 |
4 |
33000 |
32200 |
33000 |
7000 |
27FEB04 |
0 |
1 |
0 |
4 |
33000 |
32400 |
33000 |
7000 |
28FEB04 |
0 |
1 |
0 |
4 |
33000 |
32600 |
33000 |
7000 |
29FEB04 |
0 |
1 |
0 |
4 |
33000 |
32600 |
33000 |
7000 |
01MAR04 |
0 |
1 |
0 |
4 |
33000 |
32600 |
33000 |
7000 |
02MAR04 |
0 |
1 |
0 |
4 |
33000 |
32800 |
33000 |
7000 |
03MAR04 |
2 |
2 |
2 |
2 |
33000 |
33000 |
33000 |
7000 |
04MAR04 |
2 |
2 |
2 |
2 |
33400 |
33400 |
33400 |
6600 |
05MAR04 |
2 |
2 |
2 |
2 |
33800 |
33800 |
33800 |
6200 |
06MAR04 |
2 |
2 |
2 |
2 |
34200 |
34200 |
34200 |
5800 |
07MAR04 |
2 |
2 |
2 |
2 |
34200 |
34200 |
34200 |
5800 |
08MAR04 |
2 |
2 |
2 |
2 |
34200 |
34200 |
34200 |
5800 |
09MAR04 |
2 |
2 |
2 |
2 |
34600 |
34600 |
34600 |
5400 |
10MAR04 |
0 |
0 |
0 |
4 |
35000 |
35000 |
35000 |
5000 |
|