Originally posted by: TRAN Van Ut
Thank you very much,
With the time limited and the old model, all are very good.
However, with below model, I don't understand why the solving start at a very big value (For example, with n = 20, all the case start at Best Integer 36100; or with n = 100, start at Best Integer 2.13266e+007 ). In fact the acceptable objective value can not be bigger than n(n-1)/2.(n is "nbJobs" in the code).
But with n=60, it starts with Best Integer 1157
So, in 600s, most of results with n>60 have the unacceptable values (i.e they are bigger too much then n(n-1)/2)
range Process = 1..nbJobs;
int p [Process] = ...;
int d [Process] = ...;
dvar int+ nn[Process][Process];
dvar boolean x[Process][Process];
dvar int+ h;
minimize h;
subject to
{
forall(k in Process)
sum(j in Process) x[j][k] == 1;
forall(j in Process)
sum(k in Process) x[j][k] == 1;
forall(j in 1..(nbJobs-1),k in 1..(nbJobs-1))
nn[j][k] >= sum(jp in (j + 1)..nbJobs,kp in (k + 1)..nbJobs)x[jp][kp] - nbJobs* (1 - x[j][k]);
h == sum(j in Process, k in Process) nn[j][k];
forall (k in Process)
sum(j in Process,l in 1..k ) p[j]*x[j][l]- sum(j in Process)d[j]*x[j][k] <= 0;
}
Thanks in advance,
Best regards,
#DecisionOptimization#OPLusingCPLEXOptimizer