From 66bcd643aae6766e92ab98c4458708f12050bf2d Mon Sep 17 00:00:00 2001 From: JAJHall Date: Thu, 23 Jan 2025 13:27:04 +0000 Subject: [PATCH] keeping all evaluate_node_result in multiple_search --- src/mip/HighsMipSolver.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/mip/HighsMipSolver.cpp b/src/mip/HighsMipSolver.cpp index 3d089c7926..5753a07eb2 100644 --- a/src/mip/HighsMipSolver.cpp +++ b/src/mip/HighsMipSolver.cpp @@ -298,13 +298,13 @@ void HighsMipSolver::run() { // Possibly apply primal heuristics if (considerHeuristics && mipdata_->moreHeuristicsAllowed()) { analysis_.mipTimerStart(kMipClockEvaluateNode); - const HighsSearch::NodeResult evaluate_node_result = - parallel_search.search.evaluateNode(); + parallel_search.evaluate_node_result = parallel_search.search.evaluateNode(); analysis_.mipTimerStop(kMipClockEvaluateNode); - if (evaluate_node_result == HighsSearch::NodeResult::kSubOptimal) { + if (parallel_search.evaluate_node_result == HighsSearch::NodeResult::kSubOptimal) { + printf("HighsMipSolver::run() evaluate_node_result == HighsSearch::NodeResult::kSubOptimal\n"); assert(345==678); - break; + continue; } if (parallel_search.search.currentNodePruned()) { @@ -334,6 +334,8 @@ void HighsMipSolver::run() { } } } + if (multiple_search[0].evaluate_node_result == HighsSearch::NodeResult::kSubOptimal) break; + considerHeuristics = false; if (mipdata_->domain.infeasible()) break;