Originally posted by: SystemAdmin
[Optimizatron said:]
I need some genious help... working on a model which schedules jobs with the goal of minimizing resource usage, while meeting job time windows. My formulation is below... seems like it should work, but I have a syntax error telling me that I can't use the dvar for job starting time to define a summation range (in the first constraint). Any workarounds or alternative formulations for this?
int numJobs = ...;
range Jobs = 1..numJobs;
int numPeriods = ...;
range Periods = 1..numPeriods;
int earliestStart[Jobs] = ...;
int latestStart[Jobs] = ...;
int serviceTime[Jobs] = ...;
dvar boolean startJob[Jobs][Periods];
dvar boolean busyResource[Jobs][Periods];
dexpr int startTime[j in Jobs][t in Periods] = t*startJob[j][t];
minimize maxl (sum (t in Periods, j in Jobs)busyResource[j][t]);
subject to {
forall (j in Jobs)
sum (t in Periods:startTime[j][t]<=t<=t+serviceTime[j]+1) busyResource[j][t]== serviceTime[j];<br />
forall (j in Jobs)
sum (t in Periods:earliestStart[j]<=t<=latestStart[j])startJob[j][t]==1;<br />
};
#DecisionOptimization#OPLusingCPLEXOptimizer