23 std::unique_ptr<OptimizerFactory> m_master_optimizer_factory;
24 std::unique_ptr<OptimizerFactory> m_deterministic_optimizer_factory;
25 const bool m_use_indicator;
34 std::unique_ptr<Formulation> m_formulation;
36 MaxMinRelaxation(
const Model& t_model,
44 [[nodiscard]] std::string name()
const override {
return "max-min relaxation"; }
45 [[nodiscard]]
double get_var_primal(
const Var& t_var)
const override;
46 [[nodiscard]]
double get_var_reduced_cost(
const Var& t_var)
const override THROW_NOT_IMPLEMENTED
47 [[nodiscard]]
double get_var_ray(
const Var& t_var)
const override THROW_NOT_IMPLEMENTED
48 [[nodiscard]]
double get_ctr_dual(
const Ctr& t_ctr)
const override THROW_NOT_IMPLEMENTED
49 [[nodiscard]]
double get_ctr_farkas(
const Ctr& t_ctr)
const override THROW_NOT_IMPLEMENTED
50 [[nodiscard]]
unsigned get_n_solutions()
const override THROW_NOT_IMPLEMENTED
51 [[nodiscard]]
unsigned get_solution_index()
const override THROW_NOT_IMPLEMENTED
54 [[nodiscard]]
const OptimizerFactory& get_master_optimizer_factory()
const {
return *m_master_optimizer_factory; }
55 [[nodiscard]]
const OptimizerFactory& get_deterministic_optimizer_factory()
const {
return *m_deterministic_optimizer_factory; }
56 [[nodiscard]]
bool use_indicator()
const {
return m_use_indicator; }
58 void add(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
59 void add(
const Ctr& t_ctr)
override THROW_NOT_IMPLEMENTED
60 void add(
const QCtr& t_ctr)
override THROW_NOT_IMPLEMENTED
61 void add(
const SOSCtr& t_ctr)
override THROW_NOT_IMPLEMENTED
62 void remove(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
63 void remove(
const Ctr& t_ctr)
override THROW_NOT_IMPLEMENTED
64 void remove(
const QCtr& t_ctr)
override THROW_NOT_IMPLEMENTED
65 void remove(
const SOSCtr& t_ctr)
override THROW_NOT_IMPLEMENTED
66 void update()
override {}
67 void write(
const std::string& t_name)
override THROW_NOT_IMPLEMENTED
68 void hook_before_optimize()
override;
69 void hook_optimize()
override;
70 void set_solution_index(
unsigned t_index)
override THROW_NOT_IMPLEMENTED
71 void update_obj_sense()
override {}
72 void update_obj()
override {}
73 void update_rhs()
override THROW_NOT_IMPLEMENTED
74 void update_obj_constant()
override THROW_NOT_IMPLEMENTED
75 void update_mat_coeff(
const Ctr& t_ctr,
const Var& t_var)
override THROW_NOT_IMPLEMENTED
76 void update_ctr_type(
const Ctr& t_ctr)
override THROW_NOT_IMPLEMENTED
77 void update_ctr_rhs(
const Ctr& t_ctr)
override THROW_NOT_IMPLEMENTED
78 void update_var_type(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
79 void update_var_lb(
const Var& t_var)
override;
80 void update_var_ub(
const Var& t_var)
override;
81 void update_var_obj(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
84 void throw_if_no_formulation()
const;