Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The CPM Procedure

Example 2.19: Activity Splitting

This example illustrates the use of activity splitting to help reduce project duration. By default, PROC CPM assumes that an activity cannot be interrupted once it is started (except for holidays and weekends). During resource-constrained scheduling, it is possible for a noncritical activity to be scheduled first, and at a later time a critical activity may be held waiting for a resource to be freed by this less critical activity. In such situations, you way want to allow noncritical activities to be preempted by critical ones. PROC CPM enables you to specify, selectively, the activities that can be split into segments, the minimum length of each segment, and the maximum number of segments per activity.

The data set WIDGR19, displayed in Output 2.19.1, contains the widget network in AON format with two resources: prodman and hrdware. Suppose the production manager is required to oversee certain activities, as indicated by a `1' in the prodman column. hrdware denotes some piece of equipment that is required by the activity `Drawings' (perhaps a plotter to produce the engineering drawings). The variable minseg denotes the minimum length of the split segments for each activity. Missing values for this variable are set to default values (one-fifth of the activity's duration). The Resource data set WIDGRIN, displayed in Output 2.19.2, indicates that both resources are replenishable, there is one production manager available from December 2, and the hardware is unavailable on the 11th and 12th of December (perhaps it is scheduled for maintenance or has been reserved for some other project).

Output 2.19.1: Activity Splitting: Activity Data Set

Activity Splitting
Project Data

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

Output 2.19.2: Activity Splitting: Resource Availability Data Set

Activity Splitting
Resource Availability Data Set

Obs per otype prodman hrdware
1 . restype 1 1
2 02DEC91 reslevel 1 1
3 11DEC91 reslevel . 0
4 13DEC91 reslevel . 1


The project is first scheduled without allowing any of the activities to be split. The Schedule data set SCHED, displayed in Output 2.19.3, indicates that the project has been delayed by one week (five working days, since maximum S_FINISH = `18MAR9'1 while maximum E_FINISH = `11MAR92'). Note that the activity `Drawings' has been postponed to start after the equipment has been serviced (or used by the other project), and the activity `Prototype' (which is actually a critical activity) cannot start on schedule because the production manager is tied up with the noncritical activity `Mkt. Strat.'.
   proc cpm date='02dec91'd
            data=widgr19 resin=widgrin
            holidata=holdata
            out=sched resout=rout
            interval=weekday collapse;
      activity task;
      duration days;
      successor succ;
      holiday hol;
      resource prodman hrdware / period=per obstype=otype
                                 t_float f_float rcs avl;
      run;

Output 2.19.3: Project Schedule: Splitting Not Allowed

Activity Splitting
Project Schedule: Splitting not Allowed

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


In the second invocation of PROC CPM, the MINSEGMTDUR= option is used in the RESOURCE statement to identify the variable minseg to the procedure. This allows the algorithm to split the `Drawings' activity so that some of it is done before December 11, 1991, and the rest is scheduled to start on December 13, 1991. Likewise, the production manager is allocated to the activity `Mkt. Strat.' on December 16, 1991. On the 26th of December the activity `Prototype' demands the production manager, and since preemption is allowed, the earlier activity `Mkt. Strat.', which is less critical than `Prototype', is temporarily halted and is resumed on the 17th of January after the completion of `Prototype' on the 16th of January. The Schedule data set, displayed in Output 2.19.4, contains separate observations for each segment of the split activities as indicated by the variable SEGMT_NO. Note that the project duration has been reduced by three working days, by allowing appropriate activities to be split.

   proc cpm date='02dec91'd
            data=widgr19
            holidata=holdata resin=widgrin
            out=spltschd resout=spltrout
            interval=weekday collapse;
      activity task;
      duration days;
      successor succ;
      holiday hol;
      resource prodman hrdware / period=per obstype=otype
                                 minsegmtdur=minseg
                                 rcs avl;
      id task;
      run;

Output 2.19.4: Project Schedule: Splitting Allowed

Activity Splitting
Project Schedule: Splitting Allowed

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

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

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