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