5#include "antares-xpansion/benders/benders_core/SolverIO.h"
6#include "antares-xpansion/benders/benders_core/common.h"
7#include "antares-xpansion/benders/factories/WriterFactories.h"
8#include "antares-xpansion/helpers/solver_utils.h"
10constexpr char MERGE_MPS_LOGGER_CONTEXT[] =
"MergeMPS";
17 std::shared_ptr<Output::OutputWriter> writer);
24 void terminate(
const std::string& location,
const std::string& message)
const;
26 void export_problem(
const std::string& filename =
"log_merged",
bool export_lp =
false)
const;
29 const std::filesystem::path& root_dir,
30 const std::string& filename)
const;
33 const std::string& local_prefix,
34 const VariableMap& local_var_map,
35 const std::string& filename)
const;
37 std::shared_ptr<Output::OutputWriter> writer_;
43 std::shared_ptr<SolverAbstract> ptr_merged_solver_;
49 using AbstractMergeMPS::AbstractMergeMPS;
55 bool solve(
int nb_threads = 16)
const;
56 void output_solution(
bool is_sol_optimal);
58 [[nodiscard]]
double get_problem_obj_weight(
int nb_subproblems,
const std::string& name)
const;
59 void add_coupling_constraints();
61 CouplingMap structure_;
void multiply_obj_by_weight_factor(SolverAbstract &local_solver, double weight) const
Weights local solver's objective function by a given value.
Definition MergeMPS.cpp:63
void export_problem(const std::string &filename="log_merged", bool export_lp=false) const
Export problem into INPUTROOT/filename and optionally writes the lp variant We do it this way because...
Definition MergeMPS.cpp:164
VariableMap merge_local_solver(SolverAbstract &local_solver, const std::string &local_prefix, const VariableMap &local_var_map, const std::string &filename) const
Merges local to global solver.
Definition MergeMPS.cpp:114
void terminate(const std::string &location, const std::string &message) const
Interrupt the program and output current merged .lp and .mps files.
Definition MergeMPS.cpp:92
std::shared_ptr< SolverAbstract > get_local_solver(const std::filesystem::path &root_dir, const std::string &filename) const
Creates a local solver from a MPS file.
Definition MergeMPS.cpp:41
void launch() override
Merge and solve master and subproblems.
Definition MergeMPS.cpp:187
Definition SolverAbstract.h:203
Definition SolverFactory.h:41