The INFEASDIAGNOSTIC option instructs PROC CPM to continue scheduling even when resources are insufficient. When PROC CPM schedules subject to resource constraints, it stops the scheduling process when it cannot find sufficient resources (primary or supplementary) for an activity before the activity’s latest possible start time (L_START DELAY). In this case, you may want to determine which resources are needed to schedule all the activities and when the deficiencies occur. The INFEASDIAGNOSTIC option is equivalent to specifying infinite supplementary levels for all the resources under consideration; the DELAY= value is assumed to equal the default value of +INFINITY, unless it is specified otherwise.
The INFEASDIAGNOSTIC option is particularly useful when there are several resources involved and when project completion time is critical. You want things to be done on time, even if it means using supplementary resources or overtime resources; rather than trying to juggle activities around to try to fit available resource profiles, you want to determine the level of resources needed to accomplish tasks within a given time frame.
For the WIDGET manufacturing project, let us assume that there are four resources: a design engineer, a market analyst, a
production engineer, and money. The resource requirements for the different activities are saved in a data set, WIDGR17
, and displayed in Output 4.17.1. Of these resources, suppose that the design engineer is the resource that is most crucial in terms of his availability;
perhaps he is an outside contractor and you do not have control over his availability. You need to determine the project schedule
subject to the constraints on the resource deseng
. Output 4.17.2 displays the RESOURCEIN= data set, RESIN17
.
Output 4.17.1: Data Set WIDGR17
Use of the INFEASDIAGNOSTIC Option |
Data Set WIDGR17 |
Obs | task | days | tail | head | deseng | mktan | prodeng | money |
---|---|---|---|---|---|---|---|---|
1 | Approve Plan | 5 | 1 | 2 | 1 | 1 | 1 | 200 |
2 | Drawings | 10 | 2 | 3 | 1 | . | 1 | 100 |
3 | Study Market | 5 | 2 | 4 | . | 1 | 1 | 100 |
4 | Write Specs | 5 | 2 | 3 | 1 | . | 1 | 150 |
5 | Prototype | 15 | 3 | 5 | 1 | . | 1 | 300 |
6 | Mkt. Strat. | 10 | 4 | 6 | . | 1 | . | 150 |
7 | Materials | 10 | 5 | 7 | . | . | . | 300 |
8 | Facility | 10 | 5 | 7 | . | . | 1 | 500 |
9 | Init. Prod. | 10 | 7 | 8 | . | . | . | 250 |
10 | Evaluate | 10 | 8 | 9 | 1 | . | . | 150 |
11 | Test Market | 15 | 6 | 9 | . | 1 | . | 200 |
12 | Changes | 5 | 9 | 10 | 1 | . | 1 | 200 |
13 | Production | 0 | 10 | 11 | 1 | . | 1 | 600 |
14 | Marketing | 0 | 6 | 12 | . | 1 | . | . |
15 | Dummy | 0 | 8 | 6 | . | . | . | . |
In the first invocation of PROC CPM, the project is scheduled subject to resource constraints on the single resource variable
deseng
. Output 4.17.3 displays the resulting Schedule data set WIDGO17S
, which shows that the project is delayed by five days because of this resource. The project finish time has been delayed
only by five days, even though R_DELAY
='10' for activity 'Write Specs'. This is due to the fact that there was a float of five days present in this activity.
proc cpm date='01dec03'd interval=weekday data=widgr17 holidata=holdata resin=resin17 out=widgo17s; tailnode tail; duration days; headnode head; holiday hol; resource deseng / period=per obstype=otype delayanalysis; id task; run;
Output 4.17.3: Resource-Constrained Schedule: Single Resource
Use of the INFEASDIAGNOSTIC Option |
Resource Constrained Schedule: Single Resource |
Obs | tail | head | days | task | deseng | S_START | S_FINISH | E_START | E_FINISH | L_START | L_FINISH | R_DELAY | DELAY_R | SUPPL_R |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 2 | 5 | Approve Plan | 1 | 01DEC03 | 05DEC03 | 01DEC03 | 05DEC03 | 01DEC03 | 05DEC03 | 0 | ||
2 | 2 | 3 | 10 | Drawings | 1 | 08DEC03 | 19DEC03 | 08DEC03 | 19DEC03 | 08DEC03 | 19DEC03 | 0 | ||
3 | 2 | 4 | 5 | Study Market | . | 08DEC03 | 12DEC03 | 08DEC03 | 12DEC03 | 21JAN04 | 27JAN04 | 0 | ||
4 | 2 | 3 | 5 | Write Specs | 1 | 22DEC03 | 29DEC03 | 08DEC03 | 12DEC03 | 15DEC03 | 19DEC03 | 10 | deseng | |
5 | 3 | 5 | 15 | Prototype | 1 | 30DEC03 | 20JAN04 | 22DEC03 | 13JAN04 | 22DEC03 | 13JAN04 | 0 | ||
6 | 4 | 6 | 10 | Mkt. Strat. | . | 15DEC03 | 29DEC03 | 15DEC03 | 29DEC03 | 28JAN04 | 10FEB04 | 0 | ||
7 | 5 | 7 | 10 | Materials | . | 21JAN04 | 03FEB04 | 14JAN04 | 27JAN04 | 14JAN04 | 27JAN04 | 0 | ||
8 | 5 | 7 | 10 | Facility | . | 21JAN04 | 03FEB04 | 14JAN04 | 27JAN04 | 14JAN04 | 27JAN04 | 0 | ||
9 | 7 | 8 | 10 | Init. Prod. | . | 04FEB04 | 17FEB04 | 28JAN04 | 10FEB04 | 28JAN04 | 10FEB04 | 0 | ||
10 | 8 | 9 | 10 | Evaluate | 1 | 18FEB04 | 02MAR04 | 11FEB04 | 24FEB04 | 18FEB04 | 02MAR04 | 0 | ||
11 | 6 | 9 | 15 | Test Market | . | 18FEB04 | 09MAR04 | 11FEB04 | 02MAR04 | 11FEB04 | 02MAR04 | 0 | ||
12 | 9 | 10 | 5 | Changes | 1 | 10MAR04 | 16MAR04 | 03MAR04 | 09MAR04 | 03MAR04 | 09MAR04 | 0 | ||
13 | 10 | 11 | 0 | Production | 1 | 17MAR04 | 17MAR04 | 10MAR04 | 10MAR04 | 10MAR04 | 10MAR04 | 0 | ||
14 | 6 | 12 | 0 | Marketing | . | 18FEB04 | 18FEB04 | 11FEB04 | 11FEB04 | 10MAR04 | 10MAR04 | 0 | ||
15 | 8 | 6 | 0 | Dummy | . | 18FEB04 | 18FEB04 | 11FEB04 | 11FEB04 | 11FEB04 | 11FEB04 | 0 |
Now suppose that you have one production engineer available, but you could obtain more if needed. You do not want to delay
the project more than five days (the delay caused by deseng
). The second invocation of PROC CPM sets a maximum delay of five days on the activities and specifies all four resources
along with the INFEASDIAGNOSTIC option. The resource availability data set (printed in Output 4.17.2) has missing values for the resources mktan
and money
. Further, the resource money
is defined to be a consumable aggregate resource (its value is '4' in the first observation). Thus, this resource is used
by the CPM procedure only for aggregation purposes and is not considered as a constraining resource during the scheduling
process. The INFEASDIAGNOSTIC option enables CPM to assume an infinite supplementary level for all the constraining resources,
and the procedure draws upon this infinite reserve, if necessary, to schedule the project with only five days of delay. In
other words, PROC CPM assumes that there is an infinite supply of supplementary levels for all the relevant resources. Thus,
if at any point in the scheduling process it finds that an activity does not have enough resources and it cannot be postponed
any further, it schedules the activity ignoring the insufficiency of the resources.
proc cpm date='01dec03'd interval=weekday data=widgr17 holidata=holdata resin=resin17 out=widgo17m resout=widgro17; tailnode tail; duration days; headnode head; holiday hol; resource deseng prodeng mktan money / period=per obstype=otype delayanalysis delay=5 infeasdiagnostic cumusage rcprofile avprofile; id task; run;
The Schedule data set WIDGO17M
(for multiple resources) in Output 4.17.4 shows the new resource-constrained schedule. With a maximum delay of five days the procedure schedules the activity 'Study
Market' on January 21, 2004, using an extra production engineer as indicated by the SUPPL_R
variable. Note that the SUPPL_R
variable indicates the first resource in the resource list that was used beyond its primary level. Note also that it is possible
to schedule the activities with only one production engineer, but the project would be delayed by more than five days.
The Usage data set, displayed in Output 4.17.5, shows the amount of resources required on each day of the project. The data set contains usage and remaining resource information
only for the resource-constrained schedule because PROC CPM was invoked with the RCPROFILE and AVPROFILE options in the RESOURCE
statement. The availability profile contains only missing values for the resource money
because it was used only for aggregation purposes. Further, since this resource is a consumable resource as per the RESOURCEIN=
data set, and since the CUMUSAGE option is specified, the value for Rmoney
in each observation indicates the cumulative amount of money that would be needed through the beginning of the date specified
in that observation if the resource constrained schedule were followed.
For the other resources, the availability profile in the Usage data set contains negative values for all the resources that
were insufficient on any given day. This feature is useful for diagnosing the level of insufficiency of any resource; you
can determine the problem areas by examining the availability profile for the different resources. Thus, the negative values
for the resource availability profile Aprodeng
indicate that, in order for the project to be scheduled as desired, you need an extra production engineer between the 21st
and 27th of January, 2004. The negative values for Amktan
indicate the days when a market analyst is needed for the project.
Output 4.17.4: Resource-Constrained Schedule: Multiple Resources
Use of the INFEASDIAGNOSTIC Option |
Resource Constrained Schedule: Multiple Resources |
Obs | tail | head | days | task | deseng | prodeng | mktan | money | S_START | S_FINISH | E_START | E_FINISH | L_START | L_FINISH | R_DELAY | DELAY_R | SUPPL_R |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 2 | 5 | Approve Plan | 1 | 1 | 1 | 200 | 01DEC03 | 05DEC03 | 01DEC03 | 05DEC03 | 01DEC03 | 05DEC03 | 0 | mktan | |
2 | 2 | 3 | 10 | Drawings | 1 | 1 | . | 100 | 08DEC03 | 19DEC03 | 08DEC03 | 19DEC03 | 08DEC03 | 19DEC03 | 0 | ||
3 | 2 | 4 | 5 | Study Market | . | 1 | 1 | 100 | 21JAN04 | 27JAN04 | 08DEC03 | 12DEC03 | 21JAN04 | 27JAN04 | 30 | prodeng | prodeng |
4 | 2 | 3 | 5 | Write Specs | 1 | 1 | . | 150 | 22DEC03 | 29DEC03 | 08DEC03 | 12DEC03 | 15DEC03 | 19DEC03 | 10 | deseng | |
5 | 3 | 5 | 15 | Prototype | 1 | 1 | . | 300 | 30DEC03 | 20JAN04 | 22DEC03 | 13JAN04 | 22DEC03 | 13JAN04 | 0 | ||
6 | 4 | 6 | 10 | Mkt. Strat. | . | . | 1 | 150 | 28JAN04 | 10FEB04 | 15DEC03 | 29DEC03 | 28JAN04 | 10FEB04 | 0 | mktan | |
7 | 5 | 7 | 10 | Materials | . | . | . | 300 | 21JAN04 | 03FEB04 | 14JAN04 | 27JAN04 | 14JAN04 | 27JAN04 | 0 | ||
8 | 5 | 7 | 10 | Facility | . | 1 | . | 500 | 21JAN04 | 03FEB04 | 14JAN04 | 27JAN04 | 14JAN04 | 27JAN04 | 0 | ||
9 | 7 | 8 | 10 | Init. Prod. | . | . | . | 250 | 04FEB04 | 17FEB04 | 28JAN04 | 10FEB04 | 28JAN04 | 10FEB04 | 0 | ||
10 | 8 | 9 | 10 | Evaluate | 1 | . | . | 150 | 18FEB04 | 02MAR04 | 11FEB04 | 24FEB04 | 18FEB04 | 02MAR04 | 0 | ||
11 | 6 | 9 | 15 | Test Market | . | . | 1 | 200 | 18FEB04 | 09MAR04 | 11FEB04 | 02MAR04 | 11FEB04 | 02MAR04 | 0 | mktan | |
12 | 9 | 10 | 5 | Changes | 1 | 1 | . | 200 | 10MAR04 | 16MAR04 | 03MAR04 | 09MAR04 | 03MAR04 | 09MAR04 | 0 | ||
13 | 10 | 11 | 0 | Production | 1 | 1 | . | 600 | 17MAR04 | 17MAR04 | 10MAR04 | 10MAR04 | 10MAR04 | 10MAR04 | 0 | ||
14 | 6 | 12 | 0 | Marketing | . | . | 1 | . | 18FEB04 | 18FEB04 | 11FEB04 | 11FEB04 | 10MAR04 | 10MAR04 | 0 | ||
15 | 8 | 6 | 0 | Dummy | . | . | . | . | 18FEB04 | 18FEB04 | 11FEB04 | 11FEB04 | 11FEB04 | 11FEB04 | 0 |
Output 4.17.5: Resource Usage: Multiple Resources
Use of the INFEASDIAGNOSTIC Option |
Usage Profile: Multiple Resources |
Obs | _TIME_ | Rdeseng | Adeseng | Rprodeng | Aprodeng | Rmktan | Amktan | Rmoney | Amoney |
---|---|---|---|---|---|---|---|---|---|
1 | 01DEC03 | 1 | 0 | 1 | 0 | 1 | -1 | 0 | . |
2 | 02DEC03 | 1 | 0 | 1 | 0 | 1 | -1 | 200 | . |
3 | 03DEC03 | 1 | 0 | 1 | 0 | 1 | -1 | 400 | . |
4 | 04DEC03 | 1 | 0 | 1 | 0 | 1 | -1 | 600 | . |
5 | 05DEC03 | 1 | 0 | 1 | 0 | 1 | -1 | 800 | . |
6 | 08DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1000 | . |
7 | 09DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1100 | . |
8 | 10DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1200 | . |
9 | 11DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1300 | . |
10 | 12DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1400 | . |
11 | 15DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1500 | . |
12 | 16DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1600 | . |
13 | 17DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1700 | . |
14 | 18DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1800 | . |
15 | 19DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 1900 | . |
16 | 22DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 2000 | . |
17 | 23DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 2150 | . |
18 | 24DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 2300 | . |
19 | 26DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 2450 | . |
20 | 29DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 2600 | . |
21 | 30DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 2750 | . |
22 | 31DEC03 | 1 | 0 | 1 | 0 | 0 | 0 | 3050 | . |
23 | 02JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 3350 | . |
24 | 05JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 3650 | . |
25 | 06JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 3950 | . |
26 | 07JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 4250 | . |
27 | 08JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 4550 | . |
28 | 09JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 4850 | . |
29 | 12JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 5150 | . |
30 | 13JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 5450 | . |
31 | 14JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 5750 | . |
32 | 15JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 6050 | . |
33 | 16JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 6350 | . |
34 | 19JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 6650 | . |
35 | 20JAN04 | 1 | 0 | 1 | 0 | 0 | 0 | 6950 | . |
36 | 21JAN04 | 0 | 1 | 2 | -1 | 1 | -1 | 7250 | . |
37 | 22JAN04 | 0 | 1 | 2 | -1 | 1 | -1 | 8150 | . |
38 | 23JAN04 | 0 | 1 | 2 | -1 | 1 | -1 | 9050 | . |
39 | 26JAN04 | 0 | 1 | 2 | -1 | 1 | -1 | 9950 | . |
40 | 27JAN04 | 0 | 1 | 2 | -1 | 1 | -1 | 10850 | . |
41 | 28JAN04 | 0 | 1 | 1 | 0 | 1 | -1 | 11750 | . |
42 | 29JAN04 | 0 | 1 | 1 | 0 | 1 | -1 | 12700 | . |
43 | 30JAN04 | 0 | 1 | 1 | 0 | 1 | -1 | 13650 | . |
44 | 02FEB04 | 0 | 1 | 1 | 0 | 1 | -1 | 14600 | . |
45 | 03FEB04 | 0 | 1 | 1 | 0 | 1 | -1 | 15550 | . |
46 | 04FEB04 | 0 | 1 | 0 | 1 | 1 | -1 | 16500 | . |
47 | 05FEB04 | 0 | 1 | 0 | 1 | 1 | -1 | 16900 | . |
48 | 06FEB04 | 0 | 1 | 0 | 1 | 1 | -1 | 17300 | . |
49 | 09FEB04 | 0 | 1 | 0 | 1 | 1 | -1 | 17700 | . |
50 | 10FEB04 | 0 | 1 | 0 | 1 | 1 | -1 | 18100 | . |
51 | 11FEB04 | 0 | 1 | 0 | 1 | 0 | 0 | 18500 | . |
52 | 12FEB04 | 0 | 1 | 0 | 1 | 0 | 0 | 18750 | . |
53 | 13FEB04 | 0 | 1 | 0 | 1 | 0 | 0 | 19000 | . |
54 | 16FEB04 | 0 | 1 | 0 | 1 | 0 | 0 | 19250 | . |
55 | 17FEB04 | 0 | 1 | 0 | 1 | 0 | 0 | 19500 | . |
56 | 18FEB04 | 1 | 0 | 0 | 1 | 1 | -1 | 19750 | . |
57 | 19FEB04 | 1 | 0 | 0 | 1 | 1 | -1 | 20100 | . |
58 | 20FEB04 | 1 | 0 | 0 | 1 | 1 | -1 | 20450 | . |
59 | 23FEB04 | 1 | 0 | 0 | 1 | 1 | -1 | 20800 | . |
60 | 24FEB04 | 1 | 0 | 0 | 1 | 1 | -1 | 21150 | . |
61 | 25FEB04 | 1 | 0 | 0 | 1 | 1 | -1 | 21500 | . |
62 | 26FEB04 | 1 | 0 | 0 | 1 | 1 | -1 | 21850 | . |
63 | 27FEB04 | 1 | 0 | 0 | 1 | 1 | -1 | 22200 | . |
64 | 01MAR04 | 1 | 0 | 0 | 1 | 1 | -1 | 22550 | . |
65 | 02MAR04 | 1 | 0 | 0 | 1 | 1 | -1 | 22900 | . |
66 | 03MAR04 | 0 | 1 | 0 | 1 | 1 | -1 | 23250 | . |
67 | 04MAR04 | 0 | 1 | 0 | 1 | 1 | -1 | 23450 | . |
68 | 05MAR04 | 0 | 1 | 0 | 1 | 1 | -1 | 23650 | . |
69 | 08MAR04 | 0 | 1 | 0 | 1 | 1 | -1 | 23850 | . |
70 | 09MAR04 | 0 | 1 | 0 | 1 | 1 | -1 | 24050 | . |
71 | 10MAR04 | 1 | 0 | 1 | 0 | 0 | 0 | 24250 | . |
72 | 11MAR04 | 1 | 0 | 1 | 0 | 0 | 0 | 24450 | . |
73 | 12MAR04 | 1 | 0 | 1 | 0 | 0 | 0 | 24650 | . |
74 | 15MAR04 | 1 | 0 | 1 | 0 | 0 | 0 | 24850 | . |
75 | 16MAR04 | 1 | 0 | 1 | 0 | 0 | 0 | 25050 | . |
76 | 17MAR04 | 0 | 1 | 0 | 1 | 0 | 0 | 25250 | . |