Skip to content

Commit

Permalink
added constructors
Browse files Browse the repository at this point in the history
  • Loading branch information
galabovaa committed Jan 29, 2025
1 parent c4fb2d9 commit 5fe357b
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 7 deletions.
32 changes: 25 additions & 7 deletions src/mip/HighsMipSolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,24 @@

using std::fabs;

HighsMipSolver::HighsMipSolver(const HighsMipSolver& mip_solver_)
: HighsMipSolver(mip_solver_.callback_, mip_solver_.options_mip_,
mip_solver_.model_) {}

HighsMipSolver::HighsMipSolver(HighsCallback* callback,
const HighsOptions* options, const HighsLp* lp)
: callback_(callback),
options_mip_(options),
model_(lp),
orig_model_(lp),
solution_objective_(kHighsInf),
submip(false),
submip_level(0),
rootbasis(nullptr),
pscostinit(nullptr),
clqtableinit(nullptr),
implicinit(nullptr) {}

HighsMipSolver::HighsMipSolver(HighsCallback& callback,
const HighsOptions& options, const HighsLp& lp,
const HighsSolution& solution, bool submip,
Expand Down Expand Up @@ -260,16 +278,16 @@ void HighsMipSolver::run() {

// I'd like to do this, since it extends to multiple workers...
//
// std::vector<HighsMipSolver> worker_mipsolvers;
// worker_mipsolvers.push_back(HighsMipSolver{*callback_, *options_mip_,
// *model_,
// null_solution, false, 0});
// HighsMipSolver& worker_mipsolver = worker_mipsolvers[0];
std::vector<HighsMipSolver> worker_mipsolvers;
worker_mipsolvers.push_back(HighsMipSolver{
*callback_, *options_mip_, *model_, null_solution, false, 0});
HighsMipSolver& worker_mipsolver = worker_mipsolvers[0];

// ... but currently can only do this
//
HighsMipSolver worker_mipsolver(*callback_, *options_mip_, *model_,
null_solution, false, 0);
// HighsMipSolver worker_mipsolver(*callback_, *options_mip_, *model_,
// null_solution, false, 0);

worker_mipsolver.rootbasis = this->rootbasis;
HighsPseudocostInitialization pscostinit(mipdata_->pseudocost, 1);
worker_mipsolver.pscostinit = &pscostinit;
Expand Down
7 changes: 7 additions & 0 deletions src/mip/HighsMipSolver.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,13 @@ class HighsMipSolver {
return model_->integrality_[col];
}

// Contstructor from reference.
HighsMipSolver(const HighsMipSolver& mip_solver_);

// Constructor without solution.
HighsMipSolver(HighsCallback* callback,
const HighsOptions* options, const HighsLp* lp);

HighsMipSolver(HighsCallback& callback, const HighsOptions& options,
const HighsLp& lp, const HighsSolution& solution,
bool submip = false, HighsInt submip_level = 0);
Expand Down

0 comments on commit 5fe357b

Please sign in to comment.