Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
MasterProblemBuilder.h
1//
2// Created by s90365 on 23/08/2021.
3//
4
5#include "antares-xpansion/multisolver_interface/SolverAbstract.h"
6
7#include <filesystem>
8#include <unordered_map>
9
10#include "antares-xpansion/lpnamer/model/ActiveLinks.h"
11
12#ifndef ANTARESXPANSION_MASTERPROBLEMBUILDER_H
13#define ANTARESXPANSION_MASTERPROBLEMBUILDER_H
14
15const std::string NB_UNITS_VAR_PREFIX("nb_units_");
16
18 public:
19 explicit MasterProblemBuilder(std::string master_formulation);
20 std::shared_ptr<SolverAbstract> build(
21 const std::string& solverName, const std::vector<Candidate>& candidates,
22 SolverLogManager& solver_log_manager);
23
24 private:
25 void addNvarOnEachIntegerCandidate(
26 const std::vector<Candidate>& candidatesInteger,
27 SolverAbstract::Ptr& master_l) const;
28 void addVariablesPmaxOnEachCandidate(const std::vector<Candidate>& candidates,
29 SolverAbstract::Ptr& master_l);
30 void addPmaxConstraint(const std::vector<Candidate>& candidatesInteger,
31 SolverAbstract& master_l);
32 int getPmaxVarColumnNumberFor(const Candidate& candidate);
33
34 std::unordered_map<std::string, int> _indexOfPmaxVar;
35 std::unordered_map<std::string, int> _indexOfNvar;
36 std::string _master_formulation;
37};
38
39#endif // ANTARESXPANSION_MASTERPROBLEMBUILDER_H
Candidate class.
Definition Candidate.h:33
Definition MasterProblemBuilder.h:17
Definition SolverAbstract.h:170
std::shared_ptr< SolverAbstract > Ptr
Definition SolverAbstract.h:181
Definition SolverAbstract.h:16