github Pyomo/pyomo 6.4.3
Pyomo 6.4.3

latest releases: 6.8.0, 6.7.3, 6.7.2...
23 months ago

Highlights of the 6.0 release series

  • Improved stability and robustness of core Pyomo code and solver interfaces
  • Integration of Boolean variables into GDP
  • Integration of NumPy support into the Pyomo expression system
  • Added support for Python 3.10, 3.11
  • Removed support for Python 3.6
  • New packages:
    • APPSI (Auto-Persistent Pyomo Solver Interfaces)
    • CP (Constraint programming models and solver interfaces)
    • External grey box models
    • IIS (Standard interface to solver IIS capabilities)
    • MPC (Data structures/utils for rolling horizon dynamic optimization)
    • PyROS (Pyomo Robust Optimization Solver)
    • Structural model analysis
    • Rewrite of the TrustRegion Solver

Changes in this release

  • General
    • Update PauseGC to work in nested contexts (#2507)
    • Simplify deepcopy/pickle logic to speed up model clone (#2510)
    • Fix generate_standard_repn to handle unexpected NPV expressions (#2511)
    • Add thread safe proxies for PauseGC, TempFileManager singletons (#2514)
    • Fix ConstructionTimer bug for components indexed by nonfinite sets (#2518)
    • Add calculate_variable_from_constraint differentiation mode option (#2549)
    • Update URL for downloading GSL and GJH (#2556, #2588)
    • Update logic for retrying failed downloads (#2569)
    • Add support and testing for Python 3.11 (#2596, #2618)
    • Update deprecation utilities to improve user messages (#2606)
  • Core
    • Refactor expression hierarchy, add RelationalExpression base class (#2499)
    • Support cloning individual blocks (#2504)
    • Block performance improvements (#2508)
    • Add support for creating a slice to a single ComponentData object (#2509)
    • Fix missing import of value in pyomo.core.base.external (#2525)
    • Improve handling of restricted words on Blocks (#2535)
    • Improve Reference() performance (#2537)
    • Fix mapping gradient/hessian for external functions with string args (#2539)
    • Fix bug for sum_product(Var, Param, Param) (#2551)
    • Add deprecation path for expression objects moved to relational_expr (#2554)
    • Exception when setting value of Expression to non-numeric expression (#2567)
    • Improve deepcopy performance (#2628)
  • Documentation
    • Fix examples in working_models.rst (#2502)
  • Solver Interfaces
    • Improve SCIP results object (#2462)
    • Improve warning message when LP writer raises KeyError (#2497)
    • Fix Gurobi work limit bug (#2530)
    • Updates and fixes for the NLv2 writer (#2540, #2622, #2568)
    • Fix Xpress when stopped due to MAXTIME or MAXNODES (#2553)
    • Add support for MOSEK 10 affine conic constraints (#2557)
    • Fix missing explicit space in GAMS put command (#2578)
    • Fix GAMS logfile storage location (#2580)
    • LP writer performance improvements (#2583, #2585)
    • Update handling of MOSEK Env and Python module (#2591)
    • Release MOSEK license when optimize raises a mosek.Error (#2593)
    • Update list of allowable characters in CPLEX filenames (#2597)
  • Testing
    • Update performance driver to be usable outside of Pyomo (#2505)
    • Update the performance test driver (#2538)
    • Reduce amount of environment code cached in GitHub actions (#2565)
    • Update GitHub actions versions from v2 to v3 (#2566)
    • Allow nan to compare equal in assertStructuredAlmostEqual() (#2582)
    • Add test utilities for comparing expressions (#2590)
    • Skip a test in MOSEK 10 due to a bug in warm starting MIQPs (#2614)
    • Update skipped CBC test that works with CBC 2.10.6 (#2615)
    • Add SCIP to GitHub actions environment (#2602)
  • GDP
    • Use OrderedSet instead of list in GDPTree to improve performance (#2516)
    • Reduce calls to logical_to_linear in GDP transformations (#2519)
    • Add utility for gathering BigM values after transformation (#2520)
    • Add tighter logical constraints in transformations of nested GDPs (#2550)
    • Fix pickling of transformed GDP models (#2576)
    • Add multiple-bigM transformation (#2592)
    • Improve performance of BigM transformation (#2605)
    • Remove weakref mapping Disjunctions to their algebraic_constraint (#2617)
  • Contributed Packages
    • APPSI: Fix exception raised by appsi_gurobi during Python shutdown (#2498)
    • APPSI: Improve handling of Gurobi results (#2517)
    • APPSI: Add interface to HiGHS solver (#2561)
    • APPSI: Only release Gurobi license after deleting all instances (#2599)
    • APPSI: Patch IntEnum to preserve pre-3.11 formatting (#2607)
    • CP: New package for constraint programming (#2570, #2612)
    • GDPopt: Add warning when reporting results from LBB (#2534)
    • GDPopt: Delete dummy objective when we're done using it (#2552)
    • GDPopt: Add enumerate solution approach (#2559, #2575)
    • IIS: Add package for computing the IIS of an infeasible Pyomo model (#2512)
    • MindtPy: Fix bug in termination condition (#2587)
    • MindtPy: Fix bug in checking absolute and relative gap (#2608)
    • MPC: Data structures/utils for rolling horizon dynamic optimization (#2477)
    • Parmest: Solve square problem to initialize regression problem (#2438)
    • Parmest: Return ContinuousSet values from theta_est() (#2464)
    • PyNumero: Fix NumPy deprecation warnings (#2521)
    • PyNumero: Add interfaces to SciPy square solvers (#2523)
    • PyNumero: Check AmplInterface availability in SciPy solver tests (#2594)
    • PyNumero: Add ProjectedExtendedNLP class (#2601)
    • PyNumero: Add interface to SciPy scalar Newton solver (#2603)
    • PyROS: Rewrite UncertaintySet docstrings/improve validation (#2488)
    • PyROS: Updates to subproblem initialization and solver call routines (#2515)
    • PyROS: Fix collection of sub-solver solve times (#2543)

Don't miss a new pyomo release

NewReleases is sending notifications on new releases.