Recent posts (max 20) - Browse or Archive for more

Changes to Help

Here are some changes to help info that will impact users in Pyomo 4.1:

  • Removed the option --help-solvers from 'pyomo solve'
  • Removed the option --help-components from 'pyomo solve'
  • Added 'pyomo help --components'

--Bill

New Pyomo Home Page

The new home page for Pyomo is  http://www.pyomo.org ! The Pyomo Trac site is now principally used for development activities, and this Blog is moving to the pyomo.org.

  • Posted: 2014-12-24 00:00
  • Author: wehart
  • Categories: (none)
  • Comments (0)

Coopr is being renamed as Pyomo!

The Coopr software will soon be renamed as Pyomo! Coopr has been an umbrella software project that includes Pyomo and other software components. However, most users first and foremost use Coopr's Pyomo modeling package. Thus, many users describe their model as a "Pyomo model" even when it relies on advanced modeling extensions in Coopr. In fact, even Coopr developers often discuss "Pyomo" developments.

Given this confusion, we have decided to clearly brand this software as Pyomo. Later this fall, Pyomo 4.0 will be released. The source repository will be changed to reflect the name change. A new Pyomo home page will be hosted at  http://pyomo.org, and the Coopr Trac site will be reworked to more clearly be a site for Pyomo developers.

There will also be some new features in Pyomo 4.0. More details coming soon!

Coopr 3.5.8787 Release

We are pleased to announce the release of Coopr 3.5 (3.5.8787). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

The following are highlights of this release:

  • Modeling
    • Can now model bilevel programs
    • Can now model mathematical programs with equillibrium constraints
    • Added explicit support for model transformations
  • Solvers
    • Updates for CBC, Cplex and Gurobi solvers
    • Added support for NEOS solvers (using Kestrel interface)
    • Added preliminary support for persistent solvers
  • Other
    • Added the 'coopr.environ' package, which initializes Coopr plugins
    • Renamed 'coopr.plugins' to 'coopr.solvers'
    • Cleanup and code reviews of core coopr.pyomo components
    • The 'coopr' command contains better documentation of installed capabilities
    • The 'coopr_install' script is now recommended for installation on Linux and OS X
    • MS Windows installers for Coopr 3.5 are coming soon ...

See  https://software.sandia.gov/trac/coopr/wiki/Documentation for installation options and documentation for getting started with Coopr.

Enjoy!


About Coopr


Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

A key driver for Coopr development is Pyomo, an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages. Further, Coopr supports analysis and scripting within a full-featured programming language.

Coopr has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP 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.

Coopr development is hosted by Sandia National Laboratories and COIN-OR:

See  http://groups.google.com/group/coopr-forum/ for online discussions of Coopr.

Coopr 3.4.7842 Release

We are pleased to announce the release of Coopr 3.4 (3.4.7842). Coopr is a collection of Python software packages that supports a diverse set of capabilities for formulating, solving, and analyzing algebraic optimization models.

Highlights for this release include:

  • Introduction of the Equation modeling component
  • Major reductions in memory requirements, identification and resolution of memory leaks
  • Efficiency improvements in model generation and solution loading
  • Restructuring of core Pyomo and PySP codes
  • Re-working of model pprint() routines and associated output formatting
  • Many (many) bug fixes

See  https://software.sandia.gov/trac/coopr/wiki/Documentation for installation options and documentation for getting started with Coopr. Installers are available for MS Windows and Unix (e.g., Linux and MacOS) operating systems to simplify the installation of Coopr packages along with the third-party Python packages that they depend on.

Enjoy!

The Coopr Developer Team
coopr-developers@…
 https://software.sandia.gov/trac/coopr/wiki/Documentation/Developers

New Third-Party Article on Pyomo - Part 2

Noah Gift (see the immediately preceding blog entry) recently published  part 2 of his article on the use of Pyomo and Python for solving mathematical programs - this time in the cloud!

New Third-Party Article on Pyomo

Noah Gift, a recent graduate of UC Davis' MBA program, has published a nice  article on the use of Pyomo and Python for solving mathematical programs. Even better, he provides an example of how to script the implementation of a greedy heuristic for the Traveling Salesman Problem.

Supporting Python 3.x

