Hello,
I am new in Constraint Programming. I need to run a model to determine the tardiness of a set of 20 jobs in 5 machines. My model takes a long time running and cannot get an exact solution. Could someone give me some hint?
The model and data are below. Thank you all
Hermilio Vilarinho
================================================================================================================
using CP;
//Parameters
int nJobs=...;
range Jobs=1..nJobs;
int nMachines=...;
range Machines=1..nMachines;
int Duration[Machines][Jobs]=...;
int Due_Date[Jobs]=...;
//Decision variables
dvar interval Process[j in Jobs][m in Machines] size Duration[m][j];
dvar sequence Seqm[m in Machines] in all(j in Jobs) Process[j][m];
execute {
cp.param.TimeLimit = 3600;
}
//Objective Function
dexpr int Tardiness[j in Jobs] = maxl(0, endOf(Process[j][nMachines])-Due_Date[j]);
minimize sum (j in Jobs) Tardiness[j];
//Constraints
subject to {
forall (m in Machines)
noOverlap(Seqm[m]);
forall (j in Jobs, o in 1..nMachines-1)
endBeforeStart(Process[j][o], Process[j][o+1]);
};
================================================================================================
Data:
nJobs=20;
nMachines=5;
Duration=[[54 83 15 71 77 36 53 38 27 87 76 91 14 29 12 77 32 87 68 94],
[79 3 11 99 56 70 99 60 5 56 3 61 73 75 47 14 21 86 5 77],
[16 89 49 15 89 45 60 23 57 64 7 1 63 41 63 47 26 75 77 40],
[66 58 31 68 78 91 13 59 49 85 85 9 39 41 56 40 54 77 51 31],
[58 56 20 85 53 35 53 41 69 13 86 72 8 49 47 87 58 18 68 28]];
Due_Date=[300 300 300 300 300 500 500 500 500 500 1000 1000 1000 1000 1000 1200 1200 1200 1200 1200];
------------------------------
Hermilio Carneiro Vilarinho Fernandes
------------------------------
#DecisionOptimization