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 std::string m_native_feasibility_checker;
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 std::string t_native_feasibility_checker,
32 bool t_logs);
33
34 ~MibSFromFile() override;
35
36 void solve() override;
37
38 [[nodiscard]] double get_best_obj() const override;
39
40 [[nodiscard]] double get_best_bound() const override;
41
42 [[nodiscard]] double get_var_primal(const Var& t_var) const override;
43
44 [[nodiscard]] idol::SolutionStatus get_status() const override;
45
46 [[nodiscard]] idol::SolutionReason get_reason() const override;
47
48};
49
50#endif //IDOL_IMPL_MIBSFROMFILE_H