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) ;