[Coin-discuss] OsiCpx optimality for MIPs

Matthew Saltzman mjs at ces.clemson.edu
Fri Jan 28 15:07:35 EST 2005


On Fri, 28 Jan 2005, Brady Hunsaker wrote:

> I just ran into a quirk with OsiCpx solving a MIP.  CPLEX 9.0 has default gap 
> parameters so that it stops the branch-and-bound process if the gap gets 
> within 0.01% or an absolute value of 0.000001.
>
> This caused the solution process to stop, but OsiCpx->isProvenOptimal() 
> returned false, because CPLEX returns a separate return code 
> (CPXMIP_OPTIMAL_TOL) for this situation.
>
> I believe this should be corrected.  I can see two possible solutions:
> 1. Reply true to isProvenOptimal() if CPXMIP_OPTIMAL_TOL is returned, even 
> though this is technically incorrect.
> 2. Explicitly set the gap parameters to 0 in branchAndBound().
>
> I'm using the first solution right now, but I'd like to hear any other 
> opinions, especially from OsiCpx maintainers.
>
> Brady

My first reaction is in favor of solution 1.

(1) Overriding tolerances that users may have reason to set is a bad idea.

(2) Most users probably would accept that a solution that's within 
tolerance is optimal "for all practical purposes".  If a user wants a 
guarantee of optimality, he can set CPXMIP_OPTIMAL_TOL to zero himself.

Is this a small enough example to pass around for testing?  I wonder how 
other solver/SI combinations handle this issue.

-- 
 		Matthew Saltzman

Clemson University Math Sciences
mjs AT clemson DOT edu
http://www.math.clemson.edu/~mjs



More information about the Coin-discuss mailing list