Alpiq · Producteur et trader énergétique suisse
Enchères Day-Ahead qui ajoutent +0,9 M€ de profit réalisé sur une centrale de pompage-turbinage de 900 MW
Un cadre d'unit commitment stochastique + CVaR pour l'actif Nant de Drance d'Alpiq, validé sur 4 mois de prix Day-Ahead réellement clearés en 2021–2022
Le pompage-turbinage hydraulique est autant un instrument financier qu'une centrale. L'opérateur achète de l'électricité bon marché la nuit pour pomper de l'eau en hauteur, la revend en heure de pointe, et doit s'engager sur ces décisions des heures avant que les prix de marché ne se fixent. Bien fait, l'actif imprime de l'argent ; mal fait, la perte est réelle.
Nous avons travaillé avec Alpiq via l'EPFL pour construire un cadre d'optimisation stochastique et robuste qui transforme des prévisions de prix probabilistes en courbes d'offre prêtes à soumettre pour la centrale de 900 MW de Nant de Drance. Un seul curseur d'aversion au risque permet aux traders de doser leur prudence, de façon défendable.
Le défi
Les opérateurs de pompage-turbinage soumettent des courbes horaires d'offre et de demande au marché Day-Ahead des heures avant que les prix ne se fixent. Des prix spot volatils, des contraintes hydrauliques complexes et des temps minimums de démarrage/arrêt font de chaque enchère quotidienne un problème d'optimisation à fort enjeu.
Les modèles risque-neutres peuvent conduire à des pertes catastrophiques les jours de mauvais prix. Les formulations purement robustes sont trop conservatrices et laissent de l'argent sur la table. Alpiq avait besoin d'un cadre permettant aux traders de régler le bon équilibre.
Notre démarche
Nous avons formulé le problème de unit commitment basé sur les prix comme un MILP stochastique sur un éventail de scénarios de prix, avec toutes les contraintes au niveau machine (turbines, pompes, coûts de démarrage, temps de transition) et un terme de risque basé sur le CVaR réglable par un seul paramètre λ.
À côté du moteur stochastique, nous avons construit une formulation robuste à la Bertsimas-Sim et une variante hybride pour la construction des courbes d'offre/demande. Nous avons tout validé via une procédure post-optimisation : générer les courbes, les clearer contre les prix Day-Ahead réels, mesurer le profit réalisé.
Le résultat
Livrable : une base de code Python/Gurobi implémentant les quatre formulations d'enchères Day-Ahead (déterministe, stochastique, stochastique + CVaR, hybride robuste), l'algorithme de construction des courbes d'offre/demande, et un rapport de benchmark côte à côte sur lequel les traders d'Alpiq peuvent s'appuyer pour choisir leur appétit au risque.
Sur 4 mois de prix Day-Ahead réellement clearés en 2021–2022 (janvier, avril, juin, octobre), la version stochastique ajoute 897 315 € (+3,2 %) de profit réalisé par rapport à la baseline déterministe que les desks Day-Ahead utilisent typiquement aujourd'hui. Avec le curseur CVaR activé à λ = 0,5, le même moteur échange environ 2,5 % de profit attendu contre environ 70 % de réduction du risque de queue — un seul curseur entre recherche de profit et aversion au risque, défendable devant un comité.
Plongée technique
Le modèle derrière le résultat.
Le modèle
Au cœur se trouve un programme linéaire mixte déterministe. L'objectif : maximiser le profit de court terme (énergie vendue moins énergie achetée, net des coûts d'exploitation), plus la valeur de l'eau restant dans le réservoir à la fin de l'horizon, moins une petite pénalité pour les variations de la trajectoire du réservoir entre itérations.
Objectif de profit déterministe. Prod est positif (turbinage, vente), Cons est négatif (pompage, achat), pr_t est le prix Day-Ahead, et le dernier terme valorise l'eau restant dans chaque réservoir.
Bilan de masse du réservoir. Volume à l'heure suivante = volume actuel + apports + déversements amont − reliquats − sorties + débits de turbinage et pompage, signés selon le côté du réservoir.
Objectif stochastique risque-averse. λ = 1 retrouve la maximisation risque-neutre du profit attendu ; λ → 0 rend le modèle maximalement averse aux pertes de queue.
Conditional Value at Risk : μ est la VaR au niveau de confiance α (typiquement 0,9), et v_s capture le déficit de chaque scénario en dessous.
Formulation robuste (Bertsimas-Sim). Γ est le budget d'incertitude : il plafonne le nombre de pas de temps où la variable duale b_t peut pousser le prix vers sa borne pire cas. Γ plus grand = plus averse au risque, profit attendu plus faible.
Chaque formulation produit un planning horaire d'activations de turbines et de pompes. Depuis ce planning, nous lisons les courbes d'offre (production) et de demande (consommation) que le trader soumet à la bourse Day-Ahead, puis nous validons le tout contre les prix réellement clearés dans une étape post-optimisation.
Benchmark
Profit réalisé (€) sur quatre mois de test, procédure post-optimisation sur les données de Nant de Drance.
| Approche | Janvier 2022 | Avril 2022 | Juin 2022 | Octobre 2021 | Total |
|---|---|---|---|---|---|
| Déterministe, prescience parfaite | 8 974 588 | 10 652 319 | 5 550 447 | 6 098 301 | 31 275 654 |
| Baseline déterministe | 8 677 245 | 9 356 718 | 4 952 089 | 5 310 318 | 28 296 370 |
| Stochastique (réel) | 8 177 853 | 9 646 849 | 5 143 970 | 6 225 013 | 29 193 685 |
| Stochastique CVaR, λ = 0,5 (réel) | 7 830 682 | 9 526 104 | 5 110 510 | 5 975 414 | 28 442 709 |
| Hybride robuste (réel) | 7 808 784 | 9 577 625 | 4 725 725 | 4 759 019 | 26 871 152 |
Tous les montants en EUR. La prescience parfaite est la borne supérieure inatteignable (optimisation déterministe contre les prix effectivement clearés). Les lignes ‘réel' clearent les courbes contre le prix Day-Ahead réel et requièrent l'activation de slack quand l'engagement initial est physiquement infaisable. Les approches stochastique et stochastique-CVaR battent toutes deux la baseline déterministe en profit réalisé, le CVaR sacrifiant environ 2,5 % de profit attendu pour ≈ 70 % de réduction du risque de queue.
Tiré du dossier



Techniques
- Linéarisation MILP itérative de la puissance dépendante de la hauteur
- Programmation mixte stochastique sur scénarios de prix
- Optimisation risque-averse augmentée du CVaR
- Optimisation robuste Bertsimas-Sim avec budget Γ
- Formulation robuste hybride pour la construction des courbes
- Procédure post-optimisation avec prix réellement clearés
Stack
- Python
- Gurobi
- Pyomo
- Pandas
- Données de marché Alpiq
Un problème de ce type ?