No subject


Tue Jan 24 09:57:31 EST 2012


setting "fp_enabled" to 0 and perhaps also try disabling the
pre-solver by setting "prep_level" to 0. These would be two of the
main differences between 5.1 and 5.4

> The reply on the basis condition number from Ted was a good reminder to
> check the coefficients.
>
> After some re-work I was able to elimate a couple of large coefficients (in
> the order of 4e6/5e6).
>
> Now it solves in 5.4.3 as well.

Great.

> Could anyone help me with:
>
> -        Is there an example available the usage conditionNumber in
> CoinUtils?
> I don’t know how to use that within the current Symphony code base.

I took a look at it and it looks like this method can be used to
estimate the condition of a single basis matrix after it has been
factorized, so I'm not sure it would really be useful for the purposes
you are after, since the stability of a MIP instance overall has to do
with the condition number of the different bases that arise in
different nodes in the search tree. CPLEX has a routine for computing
the condition number of a MIP that somehow samples different bases and
comes up with an overall number. The documentation is here:

http://publib.boulder.ibm.com/infocenter/cosinfoc/v12r2/index.jsp?topic=%2Filog.odms.cplex.help%2FContent%2FOptimization%2FDocumentation%2FCPLEX%2F_pubskel%2FCPLEX1000.html

If you want to do your own sampling, the only place in SYMPHONY (or
anywhere in the COIN code base) that the condition number is used is
in CglGomory.cpp. If you look there, you will see how to call it. You
could try printing out the condition numbers that arise in calling
CglGomory to get a better idea, or even accumulate some overall
average condition number by keeping track in a global variable (a
hack, but it should work).

> -        Or could Symphony give a warning in a log file via some option?

Unfortunately, no, but it is something to keep in mind for addition in
the future.

> And what is a critical value for the condition number?
>
> Could 10^6 still be ok?

That's probably pushing it. If it's a pure integer program, it's
possible this wouldn't completely kill the computation, but the
solutions to the LP relaxations are going to have errors on that order
even for a well-conditioned matrix, so 10^6 is likely to be bad.

Cheers,

Ted
-- 
Dr. Ted Ralphs
Associate Professor, Lehigh University
(610) 628-1280
ted 'at' lehigh 'dot' edu
coral.ie.lehigh.edu/~ted



More information about the Symphony mailing list