Originally posted by: Laci Ladanyi
The problems you try to feed to cplex are extremely badly conditioned.
The fact that the coefficients are between -1.5 and 1.5 means nothing, what matters is the magnitude of the numbers. You have numbers on the order of 1e00 and numbers on the order of 1e-15, and a significant number of both at that. You just simply cannot expect any software using double precision input to work with such numbers. Also, at a cursory glance it seems almost every number is either on the order of 1e-1 to 1e00 or on the order of 1e-16 to 1e-14. In other words, there is a huge gap in precision. Are you *sure* that those tiny numbers are not round-off errors from your previous calculations? Should not they be 0?
Finally, while it is true that the corresponding entries in LP1 and LP2 are not very different, look at where the differences are! For example:
LP1: c25: - x1 + 1.33226762955019e-15 x3 - x4 + 3.88578058618805e-16 x5 + 2.22044604925031e-16 x6 <= 0.0300000000000004
LP2: c25: - x1 - x4 <= 0.0299999999999999
or:
LP1: c31: x1 + 3.49720252756924e-15 x3 + 4.55191440096314e-15 x4
+ 1.99840144432528e-15 x5 + 6.38378239159465e-16 x6 <= 0.330000000000002
LP2: c31: x1 + 1.2490009027033e-15 x3 + 1.52655665885959e-15 x4
+ 6.93889390390723e-16 x5 + 3.12250225675825e-16 x6 <= 0.330000000000001
In the first case a jump from 0 to nonzero is bad. In the second case the coefficients are doubled and tripled. So even though the absolute difference is small, the relative difference is huge, and the relative difference matters a lot more in terms of sensitivity than the absolute difference.
I recommend that you take a very serious look at how you generate these instances. First, decide whether those tiny numbers should really be 0. If you must have them, then try to scale the rows or columns so that there is no such big discrepancy in the magnitude of the coefficients. If that is impossible, too, then you can try to use an arbitrary precision solver, though I'm afraid that won't be much use for you either, since a solver is only as good as the data fed in: the exact solver will just amplify the round-off errors you get from your previous computations.
--Laci
#CPLEXOptimizers#DecisionOptimization