Skip to content

Commit 76a3407

Browse files
committed
Add more fixes
1 parent 74a4c23 commit 76a3407

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

highs/mip/HighsCutGeneration.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,7 @@ bool HighsCutGeneration::separateLiftedFlowCover() {
575575
break;
576576
}
577577
}
578+
ld.t++;
578579

579580
auto getAlphaBeta = [&](double vubcoef) {
580581
HighsInt alpha;

highs/mip/HighsTransformedLp.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
798798
switch (boundTypes[col]) {
799799
case BoundType::kSimpleLb:
800800
substsolval = static_cast<double>(
801-
vals[i] * (HighsCDouble(lpSolution.col_value[col]) - ub));
801+
vals[i] * (HighsCDouble(getLpSolution(col)) - ub));
802802
vbcoef = static_cast<double>(vals[i] * (HighsCDouble(ub) - lb));
803803
aggrconstant = static_cast<double>(HighsCDouble(vals[i]) * ub);
804804
if (vals[i] >= 0) {
@@ -812,7 +812,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
812812
break;
813813
case BoundType::kSimpleUb:
814814
substsolval = static_cast<double>(
815-
vals[i] * (HighsCDouble(lpSolution.col_value[col]) - lb));
815+
vals[i] * (HighsCDouble(getLpSolution(col)) - lb));
816816
vbcoef = static_cast<double>(vals[i] * (HighsCDouble(ub) - lb));
817817
aggrconstant = static_cast<double>(HighsCDouble(vals[i]) * lb);
818818
if (vals[i] >= 0) {
@@ -827,7 +827,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
827827
case BoundType::kVariableLb:
828828
vbcol = bestVlb[col].first;
829829
substsolval = static_cast<double>(
830-
vals[i] * (HighsCDouble(lpSolution.col_value[col]) -
830+
vals[i] * (HighsCDouble(getLpSolution(col)) -
831831
bestVlb[col].second.constant) +
832832
(HighsCDouble(lpSolution.col_value[vbcol]) *
833833
snfr.origBinColCoef[vbcol]));
@@ -850,7 +850,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
850850
case BoundType::kVariableUb:
851851
vbcol = bestVub[col].first;
852852
substsolval = static_cast<double>(
853-
vals[i] * (HighsCDouble(lpSolution.col_value[col]) -
853+
vals[i] * (HighsCDouble(getLpSolution(col)) -
854854
bestVub[col].second.constant) +
855855
(HighsCDouble(lpSolution.col_value[vbcol]) *
856856
snfr.origBinColCoef[vbcol]));
@@ -950,13 +950,15 @@ bool HighsTransformedLp::cleanup(std::vector<HighsInt>& inds,
950950
double sqrnorm = 0;
951951
const std::vector<double>& lpSolution = lprelaxation.getSolution().col_value;
952952
for (HighsInt i = 0; i != numNz; ++i) {
953-
if (vals[i] >= 0 && lpSolution[i] <= mip.mipdata_->domain.col_lower_[i] +
954-
mip.mipdata_->feastol)
953+
HighsInt col = inds[i];
954+
if (vals[i] >= 0 &&
955+
lpSolution[col] <=
956+
mip.mipdata_->domain.col_lower_[col] + mip.mipdata_->feastol)
955957
continue;
956-
if (vals[i] < 0 && lpSolution[i] >= mip.mipdata_->domain.col_upper_[i] -
957-
mip.mipdata_->feastol)
958+
if (vals[i] < 0 && lpSolution[col] >= mip.mipdata_->domain.col_upper_[col] -
959+
mip.mipdata_->feastol)
958960
continue;
959-
viol += vals[i] * lpSolution[i];
961+
viol += vals[i] * lpSolution[col];
960962
sqrnorm += vals[i] * vals[i];
961963
}
962964
if (sqrnorm == 0) {

0 commit comments

Comments
 (0)