Open this publication in new window or tab >>2021 (English)Doctoral thesis, monograph (Other academic)
Abstract [en]
Stochastic programming is a subfield of mathematical programming concerned with optimization problems subjected to uncertainty. Many engineering problems with random elements can be accurately modeled as a stochastic program. In particular, decision problems associated with hydropower operations motivate the application of stochastic programming. When complex decision-support problems are considered, the corresponding stochastic programming models often grow too large to store and solve on a single computer. This warrants a need for parallel approaches to enable efficient treatment of large-scale stochastic programs in a distributed environment. In this thesis, we develop mathematical and computational tools to efficiently store and solve distributed stochastic programs.
First, we present a software framework for stochastic programming implemented in the Julia programming language. A key feature of the framework is the support for distributing stochastic programs in memory. Moreover, the framework includes a large set of structure-exploiting algorithms for solving stochastic programming problems. These algorithms are based on the classical L-shaped, progressive-hedging, and quasi-gradient algorithms and can be run in parallel on distributed stochastic programs. The distributed performance of our software framework is improved by exploring algorithmic innovations and software patterns. We present the architecture of the framework and highlight key implementation details. Finally, we provide illustrative examples of stochastic programming functionality and benchmarks on large-scale problems.
Then, we pursue further algorithmic improvements to the distributed L-shaped algorithm. Specifically, we consider the use of dynamic cut aggregation. We develop theoretical results on convergence and complexity and then showcase performance improvements in numerical experiments. We suggest several aggregation schemes that are based on parameterized selection rules. In brief, cut aggregation can bring major performance improvements to L-shaped algorithms in distributed settings.
Next, we consider a fast smoothing scheme for large-scale stochastic programming. We derive a smooth approximation of the subproblems in the quasi-gradient algorithm. This allows us to utilize modern acceleration methods for gradient descent. We derive problem-dependent approximation bounds and convergence properties and note a trade-off between accuracy and speed. We then pose a hybrid procedure that is both fast and accurate and show that it is competitive with the L-shaped method on large-scale benchmarks.
Finally, we consider applications to hydropower operations. We consider three case studies in the Swedish river Skellefteälven. The day-ahead planning problem involves specifying optimal order volumes in a deregulated electricity market, without knowledge of the next-day market price, and then optimizing the hydropower production. We provide a detailed introduction to the day-ahead model and explain how it can be implemented in our framework. Using a sample-based algorithm that internally relies on our structure-exploiting solvers, we obtain tight confidence intervals around the optimal solution of the day-ahead problem. We then consider a maintenance scheduling problem as a variation of the day-ahead problem. Last, we consider a capacity expansion problem with a long planning horizon.
Abstract [sv]
Stokastisk programmering är ett område inom optimeringslära som behandlar beslutsproblem under osäkerhet. Ingenjörsproblem som innehåller slumpmässiga element kan modelleras noggrant med stokastiska program. Planering av vattenkraftsdrift är en specifik tillämpning som har motiverat mycket av arbetet i den här avhandlingen. Komplexa beslutsproblem leder ofta till stokastiska programmeringsproblem vars storlek överskrider kapaciteten hos moderna persondatorer. Det behövs därför skalbara beräkningsmetoder som kan exekveras i en distribuerad miljö bestående av flera samverkande datorer. I denna avhandling utvecklar vi matematiska metoder och beräkningsverktyg som kan användas för att representera och lösa distribuerade stokastiska program effektivt.
I den första delen av avhandlingen presenterar vi ett ramverk för stokastisk programmering som implementerats i programmeringsspråket Julia. En nyckelfunktion i ramverket är möjligheten att instansiera distribuerade stokastiska program. Ramverket innehåller också en uppsättning optimeringsalgoritmer för att lösa stokastiska program genom att utnyttja problemens struktur. Dessa algoritmer är baserade på metoderna ``L-shaped'', ``progressive-hedging'', och ``quasi-gradient'' och kan appliceras parallellt på distribuerade stokastiska program. Vi presenterar algoritmiska innovationer och designmönster som ger förbättrad prestanda i distribuerade miljöer. Vi redogör även för programpaketes struktur och belyser viktiga detaljer i implementationen. Vi demonstrerar slutligen ramverkets funktionalitet med enkla exempel och tillhandahåller prestandatester utförda på storskaliga problem.
I följande kapitel fortsätter vi med att undersöka förbättringar av den distribuerade L-shaped metoden. Speciellt undersöker vi dynamisk snittaggregering. Vi utvecklar teori som beskriver algoritmens konvergens och komplexitet och genom numeriska experiment visar vi sedan prestandaförbättringar. Vi föreslår olika aggregeringstrategier baserade på parametriserade urvalsregler. Snittaggregering kan avsevärt förbättra prestandan hos distribuerade L-shaped algoritmer.
Sedan undersöker vi en slätningsmetod för storskalig stokastisk programmering. We härleder en slät approximation av subproblemen i kvasigradientalgoritmen, vilket låter oss bruka moderna acceleringsmetoder för gradientbaserade algoritmer. We härleder problemberoende approximationsgränser och konvergensegenskaper och noterar en avvägning mellan noggrannhet och lösningshastighet. We föreslår sedan en hybrid metod som är både snabb och noggrann och visar att den är konkurrenskraftig jämfört med L-shaped i storskaliga experiment.
Slutligen applicerar vi våra beräkningsmetoder på beslutsproblem från vattenkraftsindustrin. Vi studerar tre fallstudier kring Skellefteälven. Det första problemet berör budstrategier för en vattenkraftsproducent som deltar på en avreglerad elmarknad. Målet är att bestämma optimala bud på en spotmarknad innan marknadspriset är fastställt och sedan optimera kommande dags vattenkraftsproduktion. Vi ger en detaljerad beskrivning av budgivningsproblemet och förklarar sedan hur modellen kan implementeras i vårat ramverk. Genom att använda en stickprovsbaserad metod, som bygger på våra strukturnyttjande algoritmer, så kan vi beräkna ett konfidensintervall kring budgivningsproblemets optimala värde med hög precision. Sedan undersöker vi en version av budgivningsproblemet där vi även schemalägger förebyggande underhåll av kraftstationerna. Slutligen ställer vi upp ett kapacitetsexpansionsproblem med lång planeringshorisont.
Place, publisher, year, edition, pages
Stockholm: KTH Royal Institute of Technology, 2021. p. 217
Series
TRITA-EECS-AVL ; 2021:73
Keywords
stochastic programming, distributed, algorithms, large-scale, optimization, hydropower, software, julia language
National Category
Control Engineering
Research subject
Electrical Engineering
Identifiers
urn:nbn:se:kth:diva-304522 (URN)978-91-8040-054-1 (ISBN)
Public defence
2021-12-03, https://kth-se.zoom.us/j/67938440307, F3, Lindstedtsvägen 26, Stockholm, 15:00 (English)
Opponent
Supervisors
Note
QC 20211108
2021-11-082021-11-052022-06-25Bibliographically approved