31 std::vector<PrimalPoint> m_scenarios;
32 std::optional<double> m_submitted_upper_bound;
33 SolutionStatus m_status = Loaded;
34 SolutionReason m_reason = NotSpecified;
37 virtual void operator()() = 0;
38 void submit_upper_bound(
double t_value);
39 void add_scenario(
PrimalPoint t_scenario) { m_scenarios.emplace_back(std::move(t_scenario)); }
40 void clear_scenarios() { m_scenarios.clear(); }
42 void set_status(SolutionStatus t_status, SolutionReason t_reason);
44 [[nodiscard]]
const PrimalPoint& get_master_solution()
const;
45 [[nodiscard]]
Env& get_env()
const;
55 [[nodiscard]]
virtual Separation* clone()
const = 0;
57 virtual std::pair<idol::Model, idol::Bilevel::Description> build_separation_problem();