IDEAS home Printed from https://ideas.repec.org/a/inm/orijoc/v34y2022i4p1885-1902.html
   My bibliography  Save this article

Efficient Stochastic Programming in Julia

Author

Listed:
  • Martin Biel

    (Division of Decision and Control Systems, School of Electrical Engineering and Computer Science, Kungliga Tekniska Högskolan Royal Institute of Technology, SE-100 44 Stockholm, Sweden)

  • Mikael Johansson

    (Division of Decision and Control Systems, School of Electrical Engineering and Computer Science, Kungliga Tekniska Högskolan Royal Institute of Technology, SE-100 44 Stockholm, Sweden)

Abstract

We present StochasticPrograms.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. Summary of Contribution: This paper presents StochasticPrograms.jl, an open-source framework for stochastic programming implemented in the Julia programming language. The framework includes an expressive syntax for formulating stochastic programming models as well as versatile analysis tools and parallel optimization algorithms. The framework will prove useful to researchers, educators, and industrial users alike. Researchers will benefit from the readily extensible open-source framework, in which they can formulate complex stochastic models or quickly typeset and test novel optimization algorithms. Educators of stochastic programming will benefit from the clean and expressive syntax. Moreover, the framework supports analysis tools and stochastic programming constructs from classical theory and leading textbooks. We strongly believe that the StochasticPrograms.jl framework can reduce the barrier to entry for incoming practitioners of stochastic programming. Industrial practitioners can make use of StochasticPrograms.jl to rapidly formulate complex models, analyze small instances locally, and then run large-scale instances in production. In doing so, they get distributed capabilities for free without changing the code and access to well-tested state-of-the-art implementations of parallel structure-exploiting solvers. As the framework is open-source, anyone from these target audiences can contribute with new functionality to the framework. In conclusion, by providing both an intuitive interface for new users and an extensive development environment for expert users, StochasticPrograms.jl has strong potential to further the field of stochastic programming.

