[Coin-discuss] Reorganisation CglPreprocess & Cbc (was Adding SOS data)

Lou Hafer lou at cs.sfu.ca
Wed Sep 13 11:52:55 EDT 2006


Folks,

	One suggestion would be to pass a CbcModel into CglPreprocess.  If a
design principle for a problem modification algorithm (cut generator, heuristic,
preprocessor) is to pass in a model with sufficient information for the
algorithm to do its job, then passing in a CbcModel makes more sense.  To
translate between original and preprocessed variables would seem to require an
audit trail of the same nature as CoinPreprocess for continuous LPs.

	Coincidental to this, I decided to try a major reorganistion of
cbc-generic to make it easier to maintain and extend to additional solvers.  (I
realised I just wasn't going to be able to maintain cbc-generic in the present
form.)  The organising principle is that parameters act on objects.  I've
created a CoinParameter base class (with helper functions for parameter
processing), from which I get derived classes that work on a CbcGenCtlBlk (new
control object for the main program), CbcModel, and OsiSolverInterface.  Derived
parameter classes hold pointers to the object to be modified and a function that
does the modification or performs some action.

	Should be extensible to a fourth class, which would be specialised for
an individual solver.  Specialisations from the fourth class could be installed
to supplement or override OsiSolverInterface, CbcModel, or CbcGenCtlBlk
parameter objects.  Thus when a solver is chosen at run-time, the appropriate
parameter objects can be installed to take advantage of solver capabilities (at
least at the level of the main program).  Also makes it easy to determine which
features are unimplemented for a particular underlying solver.

	This is a bit premature to announce, but seems useful to mention if
we're going to start a discussion on organisation of Cbc components.  All the
infrastructure is up and running, but still very fluid.  I'm just getting to
the interesting part of the functionality (setup and execution for branch-and-
cut) but it looks promising. Another week should tell the tale.

							Lou




More information about the Coin-discuss mailing list