[Coin-lpsolver] basisIsAvailable()

Matthew Saltzman mjs at ces.clemson.edu
Tue Nov 8 18:34:42 EST 2005


On Tue, 8 Nov 2005, John J Forrest wrote:

> Francois,
>
> The description of basisIsAvailable does not say anything about an optimal
> basis.  I thought it was more so you can distinguish Volume algorithm.
>
> I can add optimalBasisIsAvailable if you want but can the OsiCpx
> maintainer tell me what they think basisIsAvailable means?

I think Tobias must have written it, but the implementation of 
OsiCpxSolverInterface::basisIsAvailable() calls CPXsolninfo() and returns 
the value of the expression solntype == CPX_BASIC_SOLN.  So it is 
reporting whether there is a current solution together with basis.  Other 
return codes from CPXsolninfo() (according to cplex.h) are CPX_NO_SOLN, 
CPX_NONBASIC_SOLN, CPX_PRIMAL_SOLN.

>From the CPXsolninfo() man page, one parameter is:

     [a] pointer to an integer variable indicating the type of solution
     currently available. Possible return values are CPX_BASIC_SOLN,
     CPX_NONBASIC_SOLN, CPX_PRIMAL_SOLN, and CPX_NO_SOLN, meaning the model
     either has a simplex basis, has a primal and dual solution but no
     basis, has a primal solution but no corresponding dual solution, or
     has no solution, respectively.

The status is valid until the problemis destroyed or the solution is 
rendered invalid by problem mods.

Originally, Francois wrote:

>
>
> The function OsiClpSolverInterface::basisIsAvailable() always returns
> true. This is a little bit dangerous. If modifications are made to the
> solver after the last optimization (change of bound on variables, in
> particular), the available basis might be (primal or dual, or both)
> infeasible.
>
> Then, calling cut generators such as Gomory and Reduce-and-Split might
> result in invalid cuts. The only way (as far as I can tell) to prevent
> this
> is to rely on basisIsAvailable() to stop the cut generator if the current
> basis is not optimal anymore.
>
> Cplex is tracking the status of the basis accurately, but Clp does not.
> Is it possible to fix that?

-- 
 		Matthew Saltzman

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



More information about the Clp mailing list