File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed
Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -1301,6 +1301,21 @@ 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)) {
1315+ break ;
1316+ }
1317+ }
1318+
13041319 col = subst->replace .col ;
13051320 if (subst->replace .val == 0 ) val = 1.0 - val;
13061321
You can’t perform that action at this time.
0 commit comments