The CPM Procedure

Example 4.26 Multiple Alternate Resources

This example illustrates the use of the MULTIPLEALTERNATES option. The Activity data set printed in Output 4.26.1 is a slightly modified version of the data set in Example 4.25. The difference is in the resource requirement for the first activity in the project. The 'Plans and Requirements' task requires 2 programmers. By default, when alternate resources are used, the CPM procedures cannot use multiple alternate resources to substitute for any given resource. In this example, however, you would like the procedure to use both Chris and John for the first task. The Resource data set resmult is also printed in Output 4.26.1, showing that both Chris and John are alternates that can be substituted at the same rate as the primary resource.

Output 4.26.1: Multiple Alternates

Software Development
Use of Multiple Alternate Resources
Activity Data Set

Obs Activity dur mandays act s1 s2 Programmer Chris John
1 Plans & Reqts 2 . 1 2 3 2 . .
2 Product Design . 3 2 4 5 1 . .
3 Test Plan 3 . 3 6 7 . . .
4 Documentation 1 2 4 9 . 1 . .
5 Code 1 10 5 8 . 1 . .
6 Test Data 5 . 6 8 . . . .
7 Test Routines 5 . 7 8 . . . .
8 Test Product 6 . 8 9 . 1 . .
9 Finish 0 . 9 . . . . .



Software Development
Use of Multiple Alternate Resources
Resource Data Set

Obs per otype resid Programmer Chris John
1 . resrcdur   1 1 1
2 . altrate Programmer . 1 1
3 12APR04 reslevel   . 1 1


To enable PROC CPM to use multiple alternates, use the MULTIPLEALTERNATES option, as shown in the following invocation:

proc cpm data=softmult out=sftmult rsched=rsftmult
         resin=resmult
         date='12apr04'd interval=weekday resout=routmult;
   act act;
   succ s1 s2;
   dur dur;
   res Programmer Chris John / work=mandays 
                  obstype=otype
                  period=per resid=resid
                  multiplealternates
                  rschedid=Activity;
   id Activity;
   run;

The resulting schedule is printed in Output 4.26.2. Note that both programmers are used for the activity 'Plans and Reqts'.

Output 4.26.2: Multiple Alternates: Resource Schedule Data Set

Software Development
Use of Multiple Alternate Resources
Resource Constrained Schedule

Activity act RESOURCE DUR_TYPE dur mandays R_RATE S_START S_FINISH E_START E_FINISH L_START L_FINISH
Plans & Reqts 1     2 . . 12APR04 13APR04 12APR04 13APR04 12APR04 13APR04
Plans & Reqts 1 Programmer FIXED 2 . 2 . . 12APR04 13APR04 12APR04 13APR04
Plans & Reqts 1 John FIXED 2 . 1 12APR04 13APR04 . . . .
Plans & Reqts 1 Chris FIXED 2 . 1 12APR04 13APR04 . . . .
Product Design 2     3 . . 14APR04 16APR04 14APR04 16APR04 14APR04 16APR04
Product Design 2 Programmer RDRIVEN 3 3 1 . . 14APR04 16APR04 14APR04 16APR04
Product Design 2 Chris RDRIVEN 3 3 1 14APR04 16APR04 . . . .
Test Plan 3     3 . . 14APR04 16APR04 14APR04 16APR04 21APR04 23APR04
Documentation 4     1 . . 19APR04 20APR04 19APR04 20APR04 07MAY04 10MAY04
Documentation 4 Programmer RDRIVEN 2 2 1 . . 19APR04 20APR04 07MAY04 10MAY04
Documentation 4 John RDRIVEN 2 2 1 19APR04 20APR04 . . . .
Code 5     1 . . 19APR04 30APR04 19APR04 30APR04 19APR04 30APR04
Code 5 Programmer RDRIVEN 10 10 1 . . 19APR04 30APR04 19APR04 30APR04
Code 5 Chris RDRIVEN 10 10 1 19APR04 30APR04 . . . .
Test Data 6     5 . . 19APR04 23APR04 19APR04 23APR04 26APR04 30APR04
Test Routines 7     5 . . 19APR04 23APR04 19APR04 23APR04 26APR04 30APR04
Test Product 8     6 . . 03MAY04 10MAY04 03MAY04 10MAY04 03MAY04 10MAY04
Test Product 8 Programmer FIXED 6 . 1 . . 03MAY04 10MAY04 03MAY04 10MAY04
Test Product 8 Chris FIXED 6 . 1 03MAY04 10MAY04 . . . .
Finish 9     0 . . 11MAY04 11MAY04 11MAY04 11MAY04 11MAY04 11MAY04