Releases: PSORLab/EAGO.jl
Releases · PSORLab/EAGO.jl
Version 0.5 Release
- 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
v0.4.2 Update Project.toml
EAGO v0.4
- 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.
v0.3.1 Update Project.toml
Main release after major performance improvement.
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
- 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
- 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
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
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.