Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/v9-minor'
Browse files Browse the repository at this point in the history
  • Loading branch information
scip-ci committed Oct 1, 2024
2 parents 9511b02 + 321412b commit d78e72e
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 7 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,8 @@ Miscellaneous
Fixed bugs
----------

- skip constraint propagation if the residual activity bound cancels the side precision in tightenVarBounds() of cons_linear.c

Unit tests
----------

Expand Down
3 changes: 2 additions & 1 deletion check/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,8 @@ set(pairs_Issue
"instances/Issue/3633.lp\;0\;default"
"instances/Issue/3662_1.cip\;0\;default"
"instances/Issue/3662_2.cip\;0\;default"
"instances/Issue/3675.cip\;0\;default"
"instances/Issue/3675_1.cip\;0\;default"
"instances/Issue/3675_2.cip\;0\;presolving_heuristics_off"
"instances/Issue/3681.cip\;0\;default"
"instances/Issue/3688.cip\;131882\;reduced_presolving"
"instances/Issue/3693.cip\;7812672.2316\;default"
Expand Down
2 changes: 2 additions & 0 deletions check/coverage/settings/presolving_heuristics_off.set
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
emphasis:presolving off
emphasis:heuristics off
File renamed without changes.
13 changes: 13 additions & 0 deletions check/instances/Issue/3675_2.cip
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
STATISTICS
Problem name : original
Variables : 2 (0 binary, 0 integer, 0 implicit integer, 2 continuous)
Constraints : 0 initial, 2 maximal
OBJECTIVE
Sense : minimize
VARIABLES
[continuous] <Bl_773787165>: obj=0, original bounds=[0,+inf]
[continuous] <Bl_n851284021>: obj=0, original bounds=[25.29577886646666,25.29577886646666]
CONSTRAINTS
[linear] <Bl_751395283>: +6.14276318700036e-09<Bl_773787165>[C] +7.40596294403076<Bl_n851284021>[C] == 187.339600950748;
[linear] <Bl_1194330149>: +57<Bl_773787165>[C] == 234.759179076058;
END
20 changes: 14 additions & 6 deletions src/scip/cons_linear.c
Original file line number Diff line number Diff line change
Expand Up @@ -6793,8 +6793,11 @@ SCIP_RETCODE tightenVarBounds(

if( val > 0.0 )
{
/* check, if we can tighten the variable's bounds */
if( !isminsettoinfinity && !SCIPisInfinity(scip, rhs) && ismintight )
/* check, if we can tighten the variable's bounds reliably, therefore only consider sides which are small or
* relatively different to the residual activity bound to avoid cancellation leading to numerical difficulties
*/
if( !isminsettoinfinity && !SCIPisInfinity(scip, rhs) && ismintight
&& ( SCIPisLT(scip, ABS(rhs), 1.0) || !SCIPisEQ(scip, minresactivity / rhs, 1.0) ) )
{
SCIP_Real newub;

Expand Down Expand Up @@ -6847,7 +6850,8 @@ SCIP_RETCODE tightenVarBounds(
}
}

if( !ismaxsettoinfinity && !SCIPisInfinity(scip, -lhs) && ismaxtight )
if( !ismaxsettoinfinity && !SCIPisInfinity(scip, -lhs) && ismaxtight
&& ( SCIPisLT(scip, ABS(lhs), 1.0) || !SCIPisEQ(scip, maxresactivity / lhs, 1.0) ) )
{
SCIP_Real newlb;

Expand Down Expand Up @@ -6896,8 +6900,11 @@ SCIP_RETCODE tightenVarBounds(
}
else
{
/* check, if we can tighten the variable's bounds */
if( !isminsettoinfinity && !SCIPisInfinity(scip, rhs) && ismintight )
/* check, if we can tighten the variable's bounds reliably, therefore only consider sides which are small or
* relatively different to the residual activity bound to avoid cancellation leading to numerical difficulties
*/
if( !isminsettoinfinity && !SCIPisInfinity(scip, rhs) && ismintight
&& ( SCIPisLT(scip, ABS(rhs), 1.0) || !SCIPisEQ(scip, minresactivity / rhs, 1.0) ) )
{
SCIP_Real newlb;

Expand Down Expand Up @@ -6948,7 +6955,8 @@ SCIP_RETCODE tightenVarBounds(
}
}

if( !ismaxsettoinfinity && !SCIPisInfinity(scip, -lhs) && ismaxtight )
if( !ismaxsettoinfinity && !SCIPisInfinity(scip, -lhs) && ismaxtight
&& ( SCIPisLT(scip, ABS(lhs), 1.0) || !SCIPisEQ(scip, maxresactivity / lhs, 1.0) ) )
{
SCIP_Real newub;

Expand Down

0 comments on commit d78e72e

Please sign in to comment.