Skip to content

Random and epsilon parameters

To address some numeric issues, Antares has several kinds of parameters that represent neither regular costs nor physical limits of the power system components.

Low level parameters

The first general category of such numbers is a "low-level" one, which is not actually dealt with by Antares, since it involves only parameters defined and used by the software called by Antares to solve the problems once they are completely defined. These numbers, out of reach of the Antares user1, mainly include numeric accuracy requirements (various deterministic tolerance thresholds) and perturbations which aim either at speeding up the walk toward an optimal solution (counter-measures against degeneracy) or at discovering more than one optimal solution, when such multiple optima do exist.

Random numbers

Within this set of parameters, random numbers are normally generated by an appropriate algorithm using deterministic seeds that do not depend on the state of the machine at runtime. As a result, successive resolutions of the same problem on different machines, by the same solver, should yield exactly the same solutions2. Unfortunately, this does not imply at all that successive resolutions of the same problem with different solvers would produce the same solutions.

Even more importantly, there is absolutely no guarantee that different weekly problems that look very much alike3 will not lead to optimal solutions that are unrealistically close though they are mathematically valid. The risk exists indeed that the solver’s outputs show repetitive patterns that may be wrongly taken for meaningful economic invariant.

Random epsilon

To address both the issues of stability (no dependency to either the solver or the machine used) and diversity (variables that play identical roles should contribute with equal shares to the long-run simulation statistics), sets of "high level" random epsilons are incorporated by Antares to the description of the optimization problem defined by the raw power system input data.

These numbers take the form of numeric noises on thermal generation costs, hydro generation costs, unsupplied energy costs and spilled energy costs4. They are generated by several instances of the "Mersenne Twister" algorithm (MT19937), whose seeds are made accessible through the standard user interface.

Other random parameters

Aside from these random epsilons, there is in Antares a need for a large set of other random numbers that are required to define in detail the consistency of each Monte-Carlo scenarios. This includes the setting up of the initial (hydro) reservoir levels, the automatic generation of several kinds of time series (if the built-in timeseries generators are activated), the draws of time series (either ready-made or generated on the spot) and possibly, random deviations from the standard costs prescribed by the user (spreads). All of these numbers are, again, generated by dedicated instances of MT19937.

Deterministic epsilons

For the sake of exhaustiveness, it has to be noted that there is, aside from random epsilons, a handful of deterministic epsilons that help define the way hydro or other storable resources should be managed. In the course of the simulation, these auxiliary parameters take the form of penalties that may be put or not on hydro hourly power fluctuations (two types of penalties may be used for that purpose, they appear explicitly in the problem formulation with notations \(\epsilon_\lambda^1\) and \(\epsilon_\lambda^2\)).

Finally, upstream of the proper optimization, there is a last set of hydro-related parameters that help drive the hydro heuristic engine (this code is deemed to provide a way for Antares to use storable resources when no actual stock value is available). Note that, since the heuristic stage is completely independent from the actual optimization, the absolute magnitude of the hydro-drivers has absolutely no influence on the output of the weekly problem (large numbers could be used instead of epsilons, provided their relative scale is preserved).

Summary

The following diagram summarizes the situation regarding both random and epsilon numbers defined and used within Antares. They are meant to build up, along with the regular description of the power system (physical limits and standard costs), an optimization framework that is up to the complex tasks at hand: balanced Monte-Carlo draws, reproducible simulations exploring the whole span of optimal operating configurations.

Random Epsilons Minimum absolute value Maximum absolute value
N_THERMAL \(5 \cdot 10^{-4}\) €/MWh \(6 \cdot 10^{-4}\) €/MWh
N_UNSUPPLIED \(5 \cdot 10^{-4}\) €/MWh \(6 \cdot 10^{-4}\) €/MWh
N_SPILLAGE \(5 \cdot 10^{-4}\) €/MWh \(6 \cdot 10^{-4}\) €/MWh
N_HYDRO \(5 \cdot 10^{-4}\) €/MWh \(10 \cdot 10^{-4}\) €/MWh

It can be noted that, in absolute value, all random epsilons are smaller than the lower bound of the (non-zero) actual costs that can be defined through the user interface (CLB – cost lower bound : \(5 \cdot 10^{-3}\) €/MWh)


  1. And sometimes out of reach of the solver user as well (if the code is in closed form and if the user is not given access to the parameters by the solver’s interface) 

  2. Provided that the code be compiled with hardware-independent floating point-related options (IEEE754 arithmetic and micro-coding of math library functions). 

  3. Consider for instance a case where a fleet of ten exactly identical plants, in a highly symmetric system, is expected to generate an overall amount of power roughly equivalent to the nominal capacity of two of them. Simulations results indicating that this power should exclusively be provided by a specific pair of units (the other eight remaining always idle, throughout all Monte Carlo scenarios), would appear heavily biased, though not mathematically wrong. 

  4. These random noises affect only cost-related parameters and not RHS parameters (such perturbations, which have not been implemented so far, might bring some benefits as regards degeneracy). It can also be noted that, in the special case of hydro, the random noise is present in the problem formulation given in this document, with notation \(\epsilon_\lambda^0\)