[Cbc] Question about Presolve
rpf at gmx.li
rpf at gmx.li
Wed Jul 28 02:46:07 EDT 2010
Hi everyone,
I am using Cbc to solve a problem of size ~1500 constraints. I used
Cbc 2.2 through its AMPL interface, which worked well (solved in about
4 sec).
This model actually appears somewhere in my C++ application (linked to
Cbc trunk), where I get it in form of an OsiSolverInterface. I tried
to solve it without presolve, but that seems to take way more time. As
I was looking through the examples to figure out the correct way to do
presolve, I found three different methods/classes:
1. CglPreProcess: As used in examples/driver.cpp, worked for simple
models, but failed for the one mentioned above with something like
"infeasible - possible tolerance issue" - but I know that the model is
feasible
2. CbcModel::integerPresolve: When I looked through the code of Cbc
2.2 (because that code managed to solve my problem), I found that it
called this member. That, however, calls integerPresolveThisModel,
which is marked deprecated in the trunk code.
3. There is a OsiPresolve class, but that seems to be low-level, and
CglPreProcess has an instance of that so I suppose that's basically
the same?
So which one is the preferred / most effective way to presolve a problem?
Any clues helping me understand this are appreciated
Hans
More information about the Cbc
mailing list