Skip to content

Commit ba9d015

Browse files
committed
If preprocessing infeasible - repeat in a simpler way
1 parent 9b91e2c commit ba9d015

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/CbcSolver.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4868,6 +4868,15 @@ int CbcMain1(std::deque<std::string> inputQueue, CbcModel &model,
48684868
#endif
48694869
solver2 = process.preProcessNonDefault(*saveSolver, translate[preProcess], numberPasses,
48704870
tunePreProcess);
4871+
if (!solver2||!solver2->isProvenOptimal()) {
4872+
/* Infeasible - but most real problems are not
4873+
infeasible - so try simpler preprocessing which
4874+
is less affected by tolerance issues */
4875+
process.clean();
4876+
solver2 =
4877+
process.preProcessNonDefault(*saveSolver,
4878+
0,99,0);
4879+
}
48714880
setPreProcessingMode(saveSolver,0);
48724881
#if CBC_USE_PAPILO
48734882
// Convert back

0 commit comments

Comments
 (0)