[Coin-lpsolver] CLP features

John J Forrest jjforre at us.ibm.com
Mon Mar 6 12:06:22 EST 2006


Michal,

coin-lpsolver-bounces at list.coin-or.org wrote on 03/06/2006 10:19:31 AM:

> Hello,
> 
> Our company needs an LP solver for our optimization problem, and is
> considering CLP as one of the alternatives. We have, however, some
> special requirements, so we need to know whether CLP satisfies them (or,
> how big changes we would have to make in order to satisfy them). I will
> be grateful for any answers, tips, and/or comments:
> 
> So, here is the list:
> 
> - Is it possible to enforce certain basis changes violating
> non-negativity of some basic variables, with a return phase afterwards
> that restores the non-negativity in a fast way with high priority?

Not quite sure what you mean here.  I would think it should be handled at 
the modeling level by adding extra variables and then using the same 
techniques as you outline below.

> - Is it possible to specify, for each iteration, a subset of non-basic
> variables, from which the new variable entering the basis is chosen?

Easy to modify code.  You would just derive a class probably from 
ClpPrimalColumnSteepest

> - Is it possible to provide a procedure that decides whether a non-basic
> variable is wanted as a candidate for entering the basis or not?

Same as above

> - Is it possible to restrict basis changes of piecewise linear variables
> ? Example: a difference between a production and the demand is modelled
> by variables y_1, y_2..., with increasing costs c_1, c_2,... Is it
> possible to limit the corresponding basis changes e.g. only into a
> positive direction, i.e. y_i can only be replaced by y_j, j>i ?

A bit uglier - assuming it is modeled correctly (so that it is feasible to 
replace) then it is easy to do but would involve small changes to 
ClpSimplexPrimal::primalRow.  If of more general use then a hook could be 
provided so base code would not have to be modified.

You could also look at some of the OsiSolverInterface functions and the 
example in OsiClpSolverInterfaceTest.cpp (search for solve an lp by hand. 
However modifying Clp directly would give much greater reliability and 
greater speed.


John Forrest
> 
> 
> Thanks a lot in advance.
> 
> Regards,
> 
> Michal Kaut
> Tieto Enator
> 
> 
> _______________________________________________
> Coin-lpsolver mailing list
> Coin-lpsolver at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-lpsolver
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20060306/63a7a69c/attachment.html>


More information about the Clp mailing list