Skip to content

Commit 7c6223f

Browse files
committed
Merge remote-tracking branch 'origin/v10-minor'
2 parents 85d8ebe + 7159300 commit 7c6223f

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,7 @@ Fixed bugs
467467
- recompute activity bounds before checking infeasibility and redundancy in linear constraint presolving
468468
- skip integer variables with fractional value in reference solution when finding additional variable fixings in ALNS heuristic
469469
- fix call of SCIPaddExprsViolScoreNonlinear() with constant expressions (no variables)
470+
- adjust further bounds before checking feasibility in SCIPvarAddVlb() and SCIPvarAddVub() to detect integrality cutoff
470471

471472
Build system
472473
------------

src/scip/var.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15458,8 +15458,13 @@ SCIP_RETCODE SCIPvarAddVlb(
1545815458
/* if the vlb coefficient is zero, just update the lower bound of the variable */
1545915459
else if( SCIPsetIsZero(set, vlbcoef) )
1546015460
{
15461+
/* bound might be adjusted due to integrality condition */
15462+
vlbconstant = adjustedLb(set, SCIPvarGetType(var), vlbconstant);
15463+
15464+
/* check bounds for feasibility */
1546115465
if( SCIPsetIsFeasGT(set, vlbconstant, SCIPvarGetUbGlobal(var)) )
1546215466
*infeasible = TRUE;
15467+
/* improve global lower bound of variable */
1546315468
else if( SCIPsetIsFeasGT(set, vlbconstant, SCIPvarGetLbGlobal(var)) )
1546415469
{
1546515470
/* during solving stage it can happen that the global bound change cannot be applied directly because it conflicts
@@ -15920,8 +15925,13 @@ SCIP_RETCODE SCIPvarAddVub(
1592015925
/* if the vub coefficient is zero, just update the upper bound of the variable */
1592115926
else if( SCIPsetIsZero(set, vubcoef) )
1592215927
{
15928+
/* bound might be adjusted due to integrality condition */
15929+
vubconstant = adjustedUb(set, SCIPvarGetType(var), vubconstant);
15930+
15931+
/* check bounds for feasibility */
1592315932
if( SCIPsetIsFeasLT(set, vubconstant, SCIPvarGetLbGlobal(var)) )
1592415933
*infeasible = TRUE;
15934+
/* improve global upper bound of variable */
1592515935
else if( SCIPsetIsFeasLT(set, vubconstant, SCIPvarGetUbGlobal(var)) )
1592615936
{
1592715937
/* during solving stage it can happen that the global bound change cannot be applied directly because it conflicts

0 commit comments

Comments
 (0)