File tree Expand file tree Collapse file tree 1 file changed +13
-0
lines changed
Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -1301,6 +1301,19 @@ HighsLpRelaxation::Status HighsLpRelaxation::resolveLp(HighsDomain* domain) {
13011301 break ;
13021302 }
13031303
1304+ // Spot cases where a global domain change during the search has
1305+ // led to a clique and the local domain has branched into a state
1306+ // where the clique subst. would be invalid for the local domain.
1307+ // TODO: Turn into assert when search becomes parallel
1308+ if (domain) {
1309+ double replace_val = subst->replace .val == 0 ? 1.0 - val : val;
1310+ double replace_lb = domain->col_lower_ [subst->replace .col ];
1311+ double replace_ub = domain->col_upper_ [subst->replace .col ];
1312+ double feastol = mipsolver.mipdata_ ->feastol ;
1313+ if ((replace_val < replace_lb - feastol) ||
1314+ (replace_val > replace_ub + feastol)) break ;
1315+ }
1316+
13041317 col = subst->replace .col ;
13051318 if (subst->replace .val == 0 ) val = 1.0 - val;
13061319
You can’t perform that action at this time.
0 commit comments