MPL Model Library
MachSched, Example 10, Winston
{ Exmpl9.3-10_MachSched.mpl }
{ Winston, Operations Research, Applications and Algorithms, 4th ed. }
{ Chapter 9.3, Example 10, Machine Scheduling (MIP), Size: 5x6, Page 528 }
TITLE
MachSched;
INDEX
job := 1..4;
job2 := job;
order := 1..4;
order2 := order;
DATA
Duration[job] := ( 6, 4, 5, 8);
DueDate[job] := ( 8, 4,12,16);
BINARY VARIABLES
Assign[job,order];
VARIABLE
Delay[job];
! TotalDelay;
MODEL
MIN TotalDelay = SUM(job: Delay);
SUBJECT TO
! ORDA[order ORDS:
! SUM(job,order2<=order: Assign[order:=order2] * Duration) <= SUM(job,order2=1..order+1: Assign[order:=order2] * Duration);
DoJobs[order] -> DJB:
SUM(job: Assign) = 1;
DoJobsA[job] -> DJBO:
SUM(order: Assign) = 1;
CalcDelay[job,order] -> CDL:
SUM(order2<=order: Assign[order:=order2] * Duration - Assign[order:=order2] * DueDate) = Delay;
END
Return to MPL Model Library