3#include "SubproblemWorker.h"
10typedef std::shared_ptr<WorkerMaster> WorkerMasterPtr;
15 const std::filesystem::path &path_to_mps,
16 const std::string &solver_name,
int log_level,
17 int subproblems_count,
19 bool mps_has_alpha, Logger logger, ProblemsFormat format);
22 void get(Point &x0,
double &overall_subpb_cost_under_approx,
23 DblVector &single_subpb_costs_under_approx);
27 void add_cut(Point
const &s, Point
const &x0,
double const &rhs)
const;
29 double const &rhs)
const;
31 double const &rhs)
const;
33 double const &rhs)
const;
34 void fix_alpha(
double const &bestUB)
const;
36 virtual void DeactivateIntegrityConstraints()
const;
37 virtual void ActivateIntegrityConstraints()
const;
38 [[nodiscard]]
virtual std::vector<int> get_id_nb_units()
const {
return _id_nb_units; };
41 std::vector<int> _id_nb_units;
42 std::vector<int> id_single_subpb_costs_under_approx_;
44 int subproblems_count;
45 bool _mps_has_alpha =
false;
46 void define_matval_mclind(
const Point &s, std::vector<double> &matval,
47 std::vector<int> &mclind)
const;
49 void DefineRhsWithMasterVariable(
const Point &s,
const Point &x0,
51 std::vector<double> &rowrhs)
const;
53 void define_rhs_from_sx0(
const double &sx0,
const double &rhs,
54 std::vector<double> &rowrhs)
const;
56 void define_matval_mclind_for_index(
int i,
const Point &s,
57 std::vector<double> &matval,
58 std::vector<int> &mclind)
const;
59 void _set_upper_bounds()
const;
60 void _set_alpha_var();
61 void _set_nb_units_var_ids();
Definition SolverAbstract.h:16
Definition WorkerMaster.h:12
void add_cut(Point const &s, Point const &x0, double const &rhs) const
Add benders cut to a problem.
Definition WorkerMaster.cpp:91
WorkerMaster(VariableMap const &variable_map, const std::filesystem::path &path_to_mps, const std::string &solver_name, int log_level, int subproblems_count, SolverLogManager &solver_log_manager, bool mps_has_alpha, Logger logger, ProblemsFormat format)
Constructor of a Master Problem.
Definition WorkerMaster.cpp:17
void add_cut_by_iter(int i, Point const &s, double const &sx0, double const &rhs) const
Add benders cut to a problem.
Definition WorkerMaster.cpp:170
void get_dual_values(std::vector< double > &dual) const
Set dual values of a problem in a vector.
Definition WorkerMaster.cpp:74
void fix_alpha(double const &bestUB) const
Fix an upper bound and the variable overall_subpb_cost_under_approx of a problem.
Definition WorkerMaster.cpp:314
int get_number_constraint() const
Return number of constraint in a problem.
Definition WorkerMaster.cpp:82
void addSubproblemCut(int i, Point const &s, Point const &x0, double const &rhs) const
Add one benders cut to a problem.
Definition WorkerMaster.cpp:210
void get(Point &x0, double &overall_subpb_cost_under_approx, DblVector &single_subpb_costs_under_approx)
Return optimal variables of a problem.
Definition WorkerMaster.cpp:48
void add_dynamic_cut(Point const &s, double const &sx0, double const &rhs) const
Add benders cut to a problem.
Definition WorkerMaster.cpp:141
Mother-class Worker.
Definition Worker.h:17