Skip to content

Commit 3a898c8

Browse files
committed
IPX now used in HighsMipSolverData::startAnalyticCenterComputation
1 parent bcaf3d7 commit 3a898c8

File tree

3 files changed

+33
-19
lines changed

3 files changed

+33
-19
lines changed

check/TestMipSolver.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,9 +1186,8 @@ TEST_CASE("get-fixed-lp", "[highs_test_mip_solver]") {
11861186
REQUIRE(h.run() == HighsStatus::kOk);
11871187

11881188
// REQUIRE(h.getInfo().objective_function_value == mip_optimal_objective);
1189-
REQUIRE(objectiveOk(mip_optimal_objective, h.getInfo().objective_function_value,
1190-
dev_run));
1191-
1189+
REQUIRE(objectiveOk(mip_optimal_objective,
1190+
h.getInfo().objective_function_value, dev_run));
11921191

11931192
REQUIRE(h.getFixedLp(fixed_lp) == HighsStatus::kOk);
11941193

highs/interfaces/highs_c_api.h

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -117,21 +117,32 @@ static const char* const kHighsCallbackDataOutPdlpIterationCountName =
117117
"pdlp_iteration_count";
118118
static const char* const kHighsCallbackDataOutObjectiveFunctionValueName =
119119
"objective_function_value";
120-
static const char* const kHighsCallbackDataOutMipNodeCountName = "mip_node_count";
120+
static const char* const kHighsCallbackDataOutMipNodeCountName =
121+
"mip_node_count";
121122
static const char* const kHighsCallbackDataOutMipTotalLpIterationsName =
122123
"mip_total_lp_iterations";
123-
static const char* const kHighsCallbackDataOutMipPrimalBoundName = "mip_primal_bound";
124-
static const char* const kHighsCallbackDataOutMipDualBoundName = "mip_dual_bound";
124+
static const char* const kHighsCallbackDataOutMipPrimalBoundName =
125+
"mip_primal_bound";
126+
static const char* const kHighsCallbackDataOutMipDualBoundName =
127+
"mip_dual_bound";
125128
static const char* const kHighsCallbackDataOutMipGapName = "mip_gap";
126129
static const char* const kHighsCallbackDataOutMipSolutionName = "mip_solution";
127-
static const char* const kHighsCallbackDataOutCutpoolNumColName = "cutpool_num_col";
128-
static const char* const kHighsCallbackDataOutCutpoolNumCutName = "cutpool_num_cut";
129-
static const char* const kHighsCallbackDataOutCutpoolNumNzName = "cutpool_num_nz";
130-
static const char* const kHighsCallbackDataOutCutpoolStartName = "cutpool_start";
131-
static const char* const kHighsCallbackDataOutCutpoolIndexName = "cutpool_index";
132-
static const char* const kHighsCallbackDataOutCutpoolValueName = "cutpool_value";
133-
static const char* const kHighsCallbackDataOutCutpoolLowerName = "cutpool_lower";
134-
static const char* const kHighsCallbackDataOutCutpoolUpperName = "cutpool_upper";
130+
static const char* const kHighsCallbackDataOutCutpoolNumColName =
131+
"cutpool_num_col";
132+
static const char* const kHighsCallbackDataOutCutpoolNumCutName =
133+
"cutpool_num_cut";
134+
static const char* const kHighsCallbackDataOutCutpoolNumNzName =
135+
"cutpool_num_nz";
136+
static const char* const kHighsCallbackDataOutCutpoolStartName =
137+
"cutpool_start";
138+
static const char* const kHighsCallbackDataOutCutpoolIndexName =
139+
"cutpool_index";
140+
static const char* const kHighsCallbackDataOutCutpoolValueName =
141+
"cutpool_value";
142+
static const char* const kHighsCallbackDataOutCutpoolLowerName =
143+
"cutpool_lower";
144+
static const char* const kHighsCallbackDataOutCutpoolUpperName =
145+
"cutpool_upper";
135146

136147
const HighsInt kHighsIisStrategyLight = 0;
137148
const HighsInt kHighsIisStrategyFromLpRowPriority = 1; // WIP

highs/mip/HighsMipSolverData.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -357,14 +357,18 @@ void HighsMipSolverData::startAnalyticCenterComputation(
357357
ipm.setOptionValue("presolve", kHighsOffString);
358358
// Determine the solver
359359
const std::string mip_ipm_solver = mipsolver.options_mip_->mip_ipm_solver;
360-
// Currently use HiPO by default and take action on failure
361-
// here. Later pass mip_ipm_solver and take action on failure in
362-
// solveLp
360+
// Currently use IPX by default and take action on failure here if
361+
// using HiPO.
363362
bool use_hipo =
364-
#ifdef HIPO
363+
/*
364+
#ifdef HIPO
365+
// Later use HiPO by default
365366
mip_ipm_solver == kHighsChooseString ||
366-
#endif
367+
#endif
368+
*/
367369
mip_ipm_solver == kHipoString;
370+
// Later still, pass mip_ipm_solver and take action on failure in
371+
// solveLp
368372
#ifndef HIPO
369373
// Shouldn't be possible to choose HiPO if it's not in the build
370374
assert(!use_hipo);

0 commit comments

Comments
 (0)