Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The CPM Procedure

Example 2.20: Alternate Resources

Some projects may have two or more resource types that are interchangeable; if one resource is insufficient, the other one can be used in its place. To illustrate the use of alternate resources, consider the widget manufacturing example with the data in AON format as shown in Output 2.20.1. As in Example 2.17, suppose there are two types of engineers, a design engineer and a production engineer. In addition, there is a generic pool of engineers, denoted by the variable engpool. The resource requirements for each category are specified in the data set WIDGR20.

Output 2.20.1: Alternate Resources: Activity Data Set

Scheduling with Alternate Resources
Data Set WIDGR20

Obs task days succ deseng prodeng engpool
1 Approve Plan 5 Drawings 1 1 .
2 Approve Plan 5 Anal. Market 1 1 .
3 Approve Plan 5 Write Specs 1 1 .
4 Drawings 10 Prototype 1 1 .
5 Anal. Market 5 Mkt. Strat. . 1 .
6 Write Specs 5 Prototype 1 1 .
7 Prototype 15 Materials 1 1 1
8 Prototype 15 Facility 1 1 1
9 Mkt. Strat. 10 Test Market . . .
10 Mkt. Strat. 10 Marketing . . .
11 Materials 10 Init. Prod. . . .
12 Facility 10 Init. Prod. . 1 2
13 Init. Prod. 10 Test Market . . 2
14 Init. Prod. 10 Marketing . . 2
15 Init. Prod. 10 Evaluate . . 2
16 Evaluate 10 Changes 1 . .
17 Test Market 15 Changes . . .
18 Changes 5 Production 1 1 .
19 Production 0   . . .
20 Marketing 0   . . .

Output 2.20.2: Alternate Resources: RESOURCEIN Data Set

Scheduling with Alternate Resources
Data Set RESIN20

Obs per otype resid deseng prodeng engpool
1 . restype   1 1 1
2 . altprty deseng . 1 2
3 . altprty prodeng . . 1
4 . suplevel   1 1 .
5 02DEC91 reslevel   1 1 4


