20 const ::idol::Robust::Description &m_robust_description;
21 const ::idol::Bilevel::Description &m_bilevel_description;
22 std::unique_ptr<idol::CCG::Formulation> m_formulation;
25 std::vector<Point<Var>> m_initial_scenarios;
28 std::vector<std::unique_ptr<OptimizerFactory>> m_optimizer_feasibility_separation;
31 std::vector<std::unique_ptr<OptimizerFactory>> m_optimizer_optimality_separation;
34 std::vector<std::unique_ptr<OptimizerFactory>> m_optimizer_joint_separation;
37 const ::idol::Robust::Description &t_robust_description,
38 const ::idol::Bilevel::Description &t_bilevel_description,
40 const std::list<std::unique_ptr<OptimizerFactory>>& t_optimizer_feasibility_separation,
41 const std::list<std::unique_ptr<OptimizerFactory>>& t_optimizer_optimality_separation,
42 const std::list<std::unique_ptr<OptimizerFactory>>& t_optimizer_joint_separation);
44 [[nodiscard]] std::string name()
const override;
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;
47 [[nodiscard]]
double get_var_ray(
const Var &t_var)
const override;
48 [[nodiscard]]
double get_ctr_dual(
const Ctr &t_ctr)
const override;
49 [[nodiscard]]
double get_ctr_farkas(
const Ctr &t_ctr)
const override;
50 [[nodiscard]]
unsigned int get_n_solutions()
const override;
51 [[nodiscard]]
unsigned int get_solution_index()
const override;
54 void add(
const Var &t_var)
override;
55 void add(
const Ctr &t_ctr)
override;
56 void add(
const QCtr &t_ctr)
override;
57 void remove(
const Var &t_var)
override;
58 void remove(
const Ctr &t_ctr)
override;
59 void remove(
const QCtr &t_ctr)
override;
60 void update()
override;
61 void write(
const std::string &t_name)
override;
62 void hook_before_optimize()
override;
63 void hook_optimize()
override;
64 void set_solution_index(
unsigned int t_index)
override;
65 void update_obj_sense()
override;
66 void update_obj()
override;
67 void update_rhs()
override;
68 void update_obj_constant()
override;
69 void update_mat_coeff(
const Ctr &t_ctr,
const Var &t_var)
override;
70 void update_ctr_type(
const Ctr &t_ctr)
override;
71 void update_ctr_rhs(
const Ctr &t_ctr)
override;
72 void update_var_type(
const Var &t_var)
override;
73 void update_var_lb(
const Var &t_var)
override;
74 void update_var_ub(
const Var &t_var)
override;
75 void update_var_obj(
const Var &t_var)
override;
86 std::list<Point<Var>> m_scenarios;