[Couenne] Obscure error message when running Couenne
design at np-soft.ru
design at np-soft.ru
Tue Jun 1 12:44:27 EDT 2010
Dear developers,
I have found some strange cutting planes.
If (x in -32000.0..32000.0) then constraint z = x ^ 2 gives the planes:
z+2*x>=-1
z+x>=-0.25
z-x>=-0.25
z-2*x>=-1
If (x in -31000.0..31000.0) then constraint z = x ^ 2 gives "normal" planes:
z+62000*x>=-961000000
z+31000*x>=-240250000
z-31000*x>=-240250000
z-62000*x>=-961000000
It looks conditions with "powThres" sets range to -1..1 for variable x.
Unfortunately I can not have tests in C++. Sources were converted to VB. Of
course strange cutting planes maybe a result of my conversion error. But it
seems the follow code in "exprPow::generateCuts" has a "bug":
if (k > COUENNE_EPS) {
if (u > powThres) u = CoinMax (x,l) + powStep;
if (l < - powThres) l = CoinMin (x,u) - powStep;
}
else {
if (fabs (l) < COUENNE_EPS) l = 1. / powThres; // l --> 0+
if (fabs (u) < COUENNE_EPS) u = -1. / powThres; // u --> 0-
}
addPowEnvelope (cg, cs, w_ind, x_ind, x, w, k, l, u, sign);
k is 2, l is -32000, h is 32000, x is zero, powStep is 1. If execute below
code then l is sets to -1 and u is sets to 1 ...
Sergey
More information about the Couenne
mailing list