[Couenne] Bug in adjust of branching intervals?
Francois Margot
fmargot at andrew.cmu.edu
Fri May 20 09:55:36 EDT 2011
Hi:
I believe that there is a bug in
trunk/Couenne/src/branch/CouenneBranchingObject.cpp. Around line 163, we
have:
if (integer && (::isInteger (brpt))&& (way==!
firstBranch_))
brpt += 1.;
But this is incorrect: if firstBranch_=1 and branchIndex_=0, we have
way=1 (up branch) for the first branch and way=0 (down branch) for the
second.
if the bounds on the variable are currently [0, 2] and brpt is 1, the
interval will be
up branch: [1, 2] (correct)
down branch: [0, 2] (incorrect, it should be [0, 0]).
To fix this, brpt += 1.; should be replaced by
if(way) { // up branch increase brpt
brpt += 1.;
}
else {
brpt -= 1.;
}
Francois
More information about the Couenne
mailing list