[Coin-announce] Hints, Clp and Sbb new versions
John J Forrest
jjforre at us.ibm.com
Wed Jan 22 16:41:41 EST 2003
I have found it useful to be able to indicate to the Open Solver Interface
whether I want to use primal or dual even when resolving a problem. I have
also found that using presolve helps Clp on many problems, but I don't wish
to make it default at present. So I have implemented "hints".
The idea is that when you instantiate a particular solver you pass hints
OsiSolverInterface * clpSi = new OsiClpSolverInterface;
clpSi->setHintParam(OsiDoPresolveInInitial, true, OsiHintTry); (last two
This will do presolve in initial solve, not in resolves.
The solver can mostly ignore hints - the exception is when the strength is
OsiHintForce. In this case the solver has to take the hint or throw an
exception if it is unable to accept the hint. The current possible hints
are in OsiSolverParameters.hpp.
There is no need for any solver to modify any interface unless someone
wants to. I will be making modifications to the Osl and Clp interfaces to
make Simple Branch and Bound look cleaner e.g. adjusting amount of messages
in a more uniform way.
With giving hints the Clp time for the netlib unit test reduces from 324
seconds to 194.
I feel that Clp is mature enough to start being serious about versions so
the version of Clp just checked into cvs has a tag of clp-0-94.1 i.e. Clp
Sbb has been re-written to make it easier for contestants to add their own
ideas - there is a posting in coin-contest. Although Sbb is much less
mature, I think it is ready to be useful to anyone entering contest so it
too should have versions so people can get stable versions. The current
version is sbb-0-60-0. Sbb uses Sbb, Clp, Cgl, Osi and Coin so all these
have tags (For Clp and Osi this corresponds to clp-0-94-0 i.e. before
More information about the Coin-announce