or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

advanced-extensions.mdcore-modeling.mddae.mddata-management.mddomain-sets.mdgdp.mdindex.mdmathematical-functions.mdmpec.mdoptimization-interface.md
tile.json

tessl/pypi-pyomo

The Pyomo optimization modeling framework for formulating, analyzing, and solving mathematical optimization problems

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/pyomo@6.9.x

To install, run

npx @tessl/cli install tessl/pypi-pyomo@6.9.0

index.mddocs/

Pyomo

Pyomo is a comprehensive Python-based open-source optimization modeling framework that enables users to formulate, analyze, and solve diverse mathematical optimization problems. It supports linear programming, quadratic programming, nonlinear programming, mixed-integer programming variants, stochastic programming, generalized disjunctive programming, differential algebraic equations, and mathematical programming with equilibrium constraints. The framework provides a full-featured modeling environment with symbolic problem definition capabilities, concrete instance creation, and integration with standard optimization solvers.

Package Information

  • Package Name: pyomo
  • Package Type: pypi
  • Language: Python
  • Installation: pip install pyomo

Core Imports

Primary interface importing all core APIs:

from pyomo.environ import *

Specific component imports:

from pyomo.environ import (
    ConcreteModel, AbstractModel, Var, Constraint, Objective, Set, Param,
    SolverFactory, value, minimize, maximize
)

Module-specific imports:

import pyomo.core as pyo
import pyomo.opt as opt
import pyomo.gdp as gdp

Basic Usage

from pyomo.environ import *

# Create a concrete model
model = ConcreteModel()

# Define decision variables
model.x = Var([1, 2], domain=NonNegativeReals)

# Define objective function
model.obj = Objective(expr=2*model.x[1] + 3*model.x[2], sense=maximize)

# Define constraints
model.constraint1 = Constraint(expr=3*model.x[1] + 4*model.x[2] <= 1)
model.constraint2 = Constraint(expr=2*model.x[1] + 5*model.x[2] <= 2)

# Solve the optimization problem
solver = SolverFactory('glpk')  # requires GLPK solver installed
results = solver.solve(model)

# Access solution values
print(f"x[1] = {value(model.x[1])}")
print(f"x[2] = {value(model.x[2])}")
print(f"Objective value = {value(model.obj)}")

Architecture

Pyomo's architecture is built around several key design principles:

  • Component-based modeling: All model elements (variables, constraints, objectives, parameters) are components that can be dynamically added to models
  • Algebraic modeling language: Symbolic representation of optimization problems using Python expressions
  • Abstract vs. Concrete models: Support for both template-based abstract models and concrete models with specific data
  • Solver integration: Flexible interface to multiple optimization solvers through standardized APIs
  • Transformation framework: Extensible system for problem reformulations and preprocessing

Capabilities

Core Modeling Components

Essential modeling components for creating optimization problems including models, variables, constraints, objectives, parameters, and sets. These form the foundation of all Pyomo optimization models.

class ConcreteModel: ...
class AbstractModel: ...
class Var: ...
class Constraint: ...
class Objective: ...
class Set: ...
class Param: ...

Core Modeling

Optimization Interface

Solver factories, result handling, and optimization problem management. Provides standardized interface to dozens of optimization solvers with comprehensive result analysis capabilities.

class SolverFactory: ...
class SolverResults: ...
def check_optimal_termination(results): ...
enum SolverStatus: ...
enum TerminationCondition: ...

Optimization Interface

Mathematical Functions and Expressions

Built-in mathematical functions and expression utilities for constructing complex objective functions and constraints including trigonometric, logarithmic, and logical operations.

def log(x): ...
def sin(x): ...
def cos(x): ...
def exp(x): ...
def value(expr): ...
def differentiate(expr, var): ...

Mathematical Functions

Domain Sets and Intervals

Predefined domain sets and interval constructors for variable bounds and parameter domains including real numbers, integers, booleans, and custom intervals.

Reals: Set
NonNegativeReals: Set
Integers: Set
Boolean: Set
def RealInterval(lb, ub): ...
def IntegerInterval(lb, ub): ...

Domain Sets

Generalized Disjunctive Programming

Components for modeling logical relationships and disjunctive constraints including disjuncts, disjunctions, and GDP-specific transformations.

class Disjunct: ...
class Disjunction: ...
class GDP_Error(Exception): ...

Generalized Disjunctive Programming

Differential Algebraic Equations

Components for modeling dynamic systems with differential and algebraic equations including continuous sets, derivative variables, and simulation interfaces.

class ContinuousSet: ...
class DerivativeVar: ...
class Integral: ...
class Simulator: ...

Differential Algebraic Equations

Mathematical Programming with Equilibrium Constraints

Components for modeling equilibrium problems, complementarity constraints, and bilevel optimization problems including variational inequalities and game-theoretic formulations.

class Complementarity: ...
class ComplementarityList: ...
def complements(expr1, expr2): ...

Mathematical Programming with Equilibrium Constraints

Data Management

Data loading and management interfaces for importing external data from various sources including databases, spreadsheets, and structured files.

class DataPortal: ...
class TableData: ...
class DataManagerFactory: ...

Data Management

Advanced Extensions

Contributed modules providing specialized optimization algorithms, solver interfaces, and modeling capabilities including nonlinear decomposition, sensitivity analysis, and robust optimization.

# Selected contrib modules
pyomo.contrib.gdpopt: ...
pyomo.contrib.mindtpy: ...
pyomo.contrib.sensitivity_toolbox: ...
pyomo.contrib.pyros: ...

Advanced Extensions