[Coin-lpsolver] presolve and Cbc/Clp
Kish Shen
ks15 at icparc.ic.ac.uk
Tue Aug 30 13:34:03 EDT 2005
Hi,
I have got some questions about presolving and Cbc with Clp as the LP
solver:
1) How useful is the integer presolving? It does not seem to be used in the
sample drivers (e.g. sample2) that comes with Cbc -- is this because it
does not improve solving times much, or is there some other reason for
this?
2) When should integer presolve be done? In my initial attempt to use it, I
called it just before calling branchAndBound (in a driver code that is
otherwise a version of Cbc's sample2 that John Forrest sent to me), this
seem to make things worse in many cases, but if I did the integer
presolve at the start, before cut generation etc, then this seem to
produce better results.
3) I am using Cbc/Clp through Osi: should the Osi presolve be turned on as
well? Here is the start of my code to set up the MIP solving:
lpd->lp->setHintParam(OsiDoPresolveInInitial, lpd->presolve, OsiHintDo, NULL);
// lpd->lp->initialSolve();
OsiSolverInterface * mipsolver = lpd->lp;
CglPreProcess process;
mipsolver = process.preProcess(*(lpd->lp), false, 5);
// mipsolver->resolve();
CbcModel model(*mipsolver);
if (lpd->presolve)
model.integerPresolveThisModel(mipsolver, false);
// follow by code taken from sample2 driver...
I tested with both OsiDoPresolveInitial set or not, and I was slightly
suprised that it does make a difference for some problems, but in some
cases they were solved faster, and in other they were solved slower, so I
can't tell if it is a good idea or not.
4) I am not sure if this was due to the presolve or not, but in one example
I tried (taken from MIPLIB's mzzv42z), the root node solve takes much
longer than the solving the problem as a linear problem (i.e. without
the integer constraints) -- on my machine, the linear problem was solved
in 8.5 seconds (with dual simplex), while the root solve took 1000
seconds or more (and in addition, it seems to be solved at the root
node at least three times, each one taking similar amount of time).
Is this normal, or is there something wrong with what I am doing?
Cheers,
Kish Shen
IC-Parc
Imperial College London
More information about the Clp
mailing list