jalopez910
jalopez910

Reputation: 69

how to pause CPLEX during a B&B execution and feed it with a solution?

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

Answers (2)

Alex Fleischer
Alex Fleischer

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.

https://www.ibm.com/support/knowledgecenter/en/SSSA5P_12.9.0/ilog.odms.ide.help/refjavaopl/html/ilog/opl/IloCplex.MIPStartEffort.html

Upvotes: 1

Xavier Nodet
Xavier Nodet

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

Related Questions