22 idol::Robust::ROCPP::Approximation m_approximation;
23 std::unique_ptr<OptimizerFactory> m_optimizer_factory;
24 const unsigned int m_n_policies;
26 std::unique_ptr<Model> m_model;
28 void build()
override {}
29 void add(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
30 void add(
const Ctr& t_ctr)
override THROW_NOT_IMPLEMENTED
31 void add(
const QCtr& t_ctr)
override THROW_NOT_IMPLEMENTED
32 void remove(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
33 void remove(
const Ctr& t_ctr)
override THROW_NOT_IMPLEMENTED
34 void remove(
const QCtr& t_ctr)
override THROW_NOT_IMPLEMENTED
35 void update()
override {}
36 void write(
const std::string& t_name)
override THROW_NOT_IMPLEMENTED
37 void hook_optimize()
override;
38 void set_solution_index(
unsigned t_index)
override THROW_NOT_IMPLEMENTED
39 void update_obj_sense()
override THROW_NOT_IMPLEMENTED
40 void update_obj()
override THROW_NOT_IMPLEMENTED
41 void update_rhs()
override THROW_NOT_IMPLEMENTED
42 void update_obj_constant()
override THROW_NOT_IMPLEMENTED
43 void update_mat_coeff(
const Ctr& t_ctr,
const Var& t_var)
override THROW_NOT_IMPLEMENTED
44 void update_ctr_type(
const Ctr& t_ctr)
override THROW_NOT_IMPLEMENTED
45 void update_ctr_rhs(
const Ctr& t_ctr)
override THROW_NOT_IMPLEMENTED
46 void update_var_type(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
47 void update_var_lb(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
48 void update_var_ub(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
49 void update_var_obj(
const Var& t_var)
override THROW_NOT_IMPLEMENTED
51 void throw_if_no_deterministic_model()
const;
53 ROCPP(
const Model& t_parent,
56 idol::Robust::ROCPP::Approximation t_approximation,
58 unsigned int t_n_policies);
60 [[nodiscard]] std::string name()
const override {
return "ROC++"; }
61 [[nodiscard]] SolutionStatus get_status()
const override;
62 [[nodiscard]] SolutionReason get_reason()
const override;
63 [[nodiscard]]
double get_best_obj()
const override;
64 [[nodiscard]]
double get_best_bound()
const override;
65 [[nodiscard]]
double get_var_primal(
const Var& t_var)
const override;
66 [[nodiscard]]
double get_var_reduced_cost(
const Var& t_var)
const override;
67 [[nodiscard]]
double get_var_ray(
const Var& t_var)
const override;
68 [[nodiscard]]
double get_ctr_dual(
const Ctr& t_ctr)
const override;
69 [[nodiscard]]
double get_ctr_farkas(
const Ctr& t_ctr)
const override;
70 [[nodiscard]]
double get_relative_gap()
const override;
71 [[nodiscard]]
double get_absolute_gap()
const override;
72 [[nodiscard]]
unsigned get_n_solutions()
const override;
73 [[nodiscard]]
unsigned get_solution_index()
const override;
75 static bool is_available();