We have recently started working on support for Python 3.x. Ensuring portability between Python 2.x and 3.x can be tricky, so I've added some documentation to the  Coopr Developer Guide . I'll update this as additional portability issues get highlighted in our work.

Bill Hart wehart@…

Coopr 3.2.6148 Release

We are pleased to announce the release of Coopr 3.2 (3.2.6148). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

The following are highlights of this release:

  • Solvers
    • Updates for CBC, Cplex and Gurobi solvers
  • Modeling
    • Immutable parameters are now the default
    • Documented model interpretation changes with integer parameters.
  • Other
    • MS Windows installers fixed to work on both Python 2.6 and 2.7
    • MS Windows installers no longer modify the PATH environment
    • Efficiency improvements in model generation, memory, runtime, etc.
    • Restructuring of Pyomo core codes
    • Many bug fixes

Note that the use of immutable parameters may lead to fundamental changes in model interpretation. See the online documentation for details. See  https://software.sandia.gov/trac/coopr/wiki/Documentation for installation options and documentation for getting started with Coopr. Installers are available for MS Windows and Unix operating systems to simplify the installation of Coopr packages along with the third-party Python packages that they depend on. These installers can also automatically install extension packages from Coin Bazaar.

Enjoy!


About Coopr


Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

A key driver for Coopr development is Pyomo, an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages like AMPL and GAMS.

Coopr has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP 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.

Coopr development is hosted by Sandia National Laboratories and COIN-OR:

See  http://groups.google.com/group/coopr-forum/ for online discussions of Coopr.

Coopr 3.2.6124 Release

We are pleased to announce the release of Coopr 3.2 (3.2.6124). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

The following are highlights of this release:

  • Solvers
    • Updates for CBC, Cplex and Gurobi solvers
  • Modeling
    • Immutable parameters are now the default
  • Other
    • MS Windows installers fixed to work on both Python 2.6 and 2.7
    • Efficiency improvements in model generation, memory, runtime, etc.
    • Restructuring of Pyomo core codes
    • Many bug fixes

See  https://software.sandia.gov/trac/coopr/wiki/Documentation for installation options and documentation for getting started with Coopr. Installers are available for MS Windows and Unix operating systems to simplify the installation of Coopr packages along with the third-party Python packages that they depend on. These installers can also automatically install extension packages from Coin Bazaar.

Enjoy!


About Coopr


Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

A key driver for Coopr development is Pyomo, an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages like AMPL and GAMS.

Coopr has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP 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.

Coopr development is hosted by Sandia National Laboratories and COIN-OR:

See  http://groups.google.com/group/coopr-forum/ for online discussions of Coopr.

The Pyomo Book is Now Available

The Python Optimization Modeling Objects (Pyomo) package is an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Pyomo provides a capability that is commonly associated with algebraic modeling languages such as AMPL, AIMMS, and GAMS, but Pyomo's modeling objects are embedded within a full-featured high-level programming language with a rich set of supporting libraries. Pyomo leverages the capabilities of the Coopr software library, which integrates Python packages for defining optimizers, modeling optimization applications, and managing computational experiments.

Of course, there is very little online documentation describing Pyomo. However, the first book on Pyomo is now available:

Pyomo - Optimization Modeling in Python.
William E. Hart, Carl Laird, Jean-Paul Watson and David L. Woodruff.
Springer, 2012.

See the  Springer web page for more information.

Enjoy!

  • Posted: 2012-05-08 14:08
  • Author: wehart
  • Categories: (none)
  • Comments (0)

Coopr 3.1.5409 Release

We are pleased to announce the updated release of Coopr 3.1 (3.1.5409). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

Coopr 3.1.5409 is a bug fix release for Coopr 3.1, and resolves the following issues:

  • Resolved third-party package dependency issues observed when running with Python 2.7
  • Better support for solvers installed to locations containing whitespace in Windows

The following are highlights of Coopr 3.1:

  • Solvers
    • Interfaces for OpenOpt solvers
    • Many solver interface improvements
    • A solver checker to validate solver interfaces
    • Improved support for SOS constraints (cplex, gurobi)
    • PH supports nonlinear models
    • PH-specific solver servers
  • Modeling
    • Comprehensive rework of blocks and connectors for modular modeling
    • New VarList component
    • Added comprehensive support for set expressions
  • Usability enhancements
    • New 'coopr' command has subcommands that consolidate Coopr scripting
    • Added support to connect to databases with ODBC
    • Made JSON the default results format
  • Other
    • Efficiency improvements in model generation, memory, runtime, etc.
    • Preliminary support for black-box applications
    • Deprecated modeling syntax in Coopr 3.0 is no longer legal

