×

JuMP: a modeling language for mathematical optimization. (English) Zbl 1368.90002

Summary: JuMP is an open-source modeling language that allows users to express a wide range of optimization problems (linear, mixed-integer, quadratic, conic-quadratic, semidefinite, and nonlinear) in a high-level, algebraic syntax. JuMP takes advantage of advanced features of the Julia programming language to offer unique functionality while achieving performance on par with commercial modeling tools for standard tasks. In this work we will provide benchmarks, present the novel aspects of the implementation, and discuss how JuMP can be extended to new problem classes and composed with state-of-the-art tools for visualization and interactivity.

MSC:

90-04 Software, source code, etc. for problems pertaining to operations research and mathematical programming
90C05 Linear programming
90C06 Large-scale problems in mathematical programming
90C30 Nonlinear programming
65D25 Numerical differentiation

References:

[1] AIMMS, {\it AIMMS: The User’s Guide}, www.aims.com, 2015.
[2] M. S. Aln\aes, A. Logg, K. B. Ølgaard, M. E. Rognes, and G. N. Wells, {\it Unified form language: A domain-specific language for weak formulations of partial differential equations}, ACM Trans. Math. Software, 40 (2014), pp. 9:1-9:37. · Zbl 1308.65175
[3] J. Andersson, {\it A General-Purpose Software Framework for Dynamic Optimization}, Ph.D. thesis, Arenberg Doctoral School, KU Leuven, Department of Electrical Engineering (ESAT/SCD) and Optimization in Engineering Center, Kasteelpark Arenberg, Heverlee, Belgium, 2013.
[4] J. Andersson, J. Akesson, and M. Diehl, {\it Dynamic optimization with CasADi}, in Proceedings of the 51st IEEE Annual Conference on Decision and Control (CDC), 2012, pp. 681-686.
[5] A. Atamtürk and M. Savelsbergh, {\it Integer-programming software systems}, Ann. Oper. Res., 140 (2005), pp. 67-124. · Zbl 1091.90046
[6] D. Bertsimas, D. B. Brown, and C. Caramanis, {\it Theory and applications of robust optimization}, SIAM Rev., 53 (2011), pp. 464-501, . · Zbl 1233.90259
[7] D. Bertsimas and F. de Ruiter, {\it Duality in two-stage adaptive linear optimization: Faster computation and stronger bounds}, INFORMS J. Comput., 28 (2016), pp. 500-511. · Zbl 1348.90625
[8] D. Bertsimas, I. Dunning, and M. Lubin, {\it Reformulation versus cutting-planes for robust optimization}, Comput. Manag. Sci., 13 (2016), pp. 195-217.
[9] D. Bertsimas and J. Tsitsiklis, {\it Introduction to Linear Optimization}, Athena Scientific, Nashua, NH, 1997.
[10] J. Bezanson, A. Edelman, S. Karpinski, and V. B. Shah, {\it Julia: A fresh approach to numerical computing}, SIAM Rev., 59 (2017), pp 65-98. · Zbl 1356.68030
[11] J. Bezanson, S. Karpinski, V. Shah, and A. Edelman, {\it Why We Created Julia}, , 2012 (accessed 20 July 2016).
[12] J. Bezanson, S. Karpinski, V. B. Shah, and A. Edelman, {\it Julia: A Fast Dynamic Language for Technical Computing}, preprint, , 2012. · Zbl 1356.68030
[13] D. Bienstock, M. Chertkov, and S. Harnett, {\it Chance-constrained optimal power flow: Risk-aware network control under uncertainty}, SIAM Rev., 56 (2014), pp. 461-495, . · Zbl 1301.93095
[14] D. Bienstock and O. Günlük, {\it Computational experience with a difficult mixed-integer multicommodity flow problem}, Math. Program., 68 (1995), pp. 213-237. · Zbl 0834.90054
[15] J. Birge and F. Louveaux, {\it Introduction to Stochastic Programming}, 2nd ed., Springer Ser. Oper. Res. Financ. Eng., Springer, New York, 2011. · Zbl 1223.90001
[16] C. Bischof, P. Khademi, A. Mauer, and A. Carle, {\it Adifor \(2.0\): Automatic differentiation of Fortran 77 programs}, IEEE Comput. Sci. Engrg., 3 (1996), pp. 18-32.
[17] A. Brooke, D. Kendrick, A. Meeraus, and R. Raman, {\it GAMS: A User’s Guide}, Scientific Press, Redwood City, CA, 1999.
[18] A. E. Bryson, {\it Dynamic Optimization}, Addison Wesley Longman, Menlo Park, CA, 1999.
[19] E. Burnell and W. Hoburg, {\it gpkit Software for Geometric Programming}, Version 0.4.1, , 2015.
[20] M. R. Bussieck, M. C. Ferris, and T. Lohmann, {\it GUSS: Solving collections of data related models within GAMS}, in Algebraic Modeling Systems, J. Kallrath, ed., Appl. Optim. 104, Springer, Berlin, Heidelberg, 2012, pp. 35-56. · Zbl 1247.68052
[21] J. Castro, {\it An interior-point approach for primal block-angular problems}, Comput. Optim. Appl., 36 (2007), pp. 195-219. · Zbl 1148.90351
[22] E. D. Dolan, J. J. Moré, and T. S. Munson, {\it Benchmarking Optimization Software with COPS} 3.0, Technical Report ANL/MCS-TM-273, Argonne National Laboratory, Lemont, IL, 2004.
[23] J. Dongarra, J. Bunch, C. Moler, and G. Stewart, {\it LINPACK Users’ Guide}, SIAM, Philadelphia, 1979.
[24] I. Dunning, {\it Advances in Robust and Adaptive Optimization: Algorithms, Software, and Insights}, Ph.D. thesis, Massachusetts Institute of Technology, Cambridge, MA, 2016.
[25] I. Dunning, V. Gupta, A. King, J. Kung, M. Lubin, and J. Silberholz, {\it A course on advanced software tools for operations research and analytics}, INFORMS Trans. Education, 15 (2015), pp. 169-179.
[26] M. Ferris, P. Gill, T. Kelley, and J. Lee, {\it Beale-Orchard-Hays Prize Citation}, , 2012 (accessed 29 January 2015).
[27] R. Fourer, {\it On the evolution of optimization modeling systems}, in Optimization Stories, M. Grotschel, ed., Doc. Math., 2012, pp. 377-388. · Zbl 1267.01039
[28] R. Fourer, D. M. Gay, and B. W. Kernighan, {\it A modeling language for mathematical programming}, Management Sci., 36 (1990), pp. 519-554. · Zbl 0701.90062
[29] R. Fourer, D. M. Gay, and B. W. Kernighan, {\it AMPL: A Modeling Language for Mathematical Programming}, 2nd ed., Brooks/Cole, Pacific Grove, CA, 2003. · Zbl 0701.90062
[30] E. Fragnière, J. Gondzio, R. Sarkissian, and J.-P. Vial, {\it A structure-exploiting tool in algebraic modeling languages}, Management Sci., 46 (2000), pp. 1145-1158. · Zbl 1232.90307
[31] D. M. Gay, {\it More AD of nonlinear AMPL models: Computing Hessian information and exploiting partial separability}, in Computational Differentiation: Applications, Techniques, and Tools, M. Berz, C. Bischof, G. Corliss, and A. Griewank, eds., SIAM, Philadelphia, 1996, pp. 173-184. · Zbl 0866.65018
[32] A. H. Gebremedhin, A. Tarafdar, A. Pothen, and A. Walther, {\it Efficient computation of sparse Hessians using coloring and automatic differentiation}, INFORMS J. Comput., 21 (2009), pp. 209-223. · Zbl 1243.65071
[33] P. Gill, W. Murray, and M. Wright, {\it Practical Optimization}, Academic Press, San Diego, CA, 1981. · Zbl 0503.90062
[34] R. Giordano, T. Broderick, and M. Jordan, {\it Linear response methods for accurate covariance estimates from mean field variational Bayes}, in Advances in Neural Information Processing Systems 28, C. Cortes, N. D. Lawrence, D. D. Lee, M. Sugiyama, and R. Garnett, eds., Curren Associates, Inc., 2015, pp. 1441-1449.
[35] R. H. Goddard, {\it A method of reaching extreme altitudes}, Nature, 105 (1920), pp. 809-811.
[36] J. Goh and M. Sim, {\it Robust optimization made easy with ROME}, Oper. Res., 59 (2011), pp. 973-985. · Zbl 1235.90107
[37] B. Gough, {\it GNU Scientific Library Reference Manual}, 3rd ed., Network Theory Ltd., 2009.
[38] S. Gowda, {\it Interact.jl}, , 2015 (accessed 14 April 2015).
[39] M. Grant and S. Boyd, {\it CVX: MATLAB Software for Disciplined Convex Programming}, Version 2.1, , 2014.
[40] M. Grant, S. Boyd, and Y. Ye, {\it Disciplined convex programming}, in Global Optimization: From Theory to Implementation, Nonconvex Optimization and Its Application Series, Springer, New York, 2006, pp. 155-210. · Zbl 1130.90382
[41] A. Griewank and A. Walther, {\it Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation}, 2nd ed., SIAM, Philadelphia, 2008. · Zbl 1159.65026
[42] A. Grothey, J. Hogg, K. Woodsend, M. Colombo, and J. Gondzio, {\it A structure conveying parallelizable modeling language for mathematical programming}, in Parallel Scientific Computing and Optimization, Springer Optim. Appl. 27, Springer, New York, 2009, pp. 145-156. · Zbl 1156.65311
[43] Gurobi Optimization, Inc., {\it Gurobi Optimizer Reference Manual}, 2015.
[44] W. E. Hart, J.-P. Watson, and D. L. Woodruff, {\it Pyomo: Modeling and solving mathematical programs in Python}, Math. Program. Comput., 3 (2011), pp. 219-260.
[45] J. Huchette, M. Lubin, and C. Petra, {\it Parallel algebraic modeling for stochastic optimization}, in Proceedings of the 1st Workshop for High Performance Technical Computing in Dynamic Languages, HPTCDL ’14, Piscataway, NJ, 2014, IEEE Press, pp. 29-35.
[46] A. S. Jacobsen, L. Stagner, M. Salewski, B. Geiger, W. W. Heidbrink, S. B. Korsholm, F. Leipold, S. K. Nielsen, J. Rasmussen, M. Stejner, H. Thomsen, M. Weiland, and the ASDEX Upgrade team, {\it Inversion methods for fast-ion velocity-space tomography in fusion plasmas}, Plasma Phys. Controlled Fusion, 58 (2016), 045016.
[47] D. Jones et al., {\it Gadfly.jl}, Version 0.3.9, , 2014.
[48] J. Kallrath, {\it Polylithic modeling and solution approaches using algebraic modeling systems}, Optim. Lett., 5 (2011), pp. 453-466. · Zbl 1259.90075
[49] T. Kluyver et al., {\it Jupyter Notebooks–a publishing format for reproducible computational workflows}, IOP Press, pp. 87-90.
[50] N. Korolko and Z. Sahinoglu, {\it Robust optimization of EV charging schedules in unregulated electricity markets}, IEEE Trans. Smart Grid, 8 (2017), pp. 149-157.
[51] C. Kwon, {\it Complementarity.jl}, (accessed 7 July 2016).
[52] C. Kwon, {\it VariationalInequality.jl}, (accessed 7 July 2016).
[53] C. Lattner and V. Adve, {\it LLVM: A compilation framework for lifelong program analysis and transformation}, in Proceedings of the 2004 IEEE International Symposium on Code Generation and Optimization, IEEE, 2004, pp. 75-86.
[54] M. S. Lobo, L. Vandenberghe, S. Boyd, and H. Lebret, {\it Applications of second-order cone programming}, Linear Algebra Appl., 284 (1998), pp. 193-228. · Zbl 0946.90050
[55] J. Löfberg, {\it YALMIP: A toolbox for modeling and optimization in MATLAB}, in Proceedings of the 2004 IEEE International Symposium on Computer Aided Control Systems Design, IEEE, 2004, pp. 284-289.
[56] J. Löfberg, {\it Automatic robust convex programming}, Optim. Methods Softw., 27 (2012), pp. 115-129. · Zbl 1242.90289
[57] M. Lubin and I. Dunning, {\it Computing in operations research using Julia}, INFORMS J. Comput., 27 (2015), pp. 238-248. · Zbl 1331.90001
[58] M. Lubin, Y. Dvorkin, and S. Backhaus, {\it A robust approach to chance constrained optimal power flow with renewable generation}, IEEE Trans. Power Systems, 31 (2016), pp. 3840-3849.
[59] H. Markowitz, {\it Portfolio selection}, J. Finance, 7 (1952), pp. 77-91.
[60] A. J. Mason, {\it SolverStudio: A new tool for better optimisation and simulation modelling in Excel}, INFORMS Trans. Education, 14 (2013), pp. 45-52.
[61] H. Maurer and H. D. Mittelmann, {\it The non-linear beam via optimal control with bounded state variables}, Optim. Control Appl. Methods, 12 (1991), pp. 19-31. · Zbl 0754.49002
[62] Message Passing Forum, {\it MPI: A Message-Passing Interface Standard}, Tech. Rep., Knoxville, TN, 1994.
[63] H. D. Mittelmann, {\it Sufficient optimality for discretized parabolic and elliptic control problems}, in Fast Solution of Discretized Optimization Problems, K.-H. Hoffman, R. H. L. Hoppe, and V. Schulz, eds., Springer, Basel, 2001, pp. 184-196. · Zbl 0981.49018
[64] U. Naumann, {\it The Art of Differentiating Computer Programs}, SIAM, Philadelphia, 2011.
[65] R. D. Neidinger, {\it Introduction to automatic differentiation and MATLAB object-oriented programming}, SIAM Rev., 52 (2010), pp. 545-563, . · Zbl 1196.65048
[66] W. Orchard-Hays, {\it History of mathematical programming systems}, IEEE Ann. History Comput., 6 (1984), pp. 296-312. · Zbl 0998.01525
[67] S. H. Owen and M. S. Daskin, {\it Strategic facility location: A review}, European J. Oper. Res., 111 (1998), pp. 423-447. · Zbl 0938.90048
[68] C. G. Petra, V. Zavala, E. Nino-Ruiz, and M. Anitescu, {\it Economic Impacts of Wind Covariance Estimation on Power Grid Operations}, Preprint ANL/MCS-P5M8-0614, Argonne National Laboratory, 2014.
[69] D. T. Phan and A. Koc, {\it Optimization approaches to security-constrained unit commitment and economic dispatch with uncertainty analysis}, in Optimization and Security Challenges in Smart Power Grids, V. Pappu, M. Carvalho, and P. Pardalos, eds., Energy Systems, Springer, Berlin, Heidelberg, 2013, pp. 1-37.
[70] J. Revels, M. Lubin, and T. Papamarkou, {\it Forward-Mode Automatic Differentiation in Julia}, preprint, , 2016; extended abstract presented at AD2016–7th International Conference on Algorithmic Differentiation, Oxford, UK.
[71] A. N. Riseth, {\it MultiJuMP.jl}, (accessed 7 July 2016).
[72] D. Shelar and S. Amin, {\it Analyzing vulnerability of electricity distribution networks to DER disruptions}, in American Control Conference (ACC), 2015, pp. 2461-2468.
[73] H. Shen, {\it Interactive notebooks: Sharing the code}, Nature, 515 (2014), pp. 151-152.
[74] D. Spinellis, {\it Notable design patterns for domain-specific languages}, J. Systems Softw., 56 (2001), pp. 91-99.
[75] Stan Development Team, {\it Stan Modeling Language User’s Guide and Reference Manual}, Version 2.5.0, 2014.
[76] M. Udell, K. Mohan, D. Zeng, J. Hong, S. Diamond, and S. Boyd, {\it Convex optimization in Julia}, in Proceedings of the 1st Workshop for High Performance Technical Computing in Dynamic Languages, HPTCDL ’14, Piscataway, NJ, 2014, IEEE Press, pp. 18-28.
[77] J. P. Vielma, I. Dunning, J. Huchette, and M. Lubin, {\it Extended formulations in mixed integer conic quadratic programming}, Math. Program. Comput., 2016, pp. 1-50. · Zbl 1387.90165
[78] A. Wächter and L. T. Biegler, {\it On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming}, Math. Program., 106 (2006), pp. 25-57. · Zbl 1134.90542
[79] A. Walther and A. Griewank, {\it Getting started with ADOL-C}, in Combinatorial Scientific Computing, U. Naumann and O. Schenk, eds., Chapman Hall/CRC Comput. Sci. Ser., CRC Press, Boca Raton, FL, 2012, pp. 181-202. · Zbl 1235.68008
[80] J.-P. Watson, D. Woodruff, and W. Hart, {\it PySP: Modeling and solving stochastic programs in Python}, Math. Program. Comput., 4 (2012), pp. 109-149. · Zbl 1275.90049
[81] V. Zverovich, C. I. Fábián, E. F. D. Ellison, and G. Mitra, {\it A computational study of a solver system for processing two-stage stochastic LPs with enhanced Benders decomposition}, Math. Program. Comput., 4 (2012), pp. 211-238. · Zbl 1275.90050
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.