A C++ Framework for Optimization
Loading...
Searching...
No Matches
impl_MibSFromFile.h
1//
2// Created by henri on 20.06.24.
3//
4
5#ifndef IDOL_IMPL_MIBSFROMFILE_H
6#define IDOL_IMPL_MIBSFROMFILE_H
7
8#include "idol/mixed-integer/modeling/models/Model.h"
9#include "idol/bilevel/modeling/Description.h"
10#include "impl_MibS.h"
11
12namespace idol::impl {
13 class MibSFromFile;
14}
15
16class idol::impl::MibSFromFile : public idol::impl::MibS {
17 const idol::Model& m_model;
18 const idol::Bilevel::Description& m_description;
19 const bool m_logs;
20 const bool m_use_cplex_for_feasibility;
21
22 void* m_mibs = nullptr; // MibSModel
23 void* m_broker = nullptr; // AlpsKnowledgeBroker
24 void* m_osi_solver = nullptr; // OsiSolverInterface
25 std::vector<unsigned int> m_variable_index_in_mps;
26
27 void make_variable_index_in_mps();
28public:
29 MibSFromFile(const idol::Model& t_model,
30 const idol::Bilevel::Description& t_description,
31 void* t_osi_solver,
32 bool t_use_cplex_for_feasibility,
33 bool t_logs);
34
35 ~MibSFromFile() override;
36
37 void solve() override;
38
39 [[nodiscard]] double get_best_obj() const override;
40
41 [[nodiscard]] double get_best_bound() const override;
42
43 [[nodiscard]] double get_var_primal(const Var& t_var) const override;
44
45 [[nodiscard]] idol::SolutionStatus get_status() const override;
46
47 [[nodiscard]] idol::SolutionReason get_reason() const override;
48
49};
50
51#endif //IDOL_IMPL_MIBSFROMFILE_H