23 enum CandidateVariableType
30 static CandidateVariableType parse_variable_type(
const std::string& s);
31 static char parse_constraint_type(
const std::string& s);
41 int get(CandidateVariableType t)
const;
42 void set(CandidateVariableType t,
int i);
46 using CandidatesCouplingMap = std::map<std::string, std::map<std::string, VariablePositions>>;
52 double operation_maintenance{0.};
53 double investment{0.};
54 double retirement{0.};
57 double get(CandidateVariableType t)
const;
61 using VariableRef = std::tuple<std::string, std::string, CandidateVariableType>;
68 std::map<VariableRef, double> coefficients_map;
78 std::map<std::string, double> initial_capacities;
80 std::vector<TrajectoryConstraint> trajectory_constraints;
90 std::optional<std::string> parent{std::nullopt};
93 std::map<std::string, CandidateCosts> candidates_costs;
96 using TrajectoryTree = std::vector<TrajectoryNode>;
100 std::shared_ptr<Output::OutputWriter> writer,
101 std::filesystem::path tree_filename,
102 std::filesystem::path annual_lp_filename);
107 void read_master_merge_info_file();
108 void read_node_lp_paths();
110 void check_nodes_have_lp_folder();
112 void build_problem();
113 void add_coupling_constraints();
114 void add_delta_variables();
115 void add_delta_variables_constraints();
116 void set_objective_from_data();
118 std::string make_prefix_from_node(
const std::string& node_name)
const;
119 double get_candidate_initial_value(
const std::string& candidate)
const;
122 const std::string& candidate)
const;
124 const std::string& candidate)
const;
126 std::filesystem::path tree_path_;
127 std::filesystem::path lp_reference_file_filepath_;
128 TrajectoryTree tree_;
130 CandidatesCouplingMap candidates_coupling_;
131 NodesToLpDataLocationMap nodes_lp_info_;
132 CouplingMap structure_;