23 [[nodiscard]]
Optimizer *create(
const Model &t_model)
const override;
27 PenaltyMethod(
const PenaltyMethod& t_src);
28 PenaltyMethod(PenaltyMethod&&) =
default;
30 PenaltyMethod& operator=(
const PenaltyMethod&) =
delete;
31 PenaltyMethod& operator=(PenaltyMethod&&) =
default;
35 PenaltyMethod& with_rescaling_threshold(
double t_threshold);
37 PenaltyMethod& with_penalty_update(
const PenaltyUpdate& t_penalty_update);
39 PenaltyMethod& with_feasible_solution_status(SolutionStatus t_status);
43 [[nodiscard]] PenaltyMethod *clone()
const override;
47 std::unique_ptr<OptimizerFactory> m_optimizer;
48 std::optional<double> m_rescaling_threshold;
49 std::unique_ptr<PenaltyUpdate> m_penalty_update;
50 std::optional<SolutionStatus> m_feasible_solution_status;
51 std::optional<double> m_initial_penalty_parameter;