17 const ::idol::Bilevel::Description& m_description;
18 std::unique_ptr<OptimizerFactory> m_optimistic_bilevel_optimizer;
20 std::optional<Model> m_optimistic_bilevel_model;
21 std::optional<::idol::Bilevel::Description> m_optimistic_bilevel_annotation;
22 std::optional<PrimalPoint> m_follower_solution;
25 const ::idol::Bilevel::Description& t_description,
28 std::string name()
const override;
30 SolutionStatus get_status()
const override;
32 SolutionReason get_reason()
const override;
34 double get_best_obj()
const override;
36 double get_best_bound()
const override;
38 double get_relative_gap()
const override;
40 double get_absolute_gap()
const override;
42 double get_var_primal(
const Var &t_var)
const override;
44 double get_var_reduced_cost(
const Var &t_var)
const override;
46 double get_var_ray(
const Var &t_var)
const override;
48 double get_ctr_dual(
const Ctr &t_ctr)
const override;
50 double get_ctr_farkas(
const Ctr &t_ctr)
const override;
52 unsigned int get_n_solutions()
const override;
54 unsigned int get_solution_index()
const override;
57 void add(
const Var &t_var)
override;
59 void add(
const Ctr &t_ctr)
override;
61 void add(
const QCtr &t_ctr)
override;
63 void remove(
const Var &t_var)
override;
65 void remove(
const Ctr &t_ctr)
override;
67 void remove(
const QCtr &t_ctr)
override;
69 void update()
override;
71 void write(
const std::string &t_name)
override;
73 void hook_optimize()
override;
75 void set_solution_index(
unsigned int t_index)
override;
77 void update_obj_sense()
override;
79 void update_obj()
override;
81 void update_rhs()
override;
83 void update_obj_constant()
override;
85 void update_mat_coeff(
const Ctr &t_ctr,
const Var &t_var)
override;
87 void update_ctr_type(
const Ctr &t_ctr)
override;
89 void update_ctr_rhs(
const Ctr &t_ctr)
override;
91 void update_var_type(
const Var &t_var)
override;
93 void update_var_lb(
const Var &t_var)
override;
95 void update_var_ub(
const Var &t_var)
override;
97 void update_var_obj(
const Var &t_var)
override;