Loading...
Searching...
No Matches
MaxMinRelaxation.h
1//
2// Created by Henri on 01/06/2026.
3//
4
5#ifndef IDOL_ROBUST_BBBB_H
6#define IDOL_ROBUST_BBBB_H
7
8#include <idol/general/optimizers/OptimizerFactory.h>
9#include <idol/robust/modeling/Description.h>
10#include <idol/bilevel/modeling/Description.h>
11
12namespace idol::Robust {
13 class MaxMinRelaxation;
14}
15
17 const Description& m_description;
18 const Bilevel::Description& m_bilevel_description;
19 std::unique_ptr<OptimizerFactory> m_master_optimizer_factory;
20 std::unique_ptr<OptimizerFactory> m_deterministic_optimizer_factory;
21 std::optional<bool> m_use_indicator;
22 std::list<PrimalPoint> m_initial_scenarios;
23protected:
24 [[nodiscard]] Optimizer* create(const Model& t_model) const override;
25 MaxMinRelaxation(const MaxMinRelaxation& t_src);
26public:
27 MaxMinRelaxation(const Robust::Description& t_description, const Bilevel::Description& t_bilevel_description);
28
29 [[nodiscard]] OptimizerFactory* clone() const override;
30
31 MaxMinRelaxation& with_master_optimizer(const OptimizerFactory& t_optimizer);
32 MaxMinRelaxation& with_deterministic_optimizer(const OptimizerFactory& t_optimizer);
33 MaxMinRelaxation& with_indicator(bool t_value);
34 MaxMinRelaxation& add_initial_scenario(PrimalPoint t_scenario);
35};
36
37#endif //IDOL_ROBUST_BBBB_H