Efficient Stochastic Programming in Julia

被引:6
作者
Biel, Martin [1 ]
Johansson, Mikael [1 ]
机构
[1] Kungliga Tekniska Hogskolan Royal Inst Technol, Sch Elect Engn & Comp Sci, Div Decis & Control Syst, SE-10044 Stockholm, Sweden
关键词
stochastic programming; distributed computations; Julia language; LINEAR-PROGRAMS; OPTIMIZATION; DECOMPOSITION; AGGREGATION; ALGORITHM;
D O I
10.1287/ijoc.2022.1158
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
We present Stochastic Programs.jl, a user-friendly and powerful open-source framework for stochastic programming written in the Julia language. The framework includes both modeling tools and structure-exploiting optimization algorithms. Stochastic programming models can be efficiently formulated using an expressive syntax, and models can be instantiated, inspected, and analyzed interactively. The framework scales seamlessly to distributed environments. Small instances of a model can be run locally to ensure correctness, whereas larger instances are automatically distributed in a memory-efficient way onto supercomputers or clouds and solved using parallel optimization algorithms. These structure-exploiting solvers are based on variations of the classical L-shaped, progressive-hedging, and quasi-gradient algorithms. We provide a concise mathematical background for the various tools and constructs available in the framework along with code listings exemplifying their usage. Both software innovations related to the implementation of the framework and algorithmic innovations related to the structured solvers are highlighted. We conclude by demonstrating strong scaling properties of the distributed algorithms on numerical benchmarks in a multinode setup.
引用
收藏
页码:1885 / 1902
页数:18
相关论文
共 47 条
[1]  
Ali A, 2015, UNCERTAINTY IN ARTIFICIAL INTELLIGENCE, P62
[2]  
[Anonymous], 2004, Inversion of Control Containers and the Dependency Injection pattern
[3]   Julia: A Fresh Approach to Numerical Computing [J].
Bezanson, Jeff ;
Edelman, Alan ;
Karpinski, Stefan ;
Shah, Viral B. .
SIAM REVIEW, 2017, 59 (01) :65-98
[4]  
Biel M, 2019, PREPRINT
[5]  
Biel M, 2018, 2018 IEEEACM PARALLE
[6]   POLO.J1: Policy-based optimization algorithms in Julia [J].
Biel, Martin ;
Aytekin, Arda ;
Johansson, Mikael .
ADVANCES IN ENGINEERING SOFTWARE, 2019, 136
[7]  
Birge JR, 2011, SPRINGER SER OPER RE, P3, DOI 10.1007/978-1-4614-0237-4
[8]   A MULTICUT ALGORITHM FOR 2-STAGE STOCHASTIC LINEAR-PROGRAMS [J].
BIRGE, JR ;
LOUVEAUX, FV .
EUROPEAN JOURNAL OF OPERATIONAL RESEARCH, 1988, 34 (03) :384-392
[9]   SDDP.j1: A Julia Package for Stochastic Dual Dynamic Programming [J].
Dowson, Oscar ;
Kapelevich, Lea .
INFORMS JOURNAL ON COMPUTING, 2021, 33 (01) :27-33
[10]   JuMP: A Modeling Language for Mathematical Optimization [J].
Dunning, Iain ;
Huchette, Joey ;
Lubin, Miles .
SIAM REVIEW, 2017, 59 (02) :295-320