138
Views
0
CrossRef citations to date
0
Altmetric
Research Article

GBOML: a structure-exploiting optimization modelling language in Python

, , , &
Pages 227-256 | Received 30 Nov 2022, Accepted 06 Aug 2023, Published online: 08 Sep 2023

References

  • A.V. Aho, M.S. Lam, R. Sethi, and J.D. Ullman, Compilers: Principles, Techniques, and Tools, 2nd ed., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2006.
  • G. Andreas and Q. Feng, Psmg-a parallel structured model generator for mathematical programming, Optimization Online (2014).
  • J. Benders, Partitioning procedures for solving mixed-variables programming problems, Numerische Mathematik 4 (1962/63), pp. 238–252.
  • M. Berger, D. Radu, G. Detienne, T. Deschuyteneer, A. Richel, and D. Ernst, Remote renewable hubs for carbon-neutral synthetic fuel production, Frontiers Energy Res. 9 (2021), p. 671279.
  • K. Bestuzheva, M. Besançon, W.K. Chen, A. Chmiela, T. Donkiewicz, J. van Doornmalen, L. Eifler, O. Gaul, G. Gamrath, A. Gleixner, L. Gottwald, C. Graczyk, K. Halbig, A. Hoen, C. Hojny, R. van der Hulst, T. Koch, M. Lübbecke, S.J. Maher, F. Matter, E. Mühmer, B. Müller, M.E. Pfetsch, D. Rehfeldt, S. Schlein, F. Schlösser, F. Serrano, Y. Shinano, B. Sofranac, M. Turner, S. Vigerske, F. Wegscheider, P. Wellner, D. Weninger, and J. Witzig, The SCIP Optimization Suite 8.0, ZIB-Report 21-41, Zuse Institute Berlin, 2021.
  • J. Bezanson, A. Edelman, S. Karpinski, and V.B. Shah, Julia: A fresh approach to numerical computing, SIAM Rev. 59 (2017), pp. 65–98.
  • R.E. Bixby, E.A. Boyd, and R.R. Indovina, MIPLIB: A test set of mixed integer programming problems, SIAM News 25 (1992), p. 16.
  • F. Boussemart, C. Lecoutre, and C. Piette, XCSP3: an integrated format for benchmarking combinatorial constrained problems, CoRR abs/1611.03398, 2016.
  • T. Brown, J. Horsch, and D. Schlachtberger, Pypsa: Python for power system analysis, J. Open. Res. Softw. 6(1) (2018), p. 4.
  • M.R. Bussieck and A. Meeraus, General Algebraic Modeling System (GAMS), Springer US, Boston, MA, 2004.
  • M.L. Bynum, G.A. Hackebeil, W.E. Hart, C.D. Laird, B.L. Nicholson, J.D. Siirola, J.P. Watson, and D.L. Woodruff, Pyomo–optimization Modeling in Python, 3rd ed., Vol. 67, Springer Science & Business Media, Cham, Switzerland, 2021.
  • E. Castillo, A. Conejo, P. Pedregal, R. García, and N. Alguacil, Building and Solving Mathematical Programming Models in Engineering and Science, Pure and Applied Mathematics: A Wiley Series of Texts, Monographs and Tracts, Wiley, Hoboken, NJ, 2001.
  • G.B. Dantzig and P. Wolfe, Decomposition principle for linear programs, Oper. Res. 8 (1960), pp. 101–111.
  • M.C. Ferris, S.P. Dirkse, J.H. Jagla, and A. Meeraus, An extended mathematical programming framework, Comput. Chem. Eng. 33 (2009), pp. 1973–1982. FOCAPO 2008 – Selected Papers from the Fifth International Conference on Foundations of Computer-Aided Process Operations.
  • C. Floudas and P. Pardalos, Optimization in Computational Chemistry and Molecular Biology: Local and Global Approaches, Vol. 40, Springer, New York, NY, 2000.
  • J. Forrest, T. Ralphs, H.G. Santos, S. Vigerske, J. Forrest, L. Hafer, B. Kristjansson, M. Lubin, S. Brito, M.C. Saltzman, and F. Matsushima, coin-or/cbc: Release releases/2.10.8, 2022.
  • R. Fourer, Modeling languages versus matrix generators for linear programming, ACM Trans. Math. Softw. 9 (1983), pp. 143–183.
  • R. Fourer and D.M. Gay, Extending an algebraic modeling language to support constraint programming, INFORMS. J. Comput. 14 (2002), pp. 322–344.
  • R. Fourer, D. Gay, and B. Kernighan, AMPL: A Modeling Language for Mathematical Programming, Scientific Press Series, Thomson/Brooks/Cole, Pacific Grove, CA, 2003.
  • A. Frangioni, N. Iardella, and R.D. Lobato, The sms++ project: A structured modelling system for mathematical models, 2021. Available at https://smspp.gitlab.io/.
  • A.M. Frisch, W. Harvey, C. Jefferson, B. Martínez-Hernández, and I. Miguel, Essence: A constraint language for specifying combinatorial problems, Constraints 13 (2008), pp. 268–306.
  • FICO Xpress-Optimizer: Reference manual, Available at http://www.fico.com/xpress. Accessed: 2022-08-30.
  • T. Guns, Increasing modeling language convenience with a universal n-dimensional array, CPpy as python-embedded example, Proceedings of the 18th workshop on Constraint Modelling and Reformulation at CP (Modref 2019), Vol. 19, MODREF2019, Stamford, CT, USA, 2019.
  • GNU Time, 2022. Available at https://www.gnu.org/software/time.
  • Gurobi Optimization, LLC, Gurobi Optimizer Reference Manual, 2022. Available at https://www.gurobi.com.
  • M. Hästbacka, J. Westerlund, and T. Westerlund, Mispt: a user friendly milp mixed-time based production planning tool. Comput. Aided Chem. Eng. 24(2007), pp. 637–642.
  • S. Heipcke and Y. Colombani, Xpress mosel: modeling and programming features for optimization projects, in Operations Research Proceedings 2019, J.S. Neufeld, U. Buscher, R. Lasch, D. Möst, and J. Schönberger, eds., Operations Research Proceedings, Springer, Cham, Switzerland, 2020, pp. 677–683.
  • Q. Huangfu and J.A.J. Hall, Parallelizing the dual revised simplex method, Math. Program. Comput.10 (2018), pp. 119–142.
  • IBM ILOG Cplex, V12. 1: User's manual for cplex, International Business Machines Corporation 46 (2009).
  • J. Jalving, S. Shin, and V.M. Zavala, A graph-based modeling abstraction for optimization: concepts and implementation in plasmo.jl, 2020.
  • J. Jeffers, J. Reinders, and A. Sodani, Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, 2nd ed., Morgan Kaufmann Publishers Inc., San Francisco, CA, 2016.
  • J. Kallrath, Modeling Languages in Mathematical Optimization, 1st ed., Applied Optimization, Springer, New York, NY, 2004.
  • J. Kallrath, Business Optimization Using Mathematical Programming, International Series in Operations Research and Management Science, Springer, Cham, Switzerland, 2021.
  • K. Kibaek, Z. Victor, T. Christian, Z. Yingqiu, B. Geunyeong, and N. Hideaki, Dsp, 2022. Available at https://github.com/Argonne-National-Laboratory/DSP, Accessed: 2022-08-12.
  • R. Laundy, M. Perregaard, G. Tavares, H. Tipi, and A. Vazacopoulos, Solving hard mixed-integer programming problems with xpress-mp: A miplib 2003 case study, INFORMS. J. Comput. 21 (2009), pp. 304–313.
  • M. Lubin and I. Dunning, Computing in operations research using julia, INFORMS. J. Comput. 27 (2015), pp. 238–248.
  • B. Miftari, M. Berger, H. Djelassi, and D. Ernst, Gboml: graph-based optimization modeling language, J. Open Source Softw. 7 (2022), p. 4158.
  • Modelica Association, Modelica – a unified object-oriented language for physical systems modeling. Tutorial, 2000. Available at http://www.modelica.org/documents/ModelicaTutorial14.pdf.
  • L. Moretti, M. Milani, G.G. Lozza, and G. Manzolini, A detailed milp formulation for the optimal design of advanced biofuel supply chains, Renew. Energy 171 (2021), pp. 159–175.
  • N. Nethercote, P.J. Stuckey, R. Becket, S. Brand, G.J. Duck, and G. Tack, MiniZinc: towards a standard CP modelling language, in Principles and Practice of Constraint Programming – CP 2007, C. Bessière, ed., Springer Berlin Heidelberg, Berlin, Heidelberg, 2007, pp. 529–543.
  • S. Pfenninger and B. Pickering, Calliope: A multi-scale energy systems modelling framework, J. Open Source Softw. 3 (2018), p. 825.
  • Python Software Foundation, The Python Standard Library, 2022. Available at https://docs.python.org/3/library/time.html.
  • Python Software Fundation, PyPI, 2022. Available at https://pypi.org/.
  • J.M.G. Sánchez, Modelling in Mathematical Programming, Springer, Cham, 2020.
  • Simulink Documentation, Simulation and model-based design, 2020. Available at https://www.mathworks.com/products/simulink.html.
  • The Open Source Initiative, MIT License, 2022. Available at https://opensource.org/licenses/MIT.
  • The SciPy Community, COO format in Scipy, 2022. Available at https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html.
  • C. Valente, G. Mitra, M. Sadki, and R. Fourer, Extending algebraic modelling languages for stochastic programming, INFORMS. J. Comput. 21 (2009), pp. 107–122.
  • G. Van Rossum and F.L. Drake, Python 3 Reference Manual, CreateSpace, Scotts Valley, CA, 2009.
  • S. Wang and Q. Meng, Robust bunker management for liner shipping networks, Eur. J. Oper. Res. 243 (2015), pp. 789–797.

Reprints and Corporate Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

To request a reprint or corporate permissions for this article, please click on the relevant link below:

Academic Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

Obtain permissions instantly via Rightslink by clicking on the button below:

If you are unable to obtain permissions via Rightslink, please complete and submit this Permissions form. For more information, please visit our Permissions help page.