Originally posted by: bobby76
Hi,
I am relatively new to tuple. I want to develop a classical job shop scheduling using OPL, not CP optimizer. I have stuck to create operation precedence constraints for operation, i.e. operation o of job j precede operation o+1.
Here is my script:
int nJobs = ...;
int nMachines = ...;
int nPeriods = ...;
range jobs = 0..nJobs - 1;
range machines = 0..nMachines - 1;
range periods = 1..nPeriods;
tuple Operation{
int mch; // Machine
int pt; // Processing time
};
Operation ops[j in jobs][i in machines] = ...;
dvar boolean x[machines][jobs][periods];
dvar int Cmax;
minimize Cmax;
subject to
{
forall(i in machines, j in jobs)
sum(t in periods) x[i][j][t] == 1;
forall(j in jobs, i in machines)
sum(t in periods) (t + ops[j][i].pt) * x[i][j][t] <= Cmax;
forall(i in machines, t in periods)
sum(j in jobs, u in periods: u >= t - ops[j][i].pt) x[i][j][u] <= 1;
//This is where I stuck
forall(j in jobs, h in ops: h >= 2)
sum(t in periods) x[h][j][t] == 1;
}
Here is with tuple declaration:
nJobs = 6;
nMachines = 6;
nOperations = 6;
nPeriods = 17;
ops = [
[ <5,4>, <1,3>, <4,3>, <3,2>, <0,1>, <2,2> ],
[ <1,3>, <0,8>, <5,7>, <2,2>, <4,9>, <3,3> ],
[ <3,1>, <4,9>, <1,9>, <0,7>, <5,5>, <2,5> ],
[ <3,8>, <4,2>, <1,1>, <5,7>, <2,8>, <0,9> ],
[ <1,6>, <3,2>, <4,5>, <5,5>, <0,3>, <2,1> ],
[ <4,10>, <2,4>, <0,4>, <3,3>, <1,2>, <5,3> ]
];
Has anybody experienced in building job shop model, please help me. Your help is appreciated.
Best regards,
Bobby
#DecisionOptimization#OPLusingCPLEXOptimizer