19 std::unique_ptr<OptimizerFactory> m_master_optimizer_factory;
20 std::unique_ptr<OptimizerFactory> m_deterministic_optimizer_factory;
21 std::unique_ptr<CVCCG::Formulation> m_formulation;
23 CriticalValueColumnAndConstraintGeneration(
const Model& t_model,
30 void add(
const Var& t_var)
override { m_formulation.reset(); }
31 void add(
const Ctr& t_ctr)
override { m_formulation.reset(); }
32 void add(
const QCtr& t_ctr)
override { m_formulation.reset(); }
33 void add(
const SOSCtr& t_ctr)
override { m_formulation.reset(); }
34 void remove(
const Var& t_var)
override { m_formulation.reset(); }
35 void remove(
const Ctr& t_ctr)
override { m_formulation.reset(); }
36 void remove(
const QCtr& t_ctr)
override { m_formulation.reset(); }
37 void remove(
const SOSCtr& t_ctr)
override { m_formulation.reset(); }
38 void update()
override { m_formulation.reset(); }
39 void write(
const std::string& t_name)
override;
40 void hook_optimize()
override;
41 void set_solution_index(
unsigned t_index)
override;
42 void update_obj_sense()
override { m_formulation.reset(); }
43 void update_obj()
override { m_formulation.reset(); }
44 void update_rhs()
override { m_formulation.reset(); }
45 void update_obj_constant()
override { m_formulation.reset(); }
46 void update_mat_coeff(
const Ctr& t_ctr,
const Var& t_var)
override { m_formulation.reset(); }
47 void update_ctr_type(
const Ctr& t_ctr)
override { m_formulation.reset(); }
48 void update_ctr_rhs(
const Ctr& t_ctr)
override { m_formulation.reset(); }
49 void update_var_type(
const Var& t_var)
override { m_formulation.reset(); }
50 void update_var_lb(
const Var& t_var)
override { m_formulation.reset(); }
51 void update_var_ub(
const Var& t_var)
override { m_formulation.reset(); }
52 void update_var_obj(
const Var& t_var)
override { m_formulation.reset(); }
54 void solve_master_problem();
55 void analyze_master_problem();
56 bool check_stopping_criterion();
57 void solve_sub_problems();
59 [[nodiscard]] std::string name()
const override {
return "CVCCG"; }
60 [[nodiscard]]
double get_var_primal(
const Var& t_var)
const override;
61 [[nodiscard]]
double get_var_reduced_cost(
const Var& t_var)
const override;
62 [[nodiscard]]
double get_var_ray(
const Var& t_var)
const override;
63 [[nodiscard]]
double get_ctr_dual(
const Ctr& t_ctr)
const override;
64 [[nodiscard]]
double get_ctr_farkas(
const Ctr& t_ctr)
const override;
65 [[nodiscard]]
unsigned get_n_solutions()
const override;
66 [[nodiscard]]
unsigned get_solution_index()
const override;
69 [[nodiscard]]
const OptimizerFactory& get_master_optimizer_factory()
const {
return *m_master_optimizer_factory; }
70 [[nodiscard]]
const OptimizerFactory& get_deterministic_optimizer_factory()
const {
return *m_deterministic_optimizer_factory; }