[Clp] How is the barrier method initialized?

John Forrest john.forrest at fastercoin.com
Thu Oct 25 14:55:57 EDT 2012


Bo,

Directly - very little of OSL.  As in - read what OSL does and then do 
the same/different - a great deal.

The Coin-OR initiative was started at ISMP 2000 with me as "benevolent 
dictator" i.e. doing nothing.  Osi solver interface came first and Cgl.  
However a need arose for a factorization (for Gomory cuts) and I had 
written a "child of OSL" code to do structured parallel simplex.  I 
simplified the factorization from that (which explains some of the quirks).

Having a factorization, it was natural to start on Clp.  Basically the 
idea was to learn from the mistakes of OSL and make brand new mistakes.

With Clp there had to be an OsiClp.  The Osi interface specified a 
branch and bound function.  So how hard can it be to write a Simple 
Branch and Bound code?  I guessed 8 hours but it took 12. This became 
SBB but a) there was already some software called SBB and b) it stopped 
being simple - so Cbc.

For medium sized problems Clp was slower than OSL had been so I lifted 
the OSL factorization code and made it into an alternative factorization 
CoinOslFactorization.  So that is the only piece directly from OSL.  OSL 
itself was an IBM product from a Research code YKTLP which was made into 
a product as a large oil company said they would buy an IBM mainframe 
plus Vector Feature rather than a cheaper lookalike mainframe IF YKTLP 
became a product.  OSL was in Fortran (1987?) and later converted to C 
by a program f2c which does not produce elegant code (but then I have 
never been accused of writing elegant code).

I can hear the sound of snoring - but I hope that answers your question.

John Forrest

On 25/10/12 17:57, Bo Jensen wrote:
> John,
>
> Just out of curiosity, what's the history of CLP/CBC/OSL, I mean how 
> much of OSL were reused in some form ?
>
> /Bo
>



More information about the Clp mailing list