Abstract
We describe Pyomo, an open-source tool for modeling optimization applications in Python. Pyomo can be used to define abstract problems, create concrete problem instances, and solve these instances with standard solvers. Pyomo provides a capability that is commonly associated with algebraic modeling languages like AMPL and GAMS. Pyomo leverages the capabilities of the Coopr software, which integrates Python packages for defining optimizers, modeling optimization applications, and managing computational experiments.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
ACRO (2008) ACRO optimization framework. http://software.sandia. gov/acro
AIMMS (2008) AIMMS home page. http://www.aimms.com
AMPL (2008) AMPL home page. http://www.ampl.com/
CVXOPT (2008) CVXOPT home page. http://abel.ee.ucla.edu/ cvxopt
Eldred MS, Brown SL, Dunlavy DM, Gay DM, Swiler LP, Giunta AA, Hart WE, Watson JP, Eddy JP, Griffin JD, Hough PD, Kolda TG, Martinez-Canales ML, Williams PJ (2006) DAKOTA, a multilevel parallel object-oriented framework for design optimization, parameter estimation, uncertainty quantification, and sensitivity analysis: Version 4.0 users manual. Tech. Rep. SAND2006-6337, Sandia National Laboratories
FLOPC++ (2008) FLOPC++ home page. https://projects.coin-or. org/FlopC++
Fourer R, Gay DM, Kernighan BW (2003) AMPL: A Modeling Language for Mathematical Programming, 2nd Ed. Brooks/Cole—Thomson Learning, Pacific Grove, CA
Fourer R, Ma J, Martin K (2008) Optimization services: A framework for distributed optimization. Mathematical Programming (submitted)
GAMS (2008) GAMS home page. http://www.gams.com
Jones E, Oliphant T, Peterson P, et al (2001—) SciPy: Open source scientific tools for Python. URL http://www.scipy.org/
Kallrath J (2004) Modeling Languages in Mathematical Optimization. Kluwer Academic Publishers
NLPy (2008) NLPy home page. http://nlpy.sourceforge.net/
Oliphant TE (2007) Python for scientific computing. Computing in Science and Engineering pp 10–20
OpenOpt (2008) OpenOpt home page. http://scipy.org/scipy/scikits/wiki/OpenOpt
OPL (2008) OPL home page. http://www.ilog.com/products/oplstudio
OptimJ (2008) Ateji home page. http://www.ateji.com
PuLP (2008) PuLP: A python linear programming modeler. http://130.216.209.237/engsci392/pulp/FrontPage
Pyipopt (2008) Pyipopt home page. http://code.google.com/p/pyipopt/
PythonVSJava (2008) Python & java: A side-by-side comparison. http://www.ferg.org/projects/python java side-by-side.html
Stein W (2008) Sage: Open Source Mathematical Software (Version 2.10.2). The Sage Group, http://www.sagemath.org
TOMLAB (2008) TOMLAB optimization environment. http://www.tomopt.com/tomlab
Acknowledgments
We thank the ICS reviewers for their critical feedback. We also thank Jon Berry, Robert Carr and Cindy Phillips for their critical feedback on the design of Pyomo, and David Gay for developing the Coopr interface to AMPL NL and SOL files. Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy's National Nuclear Security Administration under Contract DE-AC04-94-AL85000.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer Science+Business Media, LLC
About this paper
Cite this paper
Hart, W.E. (2009). Python Optimization Modeling Objects (Pyomo). In: Chinneck, J.W., Kristjansson, B., Saltzman, M.J. (eds) Operations Research and Cyber-Infrastructure. Operations Research/Computer Science Interfaces, vol 47. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-88843-9_1
Download citation
DOI: https://doi.org/10.1007/978-0-387-88843-9_1
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-88842-2
Online ISBN: 978-0-387-88843-9
eBook Packages: Computer ScienceComputer Science (R0)