The CPM Procedure

Example 3.26 Multiple Alternate Resources

(View the complete code for this example.)

This example illustrates the use of the MULTIPLEALTERNATES option. The Activity data set printed in Output 3.26.1 is a slightly modified version of the data set in Example 3.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 3.26.1, showing that both Chris and John are alternates that can be substituted at the same rate as the primary resource.

Output 3.26.1: Multiple Alternates

Software Development
Use of Multiple Alternate Resources
Activity Data Set

ObsActivitydurmandaysacts1s2ProgrammerChrisJohn
1Plans & Reqts2.1232..
2Product Design.32451..
3Test Plan3.367...
4Documentation1249.1..
5Code11058.1..
6Test Data5.68....
7Test Routines5.78....
8Test Product6.89.1..
9Finish0.9.....

Software Development
Use of Multiple Alternate Resources
Resource Data Set

ObsperotyperesidProgrammerChrisJohn
1.resrcdur 111
2.altrateProgrammer.11
312APR27reslevel .11


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='12apr27'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 3.26.2. Note that both programmers are used for the activity 'Plans and Reqts'.

Output 3.26.2: Multiple Alternates: Resource Schedule Data Set

Software Development
Use of Multiple Alternate Resources
Resource Constrained Schedule

ActivityactRESOURCEDUR_TYPEdurmandaysR_RATES_STARTS_FINISHE_STARTE_FINISHL_STARTL_FINISH
Plans & Reqts1  2..12APR2713APR2712APR2713APR2712APR2713APR27
Plans & Reqts1ProgrammerFIXED2.2..12APR2713APR2712APR2713APR27
Plans & Reqts1JohnFIXED2.112APR2713APR27....
Plans & Reqts1ChrisFIXED2.112APR2713APR27....
Product Design2  3..14APR2716APR2714APR2716APR2714APR2716APR27
Product Design2ProgrammerRDRIVEN331..14APR2716APR2714APR2716APR27
Product Design2ChrisRDRIVEN33114APR2716APR27....
Test Plan3  3..14APR2716APR2714APR2716APR2721APR2723APR27
Documentation4  1..19APR2720APR2719APR2720APR2707MAY2710MAY27
Documentation4ProgrammerRDRIVEN221..19APR2720APR2707MAY2710MAY27
Documentation4JohnRDRIVEN22119APR2720APR27....
Code5  1..19APR2730APR2719APR2730APR2719APR2730APR27
Code5ProgrammerRDRIVEN10101..19APR2730APR2719APR2730APR27
Code5ChrisRDRIVEN1010119APR2730APR27....
Test Data6  5..19APR2723APR2719APR2723APR2726APR2730APR27
Test Routines7  5..19APR2723APR2719APR2723APR2726APR2730APR27
Test Product8  6..03MAY2710MAY2703MAY2710MAY2703MAY2710MAY27
Test Product8ProgrammerFIXED6.1..03MAY2710MAY2703MAY2710MAY27
Test Product8ChrisFIXED6.103MAY2710MAY27....
Finish9  0..11MAY2711MAY2711MAY2711MAY2711MAY2711MAY27


Last updated: November 10, 2025