The resource availability data set RESIN20, displayed in Output 2.20.2, identifies all three resources as replenishable resources and indicates a primary as well as a supplementary level of availability. A new variable resid in the data set is used to identify resources in observations 2 and 3 that can be substituted for deseng and prodeng, respectively. These observations have the value `altprty' for the OBSTYPE variable and indicate a priority for the substitution. For example, observation number 2 indicates that if deseng is unavailable, the procedure can use prodeng, and if even that is insufficient, it can draw from the engineering resource pool engpool. To trigger the substitution of resources, use the RESID= option in the RESOURCE statement.

Output 2.20.3: Alternate Resources Not Used

Scheduling with Alternate Resources
Alternate Resources not used

Obs task succ days deseng prodeng engpool S_START S_FINISH E_START E_FINISH L_START L_FINISH R_DELAY DELAY_R SUPPL_R
1 Approve Plan Drawings 5 1 1 . 02DEC91 06DEC91 02DEC91 06DEC91 02DEC91 06DEC91 0    
2 Drawings Prototype 10 1 1 . 09DEC91 20DEC91 09DEC91 20DEC91 09DEC91 20DEC91 0    
3 Anal. Market Mkt. Strat. 5 . 1 . 05FEB92 11FEB92 09DEC91 13DEC91 22JAN92 28JAN92 40 prodeng  
4 Write Specs Prototype 5 1 1 . 23DEC91 30DEC91 09DEC91 13DEC91 16DEC91 20DEC91 10 deseng  
5 Prototype Materials 15 1 1 1 31DEC91 21JAN92 23DEC91 14JAN92 23DEC91 14JAN92 0    
6 Mkt. Strat. Test Market 10 . . . 12FEB92 25FEB92 16DEC91 30DEC91 29JAN92 11FEB92 0    
7 Materials Init. Prod. 10 . . . 22JAN92 04FEB92 15JAN92 28JAN92 15JAN92 28JAN92 0    
8 Facility Init. Prod. 10 . 1 2 22JAN92 04FEB92 15JAN92 28JAN92 15JAN92 28JAN92 0    
9 Init. Prod. Test Market 10 . . 2 05FEB92 18FEB92 29JAN92 11FEB92 29JAN92 11FEB92 0    
10 Evaluate Changes 10 1 . . 19FEB92 03MAR92 12FEB92 25FEB92 19FEB92 03MAR92 0    
11 Test Market Changes 15 . . . 26FEB92 17MAR92 12FEB92 03MAR92 12FEB92 03MAR92 0    
12 Changes Production 5 1 1 . 18MAR92 24MAR92 04MAR92 10MAR92 04MAR92 10MAR92 0    
13 Production   0 . . . 25MAR92 25MAR92 11MAR92 11MAR92 11MAR92 11MAR92 0    
14 Marketing   0 . . . 26FEB92 26FEB92 12FEB92 12FEB92 11MAR92 11MAR92 0    


First, PROC CPM is invoked without reference to the RESID variable. The procedure ignores observations 2 and 3 in the RESOURCEIN data set (a message is written to the log), and the project is scheduled using the available resources; the supplementary level is not used because the project can be scheduled using only the primary resources by delaying it a few days. The project completion time is March 25, 1992 (see the schedule displayed in Output 2.20.3). The following program shows the invocation of PROC CPM:

   proc cpm date='02dec91'd
            interval=weekday collapse
            data=widgr20 resin=resin20 holidata=holdata
            out=widgo20 resout=widgro20;
      activity task;
      duration days;
      successor succ;
      holiday hol;
      resource deseng prodeng engpool / period=per
                                        obstype=otype
                                        delayanalysis
                                        rcs avl;
      run;

Next, PROC CPM is invoked with the RESID= option, and the resulting Schedule data set is displayed in Output 2.20.4. The new schedule shows that the project completion time (11MAR92) has been reduced by two weeks as a result of using alternate resoruces.

Output 2.20.4: Alternate Resources Used

Scheduling with Alternate Resources
Alternate Resources Reduce Project Completion Time

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


When resource substitution is allowed, the procedure adds a new variable prefixed by a `U' for each resource variable; this new variable specifies the actual resources used for each activity (as opposed to the resource required). Note that the activity `Anal. Market' requires one production engineer who is tied up with the activity `Drawings' on the 9th of December. Since resource substitution is allowed, the procedure uses an engineer from engpool as indicated by a missing value for Uprodeng and a `1' for Uengpool in the third observation. Likewise, the activity `Write Specs' is scheduled by substituting one engineer from engpool for a design engineer and one for a production engineer to obtain Udeseng= , Uprodeng= , and Uengpool = `2' in observation number 4. The DELAYANALYSIS variables indicate that the supplementary levels are not used for any of the resources (recall that use of supplementary levels is triggered by the specification of a finite value for DELAY). It is evident from the project finish date (S_FINISH = L_FINISH = `11MAR92') that resource substitution has enabled the project to be completed without any delay. The following program produced Output 2.20.4:

   proc cpm date='02dec91'd
            interval=weekday collapse
            data=widgr20 resin=resin20 holidata=holdata
            out=widgalt resout=widralt;
      activity task;
      duration days;
      successor succ;
      holiday hol;
      resource deseng prodeng engpool / period=per
                                        obstype=otype
                                        delayanalysis
                                        resid=resid
                                        rcs avl;
      run;

The next invocation of PROC CPM illustrates the use of both supplementary as well as alternate resources. Note from the output data set, displayed in Output 2.20.5, that once again the project is completed without any delay. Note also that the activity `Write Specs' has used a supplementary resource whereas `Anal. Market' has used an alternate resource. By default, when the DELAY= option is used, it forces the procedure to use supplementary resources before alternate resources. To invert this order so that alternate resources are used before supplementary resources, use the ALTBEFORESUP option in the RESOURCE statement. The resulting schedule is displayed in Output 2.20.6.

   proc cpm date='02dec91'd
            interval=weekday collapse
            data=widgr20 resin=resin20 holidata=holdata
            out=widgdsup resout=widrdsup;
      activity task;
      duration days;
      successor succ;
      holiday hol;
      resource deseng prodeng engpool / period=per
                                        obstype=otype
                                        delayanalysis
                                        delay=0
                                        resid=resid
                                        rcs avl;
      run;

Output 2.20.5: Supplementary Resources Used before Alternate Resources

Scheduling with Alternate Resources
DELAY=0, Supplementary Resources Used instead of Alternate

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

Output 2.20.6: Alternate Resources Used before Supplementary Resources

Scheduling with Alternate Resources
DELAY=0, Alternate Resources Used instead of Supplementary

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

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

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