Hi
.mod
using CP;
int nbJobs = ...;
int nbMchs = ...;
range Jobs = 0..nbJobs-1;
range Mchs = 0..nbMchs-1;
int OpDurations[j in Jobs][m in Mchs] = ...;
dvar interval itvs[j in Jobs][m in Mchs] size OpDurations[j][m];
dvar sequence mchs[m in Mchs] in all(j in Jobs) itvs[j][m] types all(j in Jobs) j;
dvar sequence jobs[j in Jobs] in all(m in Mchs) itvs[j][m];
int values[j in Jobs][m in Mchs] = ...;
execute {
cp.param.TimeLimit = 5;
}
minimize sum(j in Jobs) (max(m in Mchs) endOf(itvs[j][m]));
subject to {
forall (j in Jobs)
noOverlap(jobs[j]);
forall (m in Mchs)
noOverlap(mchs[m]);
}
execute {
writeln("sol");
for (j in Jobs)
for (m in Mchs)
write(Opl.startOf(itvs[j][m]), " ");
writeln();
}
main {
thisOplModel.generate();
var sol = new IloOplCPSolution();
for (j in thisOplModel.Jobs)
for (m in thisOplModel.Mchs)
sol.setStart(thisOplModel.itvs[j][m],thisOplModel.values[j][m]);
if (cp.solve()!=0)
thisOplModel.postProcess();
cp.setStartingPoint(sol);
cp.solve();
if (cp.solve()!=0)
thisOplModel.postProcess();
}
.dat
// OPENSHOP .DAT FILE
nbJobs = 4;
nbMchs = 4;
OpDurations = [
[34, 2, 54, 61]
[15, 89, 70, 9]
[38, 19, 28, 87]
[95, 7, 34, 29]
];
values =[];
// END OF .DAT FILE
work fine
------------------------------
ALEX FLEISCHER
------------------------------
Original Message:
Sent: Tue September 29, 2020 10:04 AM
From: Francisco Yuraszeck
Subject: I can not set a starting point for an interval dvar using CP Optimizer
Thank you Alex.
I made the following changes in my .mod file (BTW I think there is for j in thisOplModel.Jobs instead for j in thisOplModel.jobs):
------------------------------
Francisco Yuraszeck
Yuraszeck
------------------------------
Original Message:
Sent: Tue September 29, 2020 03:03 AM
From: ALEX FLEISCHER
Subject: I can not set a starting point for an interval dvar using CP Optimizer
Hi,
instead of
for j in jobs
you should rather write
for j in thisOplModel.jobs
since jobs is an object that belongs to the model.
------------------------------
ALEX FLEISCHER