This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.

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]];
};