3#include "SubproblemWorker.h"
10typedef std::shared_ptr<WorkerMaster> WorkerMasterPtr;
16 const std::filesystem::path& path_to_mps,
17 const std::string& solver_name,
19 int subproblems_count,
23 ProblemsFormat format);
27 double& overall_subpb_cost_under_approx,
28 DblVector& single_subpb_costs_under_approx);
32 void add_cut(
const Point& s,
const Point& x0,
const double& rhs)
const;
33 void add_cut_by_iter(
int i,
const Point& s,
const double& sx0,
const double& rhs)
const;
34 void add_dynamic_cut(
const Point& s,
const double& sx0,
const double& rhs)
const;
35 void addSubproblemCut(
int i,
const Point& s,
const Point& x0,
const double& rhs)
const;
36 void fix_alpha(
const double& bestUB)
const;
38 virtual void DeactivateIntegrityConstraints()
const;
39 virtual void ActivateIntegrityConstraints()
const;
41 [[nodiscard]]
virtual std::vector<int> get_id_nb_units()
const
47 std::vector<int> _id_nb_units;
48 std::vector<int> id_single_subpb_costs_under_approx_;
50 int subproblems_count;
51 bool _mps_has_alpha =
false;
52 void define_matval_mclind(
const Point& s,
53 std::vector<double>& matval,
54 std::vector<int>& mclind)
const;
56 void DefineRhsWithMasterVariable(
const Point& s,
59 std::vector<double>& rowrhs)
const;
61 void define_rhs_from_sx0(
const double& sx0,
63 std::vector<double>& rowrhs)
const;
65 void define_matval_mclind_for_index(
int i,
67 std::vector<double>& matval,
68 std::vector<int>& mclind)
const;
69 void _set_upper_bounds()
const;
70 void _set_alpha_var();
71 void _set_nb_units_var_ids();
Definition SolverAbstract.h:17
Definition WorkerMaster.h:13
void add_cut_by_iter(int i, const Point &s, const double &sx0, const double &rhs) const
Add benders cut to a problem.
Definition WorkerMaster.cpp:192
void add_cut(const Point &s, const Point &x0, const double &rhs) const
Add benders cut to a problem.
Definition WorkerMaster.cpp:105
void add_dynamic_cut(const Point &s, const double &sx0, const double &rhs) const
Add benders cut to a problem.
Definition WorkerMaster.cpp:161
void get_dual_values(std::vector< double > &dual) const
Set dual values of a problem in a vector.
Definition WorkerMaster.cpp:84
WorkerMaster(const VariableMap &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
int get_number_constraint() const
Return number of constraint in a problem.
Definition WorkerMaster.cpp:93
void addSubproblemCut(int i, const Point &s, const Point &x0, const double &rhs) const
Add one benders cut to a problem.
Definition WorkerMaster.cpp:239
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:52
void fix_alpha(const double &bestUB) const
Fix an upper bound and the variable overall_subpb_cost_under_approx of a problem.
Definition WorkerMaster.cpp:362
Mother-class Worker.
Definition Worker.h:18