MODEL:
! Data for this model is read from MRP.LDT;
SETS:
! The set of parts;
PART/ @FILE( 'MRP.LDT')/ : LT;
! LT(i) = Lead time to produce part i;
! The set of time periods;
TIME / @FILE( 'MRP.LDT')/;
! A relationship called USES between pairs of parts;
USES( PART, PART) / @FILE( 'MRP.LDT') / : NEEDS;
! Parent part i needs NEEDS(i, j) units of
child part j;
! For each part and time period we're interested in;
PXT( PART, TIME): ED, TD;
! ED(i, j) = External demand for part i at time j;
! TD(i, j) = Total demand for part i at time j;
ENDSETS
! Set NP = no. of time periods in the problem;
NP = @SIZE( TIME);
! For each part P and period T, the total demand =
external demand + demand generated by parents
one lead time in the future;
@FOR( PXT( P, T)  T + LT( P) #LE# NP :
TD( P, T) = ED( P, T + LT( P)) +
@SUM( USES( P2, P): TD( P2, T + LT( P)) *
NEEDS( P2, P));
);
DATA:
! Get number of parts needed in each parent child
relation;
NEEDS = @FILE( 'MRP.LDT');
! Get the lead times from the file;
LT = @FILE( 'MRP.LDT');
! Get the external demands over time for each part;
ED = @FILE( 'MRP.LDT');
ENDDATA
END
