Skip to content

Commit

Permalink
Setting up a vector of HighsSearch instances, each corresponding to a…
Browse files Browse the repository at this point in the history
… different HigshLpRelaxation
  • Loading branch information
jajhall committed Jan 22, 2025
1 parent a27aea7 commit e961267
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/lp_data/HighsOptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -1083,7 +1083,7 @@ class HighsOptions : public HighsOptionsStruct {

record_int = new OptionRecordInt(
"mip_search_concurrency", "Concurrency to use in MIP search", advanced,
&mip_search_concurrency, 1, 1, kMipSearchConcurrencyLimit);
&mip_search_concurrency, 1, 2, kMipSearchConcurrencyLimit);
records.push_back(record_int);

record_int = new OptionRecordInt(
Expand Down
12 changes: 8 additions & 4 deletions src/mip/HighsMipSolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -220,15 +220,19 @@ void HighsMipSolver::run() {
sepa.setLpRelaxation(&mipdata_->lp);

// Set up a vector of HighsSearch instances, with a
// HighsLpRelaxation for each concurrent search
// HighsLpRelaxation for each concurrent search beyond the master
// search
std::vector<HighsSearch> multiple_search;
std::vector<HighsLpRelaxation> multiple_lp;
for (HighsInt iSearch = 0; iSearch < options_mip_->mip_search_concurrency;
iSearch++) {
multiple_search.push_back(HighsSearch{*this, mipdata_->pseudocost});
// multiple_lp.push_back(HighsLpRelaxation{mipdata_->lp});
// multiple_search[iSearch].setLpRelaxation(&multiple_lp[iSearch]);
multiple_search[iSearch].setLpRelaxation(&mipdata_->lp);
if (iSearch == 0) {
multiple_search[iSearch].setLpRelaxation(&mipdata_->lp);
} else {
multiple_lp.push_back(HighsLpRelaxation{mipdata_->lp});
multiple_search[iSearch].setLpRelaxation(&multiple_lp[iSearch-1]);
}
}
HighsSearch& search = multiple_search[0];

Expand Down

0 comments on commit e961267

Please sign in to comment.