19 std::optional<double> m_lower_multiplicity;
20 std::optional<double> m_upper_multiplicity;
22 std::list<std::unique_ptr<OptimizerFactory>> m_phase_optimizers;
24 std::optional<unsigned int> m_max_column_per_pricing;
25 std::optional<std::pair<unsigned int, double>> m_column_pool_clean_up_parameters;
35 SubProblem& with_multiplicities(
double t_lower,
double t_upper);
37 SubProblem& with_lower_multiplicity(
double t_lower);
39 SubProblem& with_upper_multiplicity(
double t_upper);
43 SubProblem& with_max_column_per_pricing(
unsigned int t_n_columns);
45 SubProblem& with_column_pool_clean_up(
unsigned int t_threshold,
double t_ratio);
47 unsigned int max_column_per_pricing()
const {
return m_max_column_per_pricing.has_value() ? m_max_column_per_pricing.value() : 1; }
49 double lower_multiplicity()
const;
51 double upper_multiplicity()
const;
53 unsigned int column_pool_clean_up_threshold()
const;
55 double column_pool_clean_up_ratio()
const;
57 using PhaseId = std::list<std::unique_ptr<OptimizerFactory>>::const_iterator;