Originally posted by: AdamGregory
Hi everyone,
I'm working on a complex scheduling problem where the ideal turnaround time for determining the optimal schedule is very short. Because of the size of the solution space and the time constraints for the problem, I do not believe it is possible to allow the solver to complete normally. Instead I believe I need to limit the optimizer to stop after a certain point. I notice that there are several ways to limit the optimizer solve time: timeLimit, branchLimit, failLimit, etc. can all be used to terminate the optimizer prematurely and work with the best solution found so far.
However, the schedule produced when the solver is terminated by limit is often obviously non optimal. It would be trivial to improve the objective function working from the provided schedule. For example, my model includes a set of optional interval with a penalty for each interval included. The solution found when the solver is terminated by a limit will often include a number of optional intervals with size 0--the penalty is included, but the intervals do not contribute any way to the solution. The objective function could be improved by removing these unnecessary intervals from the schedule.
I notice that for MILP problems using CPLEX there is an option to polish a solution, but I can not see any similar option available for CP problems. Is it possible to polish solutions found by the CP optimizer when the solver is terminated by a limit? Or is there an alternative way to achieve the desired result?
Thank you,
Adam
#CPOptimizer#DecisionOptimization