See  https://software.sandia.gov/trac/coopr/wiki/GettingStarted for instructions for getting started with Coopr. Installers are available for MS Windows and Unix operating systems to simplify the installation of Coopr packages along with the third-party Python packages that they depend on. These installers can also automatically install extension packages from Coin Bazaar.

Enjoy!


About Coopr

Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

A key driver for Coopr development is Pyomo, an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages like AMPL and GAMS.

Coopr has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP 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.

Coopr development is hosted by Sandia National Laboratories and COIN-OR:

See  http://groups.google.com/group/coopr-forum/ for online discussions of Coopr.

Coopr 3.1 Release

We are pleased to announce the release of Coopr 3.1 (3.1.5325). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

The following are highlights of Coopr 3.1:

  • Solvers
    • Interfaces for OpenOpt solvers
    • Many solver interface improvements
    • A solver checker to validate solver interfaces
    • Improved support for SOS constraints (cplex, gurobi)
    • PH supports nonlinear models
    • PH-specific solver servers
  • Modeling
    • Comprehensive rework of blocks and connectors for modular modeling
    • New VarList component
    • Added comprehensive support for set expressions
  • Usability enhancements
    • New 'coopr' command has subcommands that consolidate Coopr scripting
    • Added support to connect to databases with ODBC
    • Made JSON the default results format
  • Other
    • Efficiency improvements in model generation, memory, runtime, etc.
    • Preliminary support for black-box applications
    • Deprecated modeling syntax in Coopr 3.0 is no longer legal

See  https://software.sandia.gov/trac/coopr/wiki/GettingStarted for instructions for getting started with Coopr. Installers are available for MS Windows and Unix operating systems to simplify the installation of Coopr packages along with the third-party Python packages that they depend on. These installers can also automatically install extension packages from Coin Bazaar.

Enjoy!


About Coopr

Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

A key driver for Coopr development is Pyomo, an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages like AMPL and GAMS.

Coopr has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP 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.

Coopr development is hosted by Sandia National Laboratories and COIN-OR:

See  http://groups.google.com/group/coopr-forum/ for online discussions of Coopr.

A Pyomo Paper Accepted for Publication

FYI, we just received news that the paper  Pyomo: modeling and solving mathematical programs in Python has been accepted for publication in  Mathematical Programming and Computation. The paper is available online from the MPC website!

--Bill

Coopr 3.0.4362 Release

We are pleased to announce the release of Coopr 3.0 (3.0.4362). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

The following are highlights of this release:

  • Solvers
    • More sophisticated logic for solver factory to find ASL and OS solvers
    • Various solver interface improvements
    • New Solver results object for efficient representation of variable values
    • New support for asynchronous progressive hedging
  • Modeling
    • Changes in rule semantics to limit rule return values
    • Changes in the expected order of rule arguments
    • Constant sums or products can now be used as constraint bounds
    • Added full support for the ConstraintList modeling component.
  • Usability enhancements
    • More explicit output from runph and runef commands
    • Added support in runef to write the extensive form in NL format
    • Add controls for garbage collection in PH
  • Other
    • Efficiency improvements in generation of NL and LP files.
    • Significant efficiency improvements in parsing of Pyomo Data Files.
    • More robust MS Windows installer (does not use virtual python
    • environment)

Note that this is a major release of Coopr that changes the expected formulation of Coopr models. See the Coopr blog for further details about deprecated functionality, which will be disabled in future releases.

See  https://software.sandia.gov/trac/coopr/wiki/GettingStarted for instructions for getting started with Coopr. Installers are available for MS Windows and Unix operating systems to simplify the installation of Coopr packages along with the third-party Python packages that they depend on. These installers can also automatically install extension packages from Coin Bazaar.

Enjoy!


About Coopr


Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

A key driver for Coopr development is Pyomo, an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages like AMPL and GAMS.

