Antares Simulator
Power System Simulator
opt_fonctions.h
1 /*
2  * Copyright 2007-2025, RTE (https://www.rte-france.com)
3  * See AUTHORS.txt
4  * SPDX-License-Identifier: MPL-2.0
5  * This file is part of Antares-Simulator,
6  * Adequacy and Performance assessment for interconnected energy networks.
7  *
8  * Antares_Simulator is free software: you can redistribute it and/or modify
9  * it under the terms of the Mozilla Public Licence 2.0 as published by
10  * the Mozilla Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * Antares_Simulator is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * Mozilla Public Licence 2.0 for more details.
17  *
18  * You should have received a copy of the Mozilla Public Licence 2.0
19  * along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20  */
21 #ifndef __SOLVER_OPTIMISATION_FUNCTIONS_H__
22 #define __SOLVER_OPTIMISATION_FUNCTIONS_H__
23 
24 #include <antares/optimization-options/options.h>
25 #include <antares/solver/utils/opt_period_string_generator.h>
26 #include <antares/writer/i_writer.h>
27 #include "antares/config/config.h"
28 #include "antares/solver/optimisation/opt_structure_probleme_a_resoudre.h"
29 #include "antares/solver/simulation/ISimulationObserver.h"
30 #include "antares/study/parameters/adq-patch-params.h"
31 
32 #include "adequacy_patch_csr/hourly_csr_problem.h"
33 
37 class ISimulationTable;
39 void OPT_OptimisationHebdomadaireLineaire(
40  const OptimizationOptions& options,
41  PROBLEME_HEBDO* pProblemeHebdo,
42  Solver::IResultWriter& writer,
43  Solver::Simulation::ISimulationObserver& simulationObserver,
44  OptimisationsSimulationTable* simulationTables);
45 void OPT_OptimisationHebdomadaireQuadratique(const OptimizationOptions& options,
46  PROBLEME_HEBDO* pProblemeHebdo);
47 
48 void OPT_NumeroDeJourDuPasDeTemps(PROBLEME_HEBDO*);
49 void OPT_NumeroDIntervalleOptimiseDuPasDeTemps(PROBLEME_HEBDO*);
50 void OPT_ConstruireLaListeDesVariablesOptimiseesDuProblemeLineaire(PROBLEME_HEBDO*);
51 void OPT_InitialiserLesPminHebdo(PROBLEME_HEBDO*);
52 void OPT_InitialiserLesContrainteDEnergieHydrauliqueParIntervalleOptimise(PROBLEME_HEBDO*);
53 void OPT_MaxDesPmaxHydrauliques(PROBLEME_HEBDO*);
54 void OPT_InitialiserLesBornesDesVariablesDuProblemeLineaire(PROBLEME_HEBDO*,
55  const int,
56  const int,
57  const int);
58 void OPT_InitialiserLeSecondMembreDuProblemeLineaire(PROBLEME_HEBDO*, int, int, int, const int);
59 void OPT_InitialiserLesCoutsLineaire(PROBLEME_HEBDO*, const int, const int);
60 
61 bool OPT_PilotageOptimisationLineaire(const OptimizationOptions& options,
62  PROBLEME_HEBDO* problemeHebdo,
63  Solver::IResultWriter& writer,
64  Solver::Simulation::ISimulationObserver& simulationObserver,
65  OptimisationsSimulationTable* simulationTables);
66 void OPT_VerifierPresenceReserveJmoins1(PROBLEME_HEBDO*);
67 
73 bool OPT_AppelDuSimplexe(const SingleOptimOptions& options,
75  int,
76  const int,
79  ISimulationTable* simulationTable);
80 
81 bool OPT_OptimisationLineaire(const OptimizationOptions& options,
82  PROBLEME_HEBDO* problemeHebdo,
83  Solver::IResultWriter& writer,
84  Solver::Simulation::ISimulationObserver& simulationObserver,
85  OptimisationsSimulationTable* simulationTables);
86 void OPT_RestaurerLesDonnees(PROBLEME_HEBDO*);
87 /*------------------------------*/
88 
89 void OPT_CalculerLesPminThermiquesEnFonctionDeMUTetMDT(PROBLEME_HEBDO*);
90 double OPT_CalculerAireMaxPminJour(int, int, int, int, std::vector<int>&, std::vector<int>&);
91 
92 void OPT_ChainagesDesIntercoPartantDUnNoeud(PROBLEME_HEBDO*);
93 
94 void OPT_AllocateFromNumberOfVariableConstraints(PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudre);
95 void OPT_AllocDuProblemeAOptimiser(PROBLEME_HEBDO*);
96 int OPT_DecompteDesVariablesEtDesContraintesDuProblemeAOptimiser(PROBLEME_HEBDO*);
97 
98 /*------------------------------*/
99 
100 void OPT_ConstruireLaListeDesVariablesOptimiseesDuProblemeLineaireCoutsDeDemarrage(PROBLEME_HEBDO*,
101  bool);
102 void OPT_InitialiserLesBornesDesVariablesDuProblemeLineaireCoutsDeDemarrage(PROBLEME_HEBDO*,
103  const int,
104  const int);
105 void OPT_InitialiserLesCoutsLineaireCoutsDeDemarrage(PROBLEME_HEBDO*, const int, const int);
106 void OPT_InitialiserLeSecondMembreDuProblemeLineaireCoutsDeDemarrage(PROBLEME_HEBDO*, int, int);
107 void OPT_DecompteDesVariablesEtDesContraintesCoutsDeDemarrage(PROBLEME_HEBDO*);
108 void OPT_InitialiserNombreMinEtMaxDeGroupesCoutsDeDemarrage(PROBLEME_HEBDO*);
109 void OPT_AjusterLeNombreMinDeGroupesDemarresCoutsDeDemarrage(PROBLEME_HEBDO*);
110 double OPT_SommeDesPminThermiques(const PROBLEME_HEBDO*, int, uint);
111 
112 #endif /* __SOLVER_OPTIMISATION_FUNCTIONS_H__ */
Definition: i_writer.h:32
The ISimulationObserver class is an interface for observing the simulation.
Definition: ISimulationObserver.h:36
Definition: ISimulationTable.h:26
Definition: opt_period_string_generator.h:40
Definition: OptimisationsSimulationTable.h:31
Definition: opt_structure_probleme_a_resoudre.h:35
Definition: adq-patch-params.h:114
Definition: sim_structure_probleme_economique.h:403