pyomo

An object-oriented algebraic modeling language in Python for structured optimization problems.

https://github.com/pyomo/pyomo

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: springer.com
  • Committers with academic emails
    35 of 165 committers (21.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

linear-programming mathematical-programming modeling-language nonlinear-programming optimization python

Keywords from Contributors

closember cbc cplex glpk gurobi linear-optimisation linear-optimization optimisation xpress
Last synced: 4 months ago · JSON representation ·

Repository

An object-oriented algebraic modeling language in Python for structured optimization problems.

Basic Info
  • Host: GitHub
  • Owner: Pyomo
  • License: other
  • Language: Python
  • Default Branch: main
  • Homepage: https://www.pyomo.org
  • Size: 96 MB
Statistics
  • Stars: 2,260
  • Watchers: 60
  • Forks: 551
  • Open Issues: 320
  • Releases: 22
Topics
linear-programming mathematical-programming modeling-language nonlinear-programming optimization python
Created over 9 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

GitHub Actions Status Jenkins Status codecov Documentation Status Build services GitHub contributors Merged PRs

a COIN-OR project

Pyomo Overview

Pyomo is a Python-based open-source software package that supports a diverse set of optimization capabilities for formulating and analyzing optimization models. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Pyomo supports a wide range of problem types, including:

  • Linear programming
  • Quadratic programming
  • Nonlinear programming
  • Mixed-integer linear programming
  • Mixed-integer quadratic programming
  • Mixed-integer nonlinear programming
  • Mixed-integer stochastic programming
  • Generalized disjunctive programming
  • Differential algebraic equations
  • Mathematical programming with equilibrium constraints
  • Constraint programming

Pyomo supports analysis and scripting within a full-featured programming language. Further, Pyomo has also proven an effective framework for developing high-level optimization and analysis tools. For example, the mpi-sppy package provides generic solvers for stochastic programming. mpi-sppy leverages the fact that Pyomo's modeling objects are embedded within a full-featured high-level programming language, which allows for transparent parallelization of subproblems using Python parallel communication libraries.

Pyomo was formerly released as the Coopr software library.

Pyomo is available under the BSD License - see the LICENSE.md file.

Pyomo is currently tested with the following Python implementations:

  • CPython: 3.9, 3.10, 3.11, 3.12, 3.13
  • PyPy: 3.10

Testing and support policy:

At the time of the first Pyomo release after the end-of-life of a minor Python version, we will remove testing for that Python version.

Installation

PyPI PyPI version PyPI downloads

pip install pyomo

Anaconda Anaconda version Anaconda downloads

conda install -c conda-forge pyomo

Tutorials and Examples

Getting Help

To get help from the Pyomo community ask a question on one of the following: * Use the #pyomo tag on StackOverflow * Pyomo Forum

Developers

Pyomo development moved to this repository in June 2016 from Sandia National Laboratories. Developer discussions are hosted by Google Groups.

The Pyomo Development team holds weekly coordination meetings on Tuesdays 12:30 - 14:00 (MT). Please contact wg-pyomo@sandia.gov to request call-in information.

By contributing to this software project, you are agreeing to the following terms and conditions for your contributions:

  1. You agree your contributions are submitted under the BSD license.
  2. You represent you are authorized to make the contributions and grant the license. If your employer has rights to intellectual property that includes your contributions, you represent that you have received permission to make contributions and grant the required license on behalf of that employer.

Related Packages

See https://pyomo.readthedocs.io/en/latest/related_packages.html.

Owner

  • Name: Pyomo
  • Login: Pyomo
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - name: "Pyomo contributors"
title: "Pyomo: a Python-based, open-source optimization modeling language with a diverse set of optimization capabilities"
url: "https://github.com/Pyomo/pyomo"
license-url: "https://github.com/Pyomo/pyomo/blob/main/LICENSE.md"
preferred-citation:
  type: book
  authors:
    - family-names: "Bynum"
      given-names: "Michael L"
    - family-names: "Hackebeil"
      given-names: "Gabriel A"
    - family-names: "Hart"
      given-names: "William E"
    - family-names: "Laird"
      given-names: "Carl D"
    - family-names: "Nicholson"
      given-names: "Bethany L"
    - family-names: "Siirola"
      given-names: "John D"
    - family-names: "Watson"
      given-names: "Jean-Paul"
    - family-names: "Woodruff"
      given-names: "David L"
  title: "Pyomo - optimization modeling in Python, 3rd Edition"
  publisher: "Springer"
  volume: 67
  year: 2021
  doi: "10.1007/978-3-030-68928-5"

GitHub Events

Total
  • Create event: 10
  • Release event: 4
  • Issues event: 141
  • Watch event: 237
  • Delete event: 5
  • Issue comment event: 604
  • Push event: 180
  • Gollum event: 1
  • Pull request review comment event: 702
  • Pull request event: 388
  • Pull request review event: 872
  • Fork event: 40
Last Year
  • Create event: 10
  • Release event: 4
  • Issues event: 141
  • Watch event: 237
  • Delete event: 5
  • Issue comment event: 604
  • Push event: 180
  • Gollum event: 1
  • Pull request review comment event: 702
  • Pull request event: 388
  • Pull request review event: 872
  • Fork event: 40

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 21,941
  • Total Committers: 165
  • Avg Commits per committer: 132.976
  • Development Distribution Score (DDS): 0.714
Past Year
  • Commits: 2,064
  • Committers: 36
  • Avg Commits per committer: 57.333
  • Development Distribution Score (DDS): 0.624
Top Committers
Name Email Commits
John Siirola j****a 6,265
William Hart w****2@g****m 2,052
Miranda Mundt m****t@s****v 1,724
Gabriel Hackebeil g****l@g****m 1,711
Emma Johnson e****8 1,589
Robert Parker r****r@g****m 1,362
Michael Bynum m****m 925
Zedong p****g@1****m 844
Qi Chen q****n@a****u 772
jasherma j****a@a****u 743
Bethany Nicholson b****o@s****v 666
Grant Seastream g****e@a****u 279
Carl Laird c****d 243
jialuw96 j****4@n****u 241
David L. Woodruff d****f@u****u 178
Daniel Laky 2****y 152
Rahul Joglekar r****a@a****u 145
Jean-Paul Watson j****m 142
Alex Dowling a****x@d****g 131
Katherine Klise k****e@s****v 124
Soren Davis s****s@g****m 119
John Eslick j****k@n****v 89
Bernard Knueven B****n@n****v 83
Sunjeev Kale s****e@a****u 78
David Woodruff d****f 70
Utkarsh-Detha u****a@g****m 61
natalieisenberg i****e@g****m 59
Kanishka Ghosh k****h@n****u 48
Ruaridh Williamson r****n@f****m 46
Eslick J****k@c****m 42
and 135 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 422
  • Total pull requests: 972
  • Average time to close issues: almost 2 years
  • Average time to close pull requests: 17 days
  • Total issue authors: 185
  • Total pull request authors: 67
  • Average comments per issue: 2.29
  • Average comments per pull request: 1.81
  • Merged pull requests: 787
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 85
  • Pull requests: 389
  • Average time to close issues: 15 days
  • Average time to close pull requests: 7 days
  • Issue authors: 54
  • Pull request authors: 32
  • Average comments per issue: 0.92
  • Average comments per pull request: 1.19
  • Merged pull requests: 283
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • whart222 (26)
  • mrmundt (18)
  • emma58 (18)
  • michaelbynum (16)
  • jsiirola (14)
  • ZedongPeng (13)
  • blnicho (12)
  • shermanjasonaf (12)
  • andrewlee94 (11)
  • dallan-keylogic (11)
  • Robbybp (10)
  • carldlaird (10)
  • adowling2 (9)
  • bknueven (9)
  • codykarcher (8)
Pull Request Authors
  • jsiirola (345)
  • mrmundt (187)
  • emma58 (53)
  • michaelbynum (52)
  • shermanjasonaf (48)
  • Robbybp (39)
  • blnicho (37)
  • eslickj (18)
  • bknueven (17)
  • ZedongPeng (12)
  • adowling2 (10)
  • sadavis1 (10)
  • djlaky (9)
  • quantresearch1 (8)
  • sscini (8)
Top Labels
Issue Labels
bug (211) enhancement (148) pyomo.core (64) pyomo.solvers (54) pyomo.contrib (31) design discussions (23) IDAES related (16) documentation (15) testing_and_ci (11) not planned (10) pyomo.data (10) PEP (10) pyomo.gdp (6) pyomo.dae (6) pyomo.installation (3) wontfix (2) performance (2) pyomo7 (2) ParmEst (2) PyNumero (1) pyomo.util (1) question (1) pyomo.DoE (1)
Pull Request Labels
pyomo.DoE (7) AT: PRE-TEST INSPECTED (6) ParmEst (6) AT: STALE (5) not planned (2)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 621,727 last-month
  • Total dependent packages: 94
    (may contain duplicates)
  • Total dependent repositories: 268
    (may contain duplicates)
  • Total versions: 104
  • Total maintainers: 4
pypi.org: pyomo

The Pyomo optimization modeling framework

  • Homepage: https://www.pyomo.org
  • Documentation: https://pyomo.readthedocs.io/en/stable/
  • License: LICENSE ======= Copyright (c) 2008-2025 National Technology and Engineering Solutions of Sandia, LLC . Under the terms of Contract DE-NA0003525 with National Technology and Engineering Solutions of Sandia, LLC , the U.S. Government retains certain rights in this software. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Sandia National Laboratories nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 6.9.4
    published 4 months ago
  • Versions: 73
  • Dependent Packages: 86
  • Dependent Repositories: 234
  • Downloads: 621,727 Last month
Rankings
Dependent packages count: 0.2%
Downloads: 0.6%
Dependent repos count: 1.0%
Average: 1.2%
Stargazers count: 1.7%
Forks count: 2.5%
Maintainers (4)
Last synced: 4 months ago
conda-forge.org: pyomo

An object-oriented algebraic modeling language in Python for structured optimization problems.

  • Homepage: http://pyomo.org
  • License: BSD-3-Clause
  • Latest release: 6.4.2
    published over 3 years ago
  • Versions: 31
  • Dependent Packages: 8
  • Dependent Repositories: 34
Rankings
Dependent repos count: 6.3%
Average: 6.7%
Dependent packages count: 7.1%
Last synced: 4 months ago