Skip to content

Releases: PSORLab/EAGO.jl

Version 0.5 Release

18 Nov 14:45
Compare
Choose a tag to compare
  • Introduces the register_eago_operators!(m::JuMP.Model) which can be used to register all nonstandard nonlinear terms used in EAGO in any JuMP model.
  • Introduces positive, negative, lower_bnd, upper_bnd, and bnd functions which can be used to enforce bounds on intermediate terms in nonlinear expressions (EAGO.Optimizer only).
  • Adds envelopes: abs2, sinpi, cospi, fma, cbrt.
  • Adds envelopes and functions: xlogx
  • Adds envelopes of special functions: erf, erfc, erfinv, erfcinv
  • Adds envelopes of activation functions: relu, gelu, elu, selu, swish1, sigmoid, softsign, softplus, bisigmoid, pentanh, leaky_relu, param_relu.
  • Error messages in sip_explicit have been made more transparent.
  • Fixes some issues with documentation image rendering and links.
  • Drops appveyor CI and Travis CI in favor of Github Actions.

Support for Julia 1.5

28 Aug 11:43
a921c1e
Compare
Choose a tag to compare
v0.4.2

Update Project.toml

EAGO v0.4

12 Jun 04:26
7f3fc85
Compare
Choose a tag to compare
  • Support for new MOI/JuMP RawParameter input and a number of new attributes.
  • Separates McCormick and ReverseMcCormick libraries (now McCormick.jl and ReverseMcCormick.jl)
    from main package. McCormick.jl is currently reexported.
  • Most relaxation calculations now return NaN values on a domain violation.
  • Tolerance based validation of cuts has been added to generate numerically safe cuts.
  • Significantly simplify internal codebase for EAGO.Optimizer (no changes to API): fully decouples input problem specifications from the formulation used internally, stack only stores variables that are branched on, and a number of internal rearrangements to clearly delineate different routines.
  • Add problem classification preprocessing that throws to simpler routines if LP problem types are detected (enables future support for SOCP, MILP, MISOCP, and Convex forms).
  • Fix multiple bugs and add more transparent error codes.

Add unit tests, support Julia 1.3, fix IntervalContractors dependency issue.

29 Jan 21:03
8c77936
Compare
Choose a tag to compare

Main release after major performance improvement.

05 Nov 20:36
Compare
Choose a tag to compare

This update is intended to be the last to create a large number of breaking changes to the EAGO API. Please review the use cases provided in the documentation to update examples.

  • A number of performance improvements have been made to the underlying McCormick relaxation library.
    The optimizer used to construct relaxations is now modified in place.
  • All subproblem storage has been moved to the Optimizer object and storage types (e.g. LowerInfo) have been removed.
  • A MinMax heap structure is now used to store nodes.
  • Speed and aesthetics for logging and printing utilities have been updated.
  • Subroutines are now customized by creating a subtype of 'ExtensionType' and defining subroutines which dispatch on this new structure.
  • Parametric interval methods and the Implicit optimizer have been move to a separate package (to be tagged shortly.)
  • JIT compilation time has been reduced substantially.
  • Support for silent tag and time limits.

Minor Bug Fixes: SIP and Max Sense

08 Jul 03:42
Compare
Choose a tag to compare
  • Fixes an issues that occurs when using multiple uncertain parameters in the explicit routine.
  • Also fixes the Max Sense bug.

Update to MOI/JuMP and Julia 1.1

14 Jun 14:31
77a3e3c
Compare
Choose a tag to compare
  • Updates EAGO to Julia 1.1 and MOI/JuMP
  • Adds additional domain reduction routines
  • Further integrates global optimizer and SIP solution routines with JuMP
  • Transitions MC relaxation framework to use a Wegert tape
  • Simplifies MC API

Performance and Documentation Update

20 Jun 12:56
Compare
Choose a tag to compare

Contains primarily performance improvements to EAGO core functionality.

  • Fixes IntervalArithmetic 0.13 dependency issue
  • Significantly increases speed of McCormick relaxations
  • Finishes porting functionality from EAGOXXXX packages to central EAGO package
  • Add container HybridMC type to speed up subgradient refinement for McCormick relaxations
  • Rearrangement of BnBSolver and BnBModel objects to better reflect MathProgBase conventions.
  • Improved Branch-and-Reduce architecture support.
  • Move linear algebra and preconditioning routines for implicit bounds to a more modular format.

Plus other minor updates:

  • Update to read me
  • Update to website
  • Update to examples
  • Minor Bug Fixes

Main Global Solver Release

10 Apr 19:24
6137516
Compare
Choose a tag to compare

A deterministic nonconvex, nonsmooth NLP solver for Julia based on a McCormick relaxation framework. Accessible through a hook into MathProgBase and JuMP. Also includes support for various types of McCormick relaxations, parametric contractor methods, and domain reduction techniques.