Skip to content

Commit

Permalink
hmmm
Browse files Browse the repository at this point in the history
  • Loading branch information
a-zakir committed Feb 9, 2024
1 parent d6b0c33 commit fe7c24f
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
14 changes: 10 additions & 4 deletions src/cpp/benders/benders_core/MasterUpdateBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
MasterUpdateBase::MasterUpdateBase(pBendersBase benders, double tau)
: benders_(std::move(benders)), lambda_(0), lambda_min_(0) {
CheckTau(tau);
SetLambdaMaxToMaxInvestmentCosts();
}

MasterUpdateBase::MasterUpdateBase(pBendersBase benders, double tau,
Expand Down Expand Up @@ -36,13 +35,20 @@ void MasterUpdateBase::CheckTau(double tau) {
}
void MasterUpdateBase::SetLambdaMaxToMaxInvestmentCosts() {
const auto &obj = benders_->ObjectiveFunctionCoeffs();
const auto best_ub = benders_->ObjectiveFunctionCoeffs();
const auto max_invest =
benders_->BestIterationWorkerMaster().get_max_invest();
lambda_max_ = 0;
for (const auto &[_, var_id] : benders_->MasterVariables()) {
lambda_max_ += obj[var_id] * best_ub[var_id];
for (const auto &[var_name, var_id] : benders_->MasterVariables()) {
lambda_max_ += obj[var_id] * max_invest.at(var_name);
}
}
void MasterUpdateBase::Update(const CRITERION &criterion) {
// check lambda_max_
// whar abour lambda_min_?
if (lambda_max_ < 0 || lambda_max_ <= lambda_min_) {
// TODO log
SetLambdaMaxToMaxInvestmentCosts();
}
switch (criterion) {
case CRITERION::LESSER:
// TODO best it or current data?
Expand Down
2 changes: 1 addition & 1 deletion src/cpp/benders/benders_core/include/MasterUpdate.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ class MasterUpdateBase : public IMasterUpdate {
pBendersBase benders_;
double lambda_ = 0;
double lambda_min_ = 0;
double lambda_max_ = 1;
double lambda_max_ = -1;
double tau_ = 0.5;
};
5 changes: 3 additions & 2 deletions src/cpp/benders/factories/BendersFactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,9 @@ int RunExternalLoop_(char** argv, const std::filesystem::path& options_file,
std::shared_ptr<IOuterLoopCriterion> criterion =
std::make_shared<OuterloopCriterionLOL>(threshold, epsilon);
std::shared_ptr<IMasterUpdate> master_updater =
std::make_shared<MasterUpdateBase>(benders, lambda, lambda_min,
lambda_max, tau);
// std::make_shared<MasterUpdateBase>(benders, lambda, lambda_min,
// lambda_max, tau);
std::make_shared<MasterUpdateBase>(benders, tau);
std::shared_ptr<ICutsManager> cuts_manager =
std::make_shared<CutsManagerRunTime>();

Expand Down

0 comments on commit fe7c24f

Please sign in to comment.