Suggested Citation

  • Martin Biel & Mikael Johansson, 2022. "Efficient Stochastic Programming in Julia," INFORMS Journal on Computing, INFORMS, vol. 34(4), pages 1885-1902, July.
  • Handle: RePEc:inm:orijoc:v:34:y:2022:i:4:p:1885-1902
    DOI: 10.1287/ijoc.2022.1158
    as

    Download full text from publisher

    File URL: http://dx.doi.org/10.1287/ijoc.2022.1158
    Download Restriction: no

    File URL: https://libkey.io/10.1287/ijoc.2022.1158?utm_source=ideas
    LibKey link: if access is restricted and if your library uses this service, LibKey will redirect you to where you can use your library subscription to access this item
    ---><---

    References listed on IDEAS

    as
    1. Powell, Warren B., 1987. "An operational planning model for the dynamic vehicle allocation problem with uncertain demands," Transportation Research Part B: Methodological, Elsevier, vol. 21(3), pages 217-232, June.
    2. Miles Lubin & J. Hall & Cosmin Petra & Mihai Anitescu, 2013. "Parallel distributed-memory simplex for large-scale stochastic LP problems," Computational Optimization and Applications, Springer, vol. 55(3), pages 571-596, July.
    3. Oscar Dowson & Lea Kapelevich, 2021. "SDDP.jl : A Julia Package for Stochastic Dual Dynamic Programming," INFORMS Journal on Computing, INFORMS, vol. 33(1), pages 27-33, January.
    4. Birge, John R. & Louveaux, Francois V., 1988. "A multicut algorithm for two-stage stochastic linear programs," European Journal of Operational Research, Elsevier, vol. 34(3), pages 384-392, March.
    5. R. T. Rockafellar & Roger J.-B. Wets, 1991. "Scenarios and Policy Aggregation in Optimization Under Uncertainty," Mathematics of Operations Research, INFORMS, vol. 16(1), pages 119-147, February.
    6. Julia L. Higle & Suvrajeet Sen, 1991. "Stochastic Decomposition: An Algorithm for Two-Stage Linear Programs with Recourse," Mathematics of Operations Research, INFORMS, vol. 16(3), pages 650-669, August.
    7. Jeff Linderoth & Alexander Shapiro & Stephen Wright, 2006. "The empirical behavior of sampling methods for stochastic programming," Annals of Operations Research, Springer, vol. 142(1), pages 215-241, February.
    8. Fleten, Stein-Erik & Kristoffersen, Trine Krogh, 2007. "Stochastic programming for optimizing bidding strategies of a Nordic hydropower producer," European Journal of Operational Research, Elsevier, vol. 181(2), pages 916-928, September.
    Full references (including those not matched with items on IDEAS)

    Citations

    Citations are extracted by the CitEc Project, subscribe to its RSS feed for this item.
    as


    Cited by:

    1. Xiaotie Chen & David L. Woodruff, 2023. "Software for Data-Based Stochastic Programming Using Bootstrap Estimation," INFORMS Journal on Computing, INFORMS, vol. 35(6), pages 1218-1224, November.

    Most related items

    These are the items that most often cite the same works as this one and are cited by the same works as this one.
    1. Riis, Morten & Andersen, Kim Allan, 2005. "Applying the minimax criterion in stochastic recourse programs," European Journal of Operational Research, Elsevier, vol. 165(3), pages 569-584, September.
    2. Martin Šmíd & Václav Kozmík, 2024. "Approximation of multistage stochastic programming problems by smoothed quantization," Review of Managerial Science, Springer, vol. 18(7), pages 2079-2114, July.
    3. Blanchot, Xavier & Clautiaux, François & Detienne, Boris & Froger, Aurélien & Ruiz, Manuel, 2023. "The Benders by batch algorithm: Design and stabilization of an enhanced algorithm to solve multicut Benders reformulation of two-stage stochastic programs," European Journal of Operational Research, Elsevier, vol. 309(1), pages 202-216.
    4. N. Edirisinghe & E. Patterson, 2007. "Multi-period stochastic portfolio optimization: Block-separable decomposition," Annals of Operations Research, Springer, vol. 152(1), pages 367-394, July.
    5. Arnab Bhattacharya & Jeffrey P. Kharoufeh & Bo Zeng, 2023. "A Nonconvex Regularization Scheme for the Stochastic Dual Dynamic Programming Algorithm," INFORMS Journal on Computing, INFORMS, vol. 35(5), pages 1161-1178, September.
    6. Panos Parpas & Berk Ustun & Mort Webster & Quang Kha Tran, 2015. "Importance Sampling in Stochastic Programming: A Markov Chain Monte Carlo Approach," INFORMS Journal on Computing, INFORMS, vol. 27(2), pages 358-377, May.
    7. Fengqi You & Ignacio Grossmann, 2013. "Multicut Benders decomposition algorithm for process supply chain planning under uncertainty," Annals of Operations Research, Springer, vol. 210(1), pages 191-211, November.
    8. Zahra Azadi & Harsha Gangammanavar & Sandra Eksioglu, 2020. "Developing childhood vaccine administration and inventory replenishment policies that minimize open vial wastage," Annals of Operations Research, Springer, vol. 292(1), pages 215-247, September.
    9. Gregory A. Godfrey & Warren B. Powell, 2002. "An Adaptive Dynamic Programming Algorithm for Dynamic Fleet Management, I: Single Period Travel Times," Transportation Science, INFORMS, vol. 36(1), pages 21-39, February.
    10. Xiaotie Chen & David L. Woodruff, 2024. "Distributions and bootstrap for data-based stochastic programming," Computational Management Science, Springer, vol. 21(1), pages 1-21, June.
    11. Cosmin Petra & Mihai Anitescu, 2012. "A preconditioning technique for Schur complement systems arising in stochastic optimization," Computational Optimization and Applications, Springer, vol. 52(2), pages 315-344, June.
    12. Gruson, Matthieu & Cordeau, Jean-François & Jans, Raf, 2021. "Benders decomposition for a stochastic three-level lot sizing and replenishment problem with a distribution structure," European Journal of Operational Research, Elsevier, vol. 291(1), pages 206-217.
    13. Z. L. Chen & W. B. Powell, 1999. "Convergent Cutting-Plane and Partial-Sampling Algorithm for Multistage Stochastic Linear Programs with Recourse," Journal of Optimization Theory and Applications, Springer, vol. 102(3), pages 497-524, September.
    14. Aydin, Nezir & Murat, Alper, 2013. "A swarm intelligence based sample average approximation algorithm for the capacitated reliable facility location problem," International Journal of Production Economics, Elsevier, vol. 145(1), pages 173-183.
    15. Ankur Kulkarni & Uday Shanbhag, 2012. "Recourse-based stochastic nonlinear programming: properties and Benders-SQP algorithms," Computational Optimization and Applications, Springer, vol. 51(1), pages 77-123, January.
    16. Kuang-Yu Ding & Xin-Yee Lam & Kim-Chuan Toh, 2023. "On proximal augmented Lagrangian based decomposition methods for dual block-angular convex composite programming problems," Computational Optimization and Applications, Springer, vol. 86(1), pages 117-161, September.
    17. Shehadeh, Karmel S. & Cohn, Amy E.M. & Epelman, Marina A., 2019. "Analysis of models for the Stochastic Outpatient Procedure Scheduling Problem," European Journal of Operational Research, Elsevier, vol. 279(3), pages 721-731.
    18. Sanjay Mehrotra & M. Gokhan Ozevin, 2009. "Decomposition Based Interior Point Methods for Two-Stage Stochastic Convex Quadratic Programs with Recourse," Operations Research, INFORMS, vol. 57(4), pages 964-974, August.
    19. Escudero, Laureano F. & Monge, Juan F. & Rodríguez-Chía, Antonio M., 2020. "On pricing-based equilibrium for network expansion planning. A multi-period bilevel approach under uncertainty," European Journal of Operational Research, Elsevier, vol. 287(1), pages 262-279.
    20. Adarsh Vaderobli & Dev Parikh & Urmila Diwekar, 2020. "Optimization under Uncertainty to Reduce the Cost of Energy for Parabolic Trough Solar Power Plants for Different Weather Conditions," Energies, MDPI, vol. 13(12), pages 1-17, June.

    Corrections

    All material on this site has been provided by the respective publishers and authors. You can help correct errors and omissions. When requesting a correction, please mention this item's handle: RePEc:inm:orijoc:v:34:y:2022:i:4:p:1885-1902. See general information about how to correct material in RePEc.

    If you have authored this item and are not yet registered with RePEc, we encourage you to do it here. This allows to link your profile to this item. It also allows you to accept potential citations to this item that we are uncertain about.

    If CitEc recognized a bibliographic reference but did not link an item in RePEc to it, you can help with this form .

    If you know of missing items citing this one, you can help us creating those links by adding the relevant references in the same way as above, for each refering item. If you are a registered author of this item, you may also want to check the "citations" tab in your RePEc Author Service profile, as there may be some citations waiting for confirmation.

    For technical questions regarding this item, or to correct its authors, title, abstract, bibliographic or download information, contact: Chris Asher (email available below). General contact details of provider: https://edirc.repec.org/data/inforea.html .

    Please note that corrections may take a couple of weeks to filter through the various RePEc services.

    IDEAS is a RePEc service. RePEc uses bibliographic data supplied by the respective publishers.