SETS:
TASKS /
@OLE( 'C:\LINGO5\SAMPLES\PERTOLE.XLS', 'TASKS')/:
TIME, ES, LS, SLACK;
PRED( TASKS, TASKS) /
@OLE( 'C:\LINGO5\SAMPLES\PERTOLE.XLS',
'BEFORE', 'AFTER')/:Z;
ENDSETS
DATA:
TIME =
@OLE( 'C:\LINGO5\SAMPLES\PERTOLE.XLS');
@OLE( 'C:\LINGO5\SAMPLES\PERTOLE.XLS') = ES, LS;
ENDDATA
@FOR( TASKS( J)| J #GT# 1:
ES( J) = @MAX( PRED( I, J): ES( I) + TIME( I))
);
@FOR( TASKS( I)| I #LT# LTASK:
LS( I) = @MIN( PRED( I, J): LS( J) - TIME( I));
);
@FOR( TASKS( I): SLACK( I) = LS( I) - ES( I));
ES( 1) = 0;
LTASK = @SIZE( TASKS);
LS( LTASK) = ES( LTASK);
|