Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
OutputWriter.h
1
2#pragma once
3#include <filesystem>
4#include <memory>
5#include <string>
6#include <vector>
7
8namespace Output
9{
10
11// string constantes
12const std::string ANTARES_C("antares"), VERSION_C("version"),
13 ANTARES_XPANSION_C("antares_xpansion"), BEGIN_C("begin"), END_C("end"),
14 RUN_DURATION_C("run_duration"), MASTER_DURATION_C("master_duration"),
15 SUBPROBLEM_DURATION_C("subproblem_duration"), ITERATIONS_C("iterations"), BEST_UB_C("best_ub"),
16 CANDIDATES_C("candidates"), INVEST_C("invest"), MAX_C("max"), MIN_C("min"), NAME_C("name"),
17 INVESTMENT_COST_C("investment_cost"), LB_C("lb"), OPERATIONAL_COST_C("operational_cost"),
18 OPTIMALITY_GAP_C("optimality_gap"), OVERALL_COST_C("overall_cost"),
19 RELATIVE_GAP_C("relative_gap"), UB_C("ub"), NBWEEKS_C("nbWeeks"), OPTIONS_C("options"),
20 SOLUTION_C("solution"), OUTER_LOOP_SOLUTION_C("security criterion solution"),
21 ITERATION_C("iteration"), PROBLEM_STATUS_C("problem_status"), OPTIMAL_C("OPTIMAL"),
22 LIMIT_REACHED_C("limit reached"), ERROR_C("ERROR"), VALUES_C("values"),
23 STOPPING_CRITERION_C("stopping_criterion"), MASTER_NAME_C("MASTER_NAME"),
24 LOG_LEVEL_C("LOG_LEVEL"), SOLVER_NAME_C("SOLVER_NAME"), PROBLEMNAME_C("problem_name"),
25 PROBLEMPATH_C("problem_path"),
26 CUMULATIVE_NUMBER_OF_SUBPROBLEM_RESOLVED_C("cumulative_number_of_subproblem_resolutions"),
27 PROBLEM_FORMAT_C{"PROBLEM_FORMAT"};
28
30{
31 std::string name;
32 double invest;
33 double min;
34 double max;
35};
36
37typedef std::vector<CandidateData> CandidatesVec;
38
40{
41 double master_duration;
42 double subproblem_duration;
43 double lb;
44 double ub;
45 double best_ub;
46 double optimality_gap;
47 double relative_gap;
48 double investment_cost;
49 double operational_cost;
50 double overall_cost;
51 CandidatesVec candidates;
52 int cumulative_number_of_subproblem_resolved;
53};
54
55typedef std::vector<Iteration> Iterations;
56
64{
65 Iteration solution;
66 int nbWeeks_p;
67 int best_it;
68 std::string problem_status;
69 std::string stopping_criterion;
70};
71
83{
84 int nbWeeks_p;
85 double elapsed_time;
86 Iterations iters;
87 SolutionData solution_data;
88};
89
91{
92 std::string name;
93 std::filesystem::path path;
94 std::string status;
95};
96
103{
104public:
108 virtual ~OutputWriter() = default;
109
115 virtual void update_solution(const SolutionData& solution_data) = 0;
116
120 virtual void dump() = 0;
121
125 virtual void initialize() = 0;
126
127 virtual void end_writing(const IterationsData& iterations_data) = 0;
128
129 virtual void write_solver_name(const std::string& solver_name) = 0;
130 virtual void write_master_name(const std::string& master_name) = 0;
131 virtual void write_log_level(const int log_level) = 0;
132 virtual void write_solution(const SolutionData& solution) = 0;
133 virtual void write_iteration(const Iteration& iteration_data, const size_t iteration_num) = 0;
134 virtual void updateBeginTime() = 0;
135 virtual void updateEndTime() = 0;
136 virtual void write_nbweeks(const int nb_weeks) = 0;
137 virtual void write_duration(const double duration) = 0;
138 virtual std::string solution_status() const = 0;
139 virtual void WriteProblem(const ProblemData& problem_data) = 0;
140 virtual void WriteProblemFormat(const std::string format) = 0;
141};
142} // namespace Output
OutputWriter class to describe the execuion session of an antares xpansion optimization in a log file...
Definition OutputWriter.h:103
virtual void initialize()=0
initialize outputs
virtual void update_solution(const SolutionData &solution_data)=0
saves some entries to be later written to the json file
virtual ~OutputWriter()=default
destructor of class OutputWriter
virtual void dump()=0
write the log data into a file
Definition OutputWriter.h:30
Definition OutputWriter.h:40
struct containing some entries to be later written to the json file
Definition OutputWriter.h:83
Definition OutputWriter.h:91
struct saves some entries to be later written to the json file
Definition OutputWriter.h:64