if the model is feasible then terminate the solver
AnsweredHi, I formulated a bunch of MILP problems and want to test them in the followig way:
If the problem is infeasible, I compute its IIS; if it is feasible, I want to save time and skip the computation process(once gurobi thinks the problem is feasible). In other words, is there a way to set such a termination criteria for my model?
I have read "callback_c++.cpp" from examples.pdf and consider the callback is helpful. Does the following c++ code makes sense? Thank you.
void callback(){
try{
if ( where == GRB_CB_MIP ){
int solcnt = getIntInfo ( GRB_CB_MIP_SOLCNT );
if ( solcnt ) {
cout << " The model is feasible, Stop " << endl ;
abort ();
}}
catch ( GRBException e ) {
cout << " Error number : " << e . getErrorCode () << endl ;
cout << e . getMessage () << endl ;
} catch (...) {
cout << " Error during callback " << endl ;
}}
}
-
Official comment
This post is more than two years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum, or try Gurobot, our chatbot interface offering instant, expert-level support. -
Hi Langxun,
You don't need a callback to make Gurobi stop as soon as a first feasible solution has been found. You can instead set the SolutionLimit parameter to 1. This will make Gurobi terminate as soon as a feasible solution has been found.
Best regards,
Jaromił1 -
Thanks a lot!
0
Post is closed for comments.
Comments
3 comments