Reputation: 69
I would like to find a way to feed CPLEX with solutions while it is solving a minimzation MIP. These solutions come from heuristics that I run in parallel to CPLEX. The whole approach is modeled in Java and I call CPLEX using IloCplex.
I tried to set a time limit on CPLEX and, once paused, feed the new solution to the CPLEX model using MIPStarts. However, when I run again the CPLEX model, it says the solutions I provided are not feasible even though I'm sure they are. Actually, CPLEX accepts these solutions when I completely restart the model, which is not what I want because by doing this the exploration of the b&b tree starts all over again form the root node.
Upvotes: 1
Views: 388
Reputation: 10059
if you want to bypass all checks you may use nocheck as the MIP start effort level
NoCheck CPLEX accepts the MIP start without any checks.
Upvotes: 1
Reputation: 5085
Rather than stopping CPLEX entirely in order to provide a mip-start, you may want to use callbacks and inject solutions during the search. The relevant section of the User's Manual is https://www.ibm.com/support/knowledgecenter/SSSA5P_12.9.0/ilog.odms.cplex.help/CPLEX/UsrMan/topics/progr_adv/callbacks/introCallbacks.html, and the reference for the Java API is at https://www.ibm.com/support/knowledgecenter/SSSA5P_12.9.0/ilog.odms.cplex.help/refjavacplex/html/ilog/cplex/IloCplex.Callback.html.
It seems odd that a solution would be accepted as a mip-start at the beginning of the search, but not when the search is already started and CPLEX is interrupted. If you can reproduce this behavior using the CPLEX Interactive, I suggest you post a question at https://www.ibm.com/developerworks/community/forums/html/forum?id=11111111-0000-0000-0000-000000002059 and attach the files that would allow to reproduce the issue.
Upvotes: 2