Andrew,

The do_refine() function of proximity search tries to use either
glp_intopt() or glp_simplex() depending on whether there are any general
integer variables left after fixing all the binary ones. Unfortunately, if
the time limit is reached, the only check is for the status being
GLP_UNDEF. This is OK for glp_intopt(), but if glp_simplex is in phase I
the status will be GLP_INFEAS.

I noticed this trying to solve neos13.mps from miplib with:
glpsol --fpump --proxy neos13.mps
The problem was more obvious with versions up to 4.56 where the returned
solution is so low that the search finishes instantly. With version 4.57
the solution is again wrong, but the search continues and shows another
issue (which will be the topic of a separate email).

The attached patch modifies the error handling in do_refine() to account
for this and to work in  case the returned status is GLP_UNDEF or
GLP_INFEAS irrespective of whether the time limit expired.

Best Regards,

Chris Matrakidis

Attachment: proxy.patch
Description: Binary data

_______________________________________________
Bug-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-glpk

Reply via email to