Coopr has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP 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.

Coopr development is hosted by Sandia National Laboratories and COIN-OR:

See  http://groups.google.com/group/coopr-forum/ for online discussions of Coopr.

Coopr 2.5.3978 Release

We have just created an intermediate Coopr release: 2.5.3978. This release includes the following changes:

  • Performance improvements in Pyomo
  • Bug fix when updating a results object that contains suffix data.

Enjoy!

A Pyomo application makes the news!

Professor Allen Holder and Rose-Hulman senior Tim Ekl used Pyomo to analyze weather data from the last 36 years in Terre Haute to see if there has been a warming trend. Their model predicts that there will be little to no change in temperature in the coming years.

This research made the  local news.

Coopr 2.5 Release (2.5.3890)

We are pleased to announce the release of Coopr 2.5 (2.5.3890). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

The following are highlights of this release:

  • Solvers
    • MIP solver interface updates to use appropriate objective names
    • Added support for suffixes in GUROBI solver interface
    • Improved diagnostic analysis of PH solver for the extensive form
  • Usability enhancements
    • Improved robustness of coopr_install
    • Fixed Coopr installation problem when using easy_install
    • Added a script to launch the CooprAge GUI.
    • LP files now are written with the true objective name
    • Rework of pyomo command line to create a concise output
    • Many efficiency improvements during model generation!
    • Many improvements to diagnostic output and error handling
    • Expressions like "model.p > 1" can now be used within generation rules
  • Modeling
    • Added support for generalized disjunctive programs (in coopr.gdp)
    • Constraints can now be specified in "compound" form: lb <= expr <= ub
    • Significant robustness enhancements for model expressions
    • Improved error handling for constraint generation
  • Other
    • Python 2.5 is deprecated due to performance issues
    • Python versions 2.6 and 2.7 are supported
    • New MS Windows installer is now available

See  https://software.sandia.gov/trac/coopr/wiki/GettingStarted for instructions for getting started with Coopr. Installers are available for MS Windows and Unix operating systems to simplify the installation of Coopr packages along with the third-party Python packages that they depend on. These installers can also automatically install extension packages from Coin Bazaar.

Enjoy!

Coopr Developer Team

coopr-developers@…

 https://software.sandia.gov/trac/coopr/wiki/Documentation/Developers


About Coopr


Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

A key driver for Coopr development is Pyomo, an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages like AMPL and GAMS.

Coopr has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP 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.

Coopr development is hosted by Sandia National Laboratories and COIN-OR:

See  http://groups.google.com/group/coopr-forum/ for online discussions of Coopr.

Coopr 2.4.3307 Release

We have just released an intermediate Coopr release: 2.4.3307. This release resolves a variety of bug fixes in Coopr solvers, and it includes some usability enhancements for the Coopr installer:

  • Solvers
    • Various fixes for Gurobi and CPLEX
    • Reorganized OS services in coopr.os
  • Usability enhancements
    • Improved robustness of coopr_install
    • Default install of coopr_install from PyPI

Enjoy!

Coopr 2.4 Release

We are pleased to announce the release of Coopr 2.4 (2.4.3199). Coopr is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models.

A key driver for Coopr development is Pyomo, an open source tool for modeling optimization applications in Python. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages like AMPL and GAMS.

Coopr has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP 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.

The following are highlights of this release:

  • Modeling
    • Concrete models are now supported
    • Nonlinear modeling extensions using the AMPL NL problem format
    • Add support for immutable versus mutable parameters.
    • Support for SOS1 and SOS2 constraints
  • Data Integration
    • Can now import data from relational databases
  • Solvers
    • Better support for Gurobi solver
    • Direct CPLEX solver interface
    • Interface to ipopt and nonlinear solvers via asl (just to be clear)
    • ASL solver interface can now be specified with the form

--solver=asl:PICO

  • Usability enchancements
    • Numerous bug fixes.
    • Updated messages to provide clearer indication of modeling errors

Coopr Trac pages are hosted by Sandia National Laboratories and COIN- OR. The Sandia Trac site is the main site for Coopr, and the Coopr home page at COIN-OR contains links to the Sandia site. Software can be downloaded from associated subversion repositories at Sandia and COIN-OR, as well as the Python Package Index (PyPI).