idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
AdversarialProblemSolver.h
1//
2// Created by henri on 08.05.25.
3//
4
5#ifndef IDOL_ADVERSARIALPROBLEMSOLVER_H
6#define IDOL_ADVERSARIALPROBLEMSOLVER_H
7
8#include "Formulation.h"
9
10namespace idol::Optimizers::Robust::impl {
11 class AdversarialProblemSolver;
12}
13
15 const ::idol::CCG::Formulation& m_formulation;
16
17 bool m_has_failed = false;
18 SolutionStatus m_status = Loaded;
19 SolutionReason m_reason = NotSpecified;
20 std::vector<Point<Var>> m_scenarios;
21public:
22 explicit AdversarialProblemSolver(const ::idol::CCG::Formulation& t_formulation) : m_formulation(t_formulation) {}
23
24 [[nodiscard]] bool has_failed() const { return m_has_failed; }
25 [[nodiscard]] SolutionStatus status() const { return m_status; }
26 [[nodiscard]] SolutionReason reason() const { return m_reason; }
27 [[nodiscard]] const std::vector<Point<Var>>& scenarios() const { return m_scenarios; }
28
29 void set_status(SolutionStatus t_status) { m_status = t_status; }
30 void set_reason(SolutionReason t_reason) { m_reason = t_reason; }
31
32 void operator()(const Point<Var>& t_first_stage_solution);
33};
34
35#endif //IDOL_ADVERSARIALPROBLEMSOLVER_H