Variable Activity Delay (cpm18)
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: CPM18 */
/* TITLE: Variable Activity Delay (cpm18) */
/* PRODUCT: OR */
/* SYSTEM: ALL */
/* KEYS: CPM */
/* PROCS: CPM */
/* DATA: */
/* */
/* SUPPORT: UPDATE: */
/* REF: */
/* REF: Example 18 from the CPM Chapter (PM User's Guide) */
/* MISC: */
/* */
/****************************************************************/
/* Activity-on-Arc representation of the project */
data widgr17;
input task $ 1-12 days tail head deseng mktan prodeng money;
datalines;
Approve Plan 5 1 2 1 1 1 200
Drawings 10 2 3 1 . 1 100
Study Market 5 2 4 . 1 1 100
Write Specs 5 2 3 1 . 1 150
Prototype 15 3 5 1 . 1 300
Mkt. Strat. 10 4 6 . 1 . 150
Materials 10 5 7 . . . 300
Facility 10 5 7 . . 1 500
Init. Prod. 10 7 8 . . . 250
Evaluate 10 8 9 1 . . 150
Test Market 15 6 9 . 1 . 200
Changes 5 9 10 1 . 1 200
Production 0 10 11 1 . 1 600
Marketing 0 6 12 . 1 . .
Dummy 0 8 6 . . . .
;
data widgr18;
set widgr17;
if prodeng ^= . then adelay = 0;
else adelay = 5;
run;
title 'Variable Activity Delay';
title2 'Data Set WIDGR18';
proc print;
run;
data resin17;
input per & date7. otype $
deseng mktan prodeng money;
format per date7.;
datalines;
. restype 1 1 1 4
01dec03 reslevel 1 . 1 .
;
data holdata;
format hol date7. name $9. ;
input hol & date7. name & ;
datalines;
25dec03 Christmas
01jan04 New Year
;
proc cpm date='01dec03'd
interval=weekday
data=widgr18
holidata=holdata
resin=resin17
out=widgo18
resout=widgro18;
tailnode tail;
duration days;
headnode head;
holiday hol;
resource deseng prodeng mktan money / period=per
obstype=otype
delayanalysis
actdelay=adelay
infeasdiagnostic
rcs avl t_float
cumusage;
id task;
run;
title 'Variable Activity Delay';
title2 'Resource Constrained Schedule';
proc print data=widgo18;
run;
title 'Variable Activity Delay';
title2 'Usage Profile';
proc print data=widgro18 heading=h;
run;
data negdelay;
set widgo18;
actdel=-t_float;
run;
proc cpm date='01dec03'd
interval=weekday
data=negdelay
holidata=holdata
resin=resin17
out=widgo18n;
tailnode tail;
duration days;
headnode head;
holiday hol;
resource deseng prodeng mktan money / period=per
obstype=otype
delayanalysis
actdelay=actdel
infeasdiagnostic;
baseline / set=early compare=resource;
id task;
run;
title 'Variable Activity Delay';
title2 'Resource Constrained Schedule';
title3 'Activity Delay = - (T_FLOAT)';
proc print data=widgo18n heading=v;
run;