[Clp] high precision floating point numbers
John J Forrest
jjforre at us.ibm.com
Wed May 13 09:31:08 EDT 2009
Alexey,
I have sent you an updated driver which I hope will help.
For the benefit of others who use Clp, I would like to point out two bad
features of the Clp library which can cause performance problems, but which
are easy to get round. These defects do not occur in the stand-alone
solver.
The first is the way Clp adds a row to a problem. As it uses
CoinPackedMatrix it adds a row to that. Adding one row to a 100,000 row
problem means allocation of memory and moving everything. Doing this
repeatedly can take a long time. There is also a CoinModel object which
uses the same syntax to add a row but keeps the data in a very different
way. It is easy to build up a model using CoinModel and then transferring
it to a ClpModel. This can give a speedup of a 100! See addRows.cpp in
clp/examples
The second is perturbation, or rather the lack of it. Many problems
exhibit degeneracy due to ties in pivot choice. This is easy to alleviate
by perturbing something e.g. the objective for dual simplex. This is done
automatically if perturbation is set on, but the default is off. The
recommended setting is
setPerturbation(50);
John Forrest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20090513/2aa4d3e7/attachment.html>
More information about the Clp
mailing list