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 <filesystem>
6#include <unordered_map>
7
8#include "antares-xpansion/lpnamer/model/ActiveLinks.h"
9#include "antares-xpansion/multisolver_interface/SolverAbstract.h"
10
11#ifndef ANTARESXPANSION_MASTERPROBLEMBUILDER_H
12#define ANTARESXPANSION_MASTERPROBLEMBUILDER_H
13
14const std::string NB_UNITS_VAR_PREFIX("nb_units_");
15
17{
18public:
19 explicit MasterProblemBuilder(std::string master_formulation);
20 std::shared_ptr<SolverAbstract> build(const std::string& solverName,
21 const std::vector<Candidate>& candidates,
22 SolverLogManager& solver_log_manager);
23
24private:
25 void addNvarOnEachIntegerCandidate(const std::vector<Candidate>& candidatesInteger,
26 SolverAbstract::Ptr& master_l) const;
27 void addVariablesPmaxOnEachCandidate(const std::vector<Candidate>& candidates,
28 SolverAbstract::Ptr& master_l);
29 void addPmaxConstraint(const std::vector<Candidate>& candidatesInteger,
30 SolverAbstract& master_l);
31 int getPmaxVarColumnNumberFor(const Candidate& candidate);
32
33 std::unordered_map<std::string, int> _indexOfPmaxVar;
34 std::unordered_map<std::string, int> _indexOfNvar;
35 std::string _master_formulation;
36};
37
38#endif // ANTARESXPANSION_MASTERPROBLEMBUILDER_H
Candidate class.
Definition Candidate.h:35
Definition MasterProblemBuilder.h:17
Definition SolverAbstract.h:200
std::shared_ptr< SolverAbstract > Ptr
Definition SolverAbstract.h:215
Definition SolverAbstract.h:17