Skip to content

Commit 325d376

Browse files
Add handling of redundant variable bounds
Co-authored-by: Eamon Hetherton <449015+EamonHetherton@users.noreply.github.com>
1 parent 04024d7 commit 325d376

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

‎highs/mip/HighsTransformedLp.cpp‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,11 @@ bool HighsTransformedLp::transform(std::vector<double>& vals,
195195
mip.mipdata_->implications.cleanupVub(col, bestVub[col].first,
196196
bestVub[col].second, ub, redundant,
197197
infeasible, false);
198+
if (redundant) {
199+
bestVub[col].first = -1;
200+
ubDist[col] = simpleUbDist[col];
201+
boundDist[col] = std::min(lbDist[col], ubDist[col]);
202+
}
198203
}
199204

200205
// the code below uses the difference between the column upper and lower
@@ -210,6 +215,11 @@ bool HighsTransformedLp::transform(std::vector<double>& vals,
210215
mip.mipdata_->implications.cleanupVlb(col, bestVlb[col].first,
211216
bestVlb[col].second, lb, redundant,
212217
infeasible, false);
218+
if (redundant) {
219+
bestVlb[col].first = -1;
220+
lbDist[col] = simpleLbDist[col];
221+
boundDist[col] = std::min(lbDist[col], ubDist[col]);
222+
}
213223
}
214224

215225
// store the old bound type so that we can restore it if the continuous

0 commit comments

Comments
 (0)