22 std::optional<Annotation<unsigned int>> m_decomposition;
23 std::unique_ptr<OptimizerFactory> m_master_optimizer_factory;
24 std::unique_ptr<DantzigWolfe::InfeasibilityStrategyFactory> m_infeasibility_strategy;
25 std::unique_ptr<DantzigWolfe::DualPriceSmoothingStabilization> m_dual_price_smoothing_stabilization;
26 std::unique_ptr<Logs::DantzigWolfe::Factory> m_logger_factory;
27 std::optional<unsigned int> m_max_parallel_sub_problems;
28 std::optional<bool> m_use_hard_branching;
29 std::optional<bool> m_use_infeasible_column_removal_when_branching;
30 std::optional<DantzigWolfe::SubProblem> m_default_sub_problem_spec;
31 Map<unsigned int, DantzigWolfe::SubProblem> m_sub_problem_specs;
33 [[nodiscard]] std::vector<DantzigWolfe::SubProblem> create_sub_problems_specifications(
const DantzigWolfe::Formulation &t_dantzig_wolfe_formulation)
const;
34 static void add_aggregation_constraints(
DantzigWolfe::Formulation& t_dantzig_wolfe_formulation,
const std::vector<DantzigWolfe::SubProblem>& t_sub_problem_specifications) ;