19 lines
680 B
Modula-2
19 lines
680 B
Modula-2
ScheduleHorizon = sum(j in Jobs, t in Tasks) duration[j, t];@\Vlabel{line:back:opl:horizon}@
|
|
Activity task[j in Jobs, t in Tasks] (duration[j,t]);@\Vlabel{line:back:opl:task}@
|
|
Activity makespan;@\Vlabel{line:back:opl:makespan}@
|
|
UnaryResource tool[Machines];@\Vlabel{line:back:opl:resources}@
|
|
|
|
minimize makespan.end@\Vlabel{line:back:opl:goal}@
|
|
subject to {
|
|
forall (j in Jobs)@\Vlabel{line:back:opl:con2}@
|
|
forall (t in 1..nbTasks-1)
|
|
task[j, t] precedes task[j, t+1];
|
|
|
|
forall (j in Jobs) @\Vlabel{line:back:opl:con1}@
|
|
task[j,nbTasks] precedes makespan;
|
|
|
|
forall (j in Jobs)@\Vlabel{line:back:opl:con3}@
|
|
forall (t in Tasks)
|
|
task[j, t] requires tool[resource[j, t]];
|
|
};
|