Skip to content

Pyomo 6.7.2

Latest
Compare
Choose a tag to compare
@jsiirola jsiirola released this 09 May 16:01
· 29 commits to main since this release
6f0dc65

Highlight of the 6.7 release series

  • Added support for Python 3.12
  • Removed support for Python 3.7
  • New writer for converting linear models to matrix form
  • Improved handling of nested GDPs
  • Redesigned user API for parameter estimation
  • New packages:
    • iis: new capability for identifying minimal intractable systems
    • latex_printer: print Pyomo models to a LaTeX compatible format
    • contrib.solver: preview of redesigned solver interfaces
    • simplification: simplify Pyomo expressions
  • New solver interfaces
    • MAiNGO: Mixed-integer nonlinear global optimization
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Support config domains with either method or attribute domain_name (#3159)
    • Automate TPL callback registrations (#3167)
    • Fix type registrations for ExternalFunction arguments (#3168)
    • Only modify module path and spec for deferred import modules (#3176)
    • Add "mixed" standard form representation (#3201)
    • Support "default" dispatchers in ExitNodeDispatcher (#3194)
    • Redefine objective sense as a proper IntEnum (#3224)
    • Fix division-by-0 bug in linear walker (#3246)
  • Core
    • Allow Var objects in LinearExpression.args (#3189)
    • Add type hints to components (#3173)
    • Simplify expressions generated by TemplateSumExpression (#3196)
    • Make component data public classes (#3221, #3253)
    • Exploit repeated named expressions in identify_variables (#3190)
  • Documentation
    • NFC: Add link to the HOMOWP companion notebooks (#3195)
    • Update installation documentation to include Cython instructions (#3208)
    • Add links to the Pyomo Book Springer page (#3211)
  • Solver Interfaces
    • Fix division by zero error in linear presolve (#3161)
    • Subprocess timeout update (#3183)
    • Solver Refactor - Bug fixes for various components (#3181, #3214, #3228)
    • NLv2: handle presolved independent linear subsystems (#3193)
    • Update LegacySolverWrapper compatibility with the pyomo script (#3202)
    • Fix mosek_direct to use putqconk instead of putqcon (#3199)
    • Check _skip_trivial_constraints before the constraint body (#3226)
    • Fix AMPL solver duplicate funcadd (#3206)
    • Disable the use of universal newlines in the ipopt_v2 NL file (#3231)
    • NLv2: fix reporting numbers of nonlinear discrete variables (#3238)
    • Fix: Get SCIP solving time considering float number with some text (#3234)
    • Solver Refactor - Add gurobi_direct implementation (#3225)
  • Testing
    • Update TPL package list due to contrib.solver (#3164)
    • Set maxDiff=None on the base TestCase class (#3171)
    • Testing infrastructure updates (#3175)
    • Typos update for March 2024 (#3219)
    • Add openmpi to testing environment to resolve issue in mpi4py (#3236, #3239)
    • Skip black 24.4.1 due to a bug in the parser (#3247)
    • Skip tests on draft and WIP pull requests (#3223)
    • Update GHA to grab gurobipy from PyPI (#3254)
  • GDP
    • Use private_data for all original / transformed component mappings (#3166)
    • Fix a bug in gdp.bigm transformation for nested GDPs (#3213)
  • Contributed Packages
    • APPSI: cmodel: handle non-mutable params in var / constraint bounds (#3182)
    • APPSI: Allow APPSI FBBT to handle nested named Expressions (#3185)
    • APPSI: Add MAiNGO solver interface (#3165)
    • CP: Add SequenceVar and other logical expressions for scheduling (#3227)
    • DoE: Bug fixes (#3245)
    • iis: Add minimal intractable system infeasibility diagnostics (#3172)
    • incidence_analysis: Improve solve_strongly_connected_components
      performance for models with named expressions (#3186)
    • incidence_analysis: Add function to plot incidence graph in
      Dulmage-Mendelsohn order (#3207)
    • incidence_analysis: Require variables and constraints to be specified
      separately in IncidenceGraphInterface.remove_nodes (#3212)
    • latex_printer: bugfix for set operations / multidimensional sets (#3177)
    • MindtPy: Add HiGHS support (#2971)
    • MindtPy: Add call_before_subproblem_solve callback (#3251)
    • Parmest: New UI using experiment lists (#3160)
    • piecewise: Add piecewise linear transformations (#3036)
    • preprocessing: bugfix: intersect domains in variable aggregator (#3241)
    • PyNumero: Allow CyIpopt to solve problems without objectives (#3163)
    • PyNumero: Work around bug in CyIpopt 1.4.0 (#3222)
    • PyNumero: Include "inventory" in readme (#3248)
    • PyROS: Simplify custom domain validators (#3169)
    • PyROS: Fix iteration logging for edge case involving discrete sets (#3170)
    • PyROS: Update solver timing system (#3198)
    • simplification: expression simplification using GiNaC or SymPy (#3088)