if the model is feasible then terminate the solver
回答済みHi, 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 ;
}}
}
-
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
サインインしてコメントを残してください。
コメント
2件のコメント