I set an initial feasible solution with previously generated feasible solution by the same model. When I provide an entire solution set (or closer to 90%, i.e., among 1000 interval variables, 900 are given) as a startingpoint, the setStartingPoint method works well. However, when I provide less than 90% of solution, then CP model fails to set the starting point, not even a partial. Note all interval variables are optional in this problem and there is no constraint that forces a minimum number of intervals. So, this failure does not make sense. Can you please give me an insight?
sol.setStart(thisOplModel.modes[thisOplModel.Modes.get(pre.o, pre.m)], pre.s);
sol.setEnd(thisOplModel.modes[thisOplModel.Modes.get(pre.o, pre.m)], pre.e);
cp.setStartingPoint(sol);
In addition, the following code ensures the recipe compatibility of jobs in the same machine. I found it becomes slower when the problem size get increased. Is there any alternative way of handling the job compatibility constraint? Also, if I remove the following code, the setStartingPoint method works well with less than 90% of solution.
forall(md in Modes) alwaysEqual(Batches[md.mch], modes[md], md.recipe, true, true);
! Using iterative diving.
! Giving up trying to complete the starting point to a full assignment.
* 0 9,937 3.85s 1 (gap > 10000%)
Thanks,
------------------------------
Andy Ham
------------------------------