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;
22protected:
23 [[nodiscard]] Optimizer* create(const Model& t_model) const override;
24 MaxMinRelaxation(const MaxMinRelaxation& t_src);
25public:
26 MaxMinRelaxation(const Robust::Description& t_description, const Bilevel::Description& t_bilevel_description);
27
28 [[nodiscard]] OptimizerFactory* clone() const override;
29
30 MaxMinRelaxation& with_master_optimizer(const OptimizerFactory& t_optimizer);
31 MaxMinRelaxation& with_deterministic_optimizer(const OptimizerFactory& t_optimizer);
32 MaxMinRelaxation& with_indicator(bool t_value);
33};
34
35#endif //IDOL_ROBUST_BBBB_H