PSORLab/EAGO.jl
A development environment for robust and global optimization
26 Releases
Latest: 1mo ago
v0.9.2Latest
📦 EAGO v0.9.2
- [Diff since v0.9.1](https://github.com/PSORLab/EAGO.jl/compare/v0.9.1...v0.9.2)
- Merged pull requests:
- Update DataStructures compatibility version (#164) (@blegat)
- Add dependabot (#165) (@blegat)
- Bump actions/checkout from 4 to 6 (#166) (@dependabot[bot])
- Bump julia-actions/cache from 1 to 3 (#167) (@dependabot[bot])
- Update MINLPTests requirement from 0.5.2 to 0.6 (#168) (@dependabot[bot])
- Bump codecov/codecov-action from 5 to 6 (#169) (@dependabot[bot])
- + 3 more
v0.9.1
📦 EAGO v0.9.1
- [Diff since v0.9.0](https://github.com/PSORLab/EAGO.jl/compare/v0.9.0...v0.9.1)
- Merged pull requests:
- Update constraint propagation routines (#148) (@DimitriAlston)
- Remove `PrettyTables` dependency (#157) (@DimitriAlston)
- Update license (#158) (@DimitriAlston)
- Update license (#160) (@DimitriAlston)
- Add `evaluate_local_nlp!` (#162) (@DimitriAlston)
- v0.9.1 (#163) (@DimitriAlston)
- + 4 more
v0.9.0
📦 EAGO v0.9.0
- [Diff since v0.8.4](https://github.com/PSORLab/EAGO.jl/compare/v0.8.4...v0.9.0)
💥 Breaking changes
- Updated `IntervalArithmetic.jl` and `ForwardDiff.jl` dependencies to v1.0 which require Julia v1.10 or later
- Merged pull requests:
- Update `IntervalArithmetic` and `ForwardDiff` dependencies (#155) (@DimitriAlston)
- Closed issues:
- update IntervalArithmetic package for EAGO (#132)
v0.5.2
📦 EAGO v0.5.2
- [Diff since v0.5.1](https://github.com/PSORLab/EAGO.jl/compare/v0.5.1...v0.5.2)
- This release has been identified as a backport.
- Automated changelogs for backports tend to be wildly incorrect.
- Therefore, the list of issues and pull requests is hidden.
- <!--
- Closed issues:
- Consider not restricting compat for Julia to each minor version (https://github.com/PSORLab/EAGO.jl/issues/58)
- -->
v0.4.1
📦 EAGO v0.4.1
- [Diff since v0.4.0](https://github.com/PSORLab/EAGO.jl/compare/v0.4.0...v0.4.1)
- This release has been identified as a backport.
- Automated changelogs for backports tend to be wildly incorrect.
- Therefore, the list of issues and pull requests is hidden.
- <!--
- Merged pull requests:
- [WIP] Updating documentation website (#50) (@mewilhel)
- Fix Travis Syntax (#51) (@mewilhel)
- + 8 more
v0.8.4
📦 EAGO v0.8.4
- [Diff since v0.8.3](https://github.com/PSORLab/EAGO.jl/compare/v0.8.3...v0.8.4)
- Merged pull requests:
- Add documentation for quadratic relaxations (#149) (@RXGottlieb)
- Add tolerance for FBBT to consider bounds equal (#152) (@DimitriAlston)
- GLPK as the default linear subsolver (#153) (@AlirezaMiraliakbar)
- v0.8.4 (#154) (@DimitriAlston)
- Closed issues:
- Request support for PrettyTables v3 (#151)
v0.8.3
📦 EAGO v0.8.3
- [Diff since v0.8.2](https://github.com/PSORLab/EAGO.jl/compare/v0.8.2...v0.8.3)
- Merged pull requests:
- Add support for `MOI.UserDefinedFunction` (#138) (@DimitriAlston)
- Add support for `MOI.Parameter` (#139) (@DimitriAlston)
- Update special expression handling (#140) (@DimitriAlston)
- Update display.jl (#143) (@DimitriAlston)
- Update package versions in GitHub actions (#145) (@odow)
- Update Ipopt dependency (#146) (@DimitriAlston)
v0.8.2
📦 EAGO v0.8.2
- [Diff since v0.8.1](https://github.com/PSORLab/EAGO.jl/compare/v0.8.1...v0.8.2)
- Merged pull requests:
- Update documentation, display function, and some tests (#117) (@DimitriAlston)
- Documentation changes and minor fixes (#118) (@DimitriAlston)
- Add documentation assets (#119) (@DimitriAlston)
- Update make.jl (#120) (@DimitriAlston)
- Update documentation (#121) (@DimitriAlston)
- README and documentation changes (#122) (@DimitriAlston)
- + 12 more
v0.8.1
📦 EAGO v0.8.1
- [Diff since v0.8.0](https://github.com/PSORLab/EAGO.jl/compare/v0.8.0...v0.8.1)
- Closed issues:
- free(): invalid pointer (#74)
- Verbosity (#99)
- ERROR: MathOptInterface.UpperBoundAlreadySet{MathOptInterface.Interval, MathOptInterface.LessThan} (#109)
- Upper bound and binary variables (#115)
- Merged pull requests:
- EAGO v0.8.1 (#116) (@DimitriAlston)
v0.8.0
📦 EAGO v0.8.0
- [Diff since v0.7.3](https://github.com/PSORLab/EAGO.jl/compare/v0.7.3...v0.8.0)
- Closed issues:
- Add support for MOI 0.10 and JuMP 0.22 (#100)
- Upcoming refactoring of JuMP's nonlinear API (#104)
- Merged pull requests:
- Refactor of JuMP's nonlinear API (#113) (@DimitriAlston)
- EAGO v0.8.0 (#114) (@DimitriAlston)
v0.7.3
📦 EAGO v0.7.3
- [Diff since v0.7.2](https://github.com/PSORLab/EAGO.jl/compare/v0.7.2...v0.7.3)
- Closed issues:
- incompatibility with latest JuMP? (#111)
v0.7.2
📦 EAGO v0.7.2
- [Diff since v0.7.1](https://github.com/PSORLab/EAGO.jl/compare/v0.7.1...v0.7.2)
- Merged pull requests:
- Bump NaNMath compatibility (#106) (@mlubin)
- Julia compat bump, documentation updates (#107) (@RXGottlieb)
- remove upper bound for julia version (#108) (@simeonschaub)
v0.7.1
📦 EAGO v0.7.1
- [Diff since v0.7.0](https://github.com/PSORLab/EAGO.jl/compare/v0.7.0...v0.7.1)
- Merged pull requests:
- Use more restrictive JuMP compat bounds (#105) (@odow)
v0.7.0
📦 EAGO v0.7.0
- [Diff since v0.6.1](https://github.com/PSORLab/EAGO.jl/compare/v0.6.1...v0.7.0)
- Closed issues:
- Basic support for MINLP Problems (#33)
- Local NLP solver specific wrappers (#49)
- Reduce minor type instability issues (#60)
- Incorrect display on solution for Maximization Problem (#64)
- Fix Typos in Readme (#76)
- Support both incremental loading & copying from Cache (#77)
- + 16 more
v0.6.1
📦 EAGO v0.6.1
- [Diff since v0.6.0](https://github.com/PSORLab/EAGO.jl/compare/v0.6.0...v0.6.1)
v0.6.0
📦 EAGO v0.6.0
- [Diff since v0.5.1](https://github.com/PSORLab/EAGO.jl/compare/v0.5.1...v0.6.0)
- Closed issues:
- Compatibility issues with DiffRules in Julia 1.3 (#38)
- EAGO fails to precompile (#43)
- Consider not restricting compat for Julia to each minor version (#58)
- EAGO.Optimizer not solving correctly with user-defined subroutines (#59)
- SIP Extendability and New Algorithms (#62)
- Merged pull requests:
- + 7 more
Support for Julia ~1v0.5.1
Version 0.5 Releasev0.5.0
📋 Changes
- 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.
- + 1 more
Support for Julia 1.5v0.4.2
EAGO v0.4v0.4.0
📋 Changes
- Support for new MOI/JuMP `RawParameter` input and a number of new attributes.
- Separates McCormick and ReverseMcCormick libraries (now [McCormick.jl](https://github.com/PSORLab/McCormick.jl) and [ReverseMcCormick.jl](https://github.com/PSORLab/ReverseMcCormick.jl))
- 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
Main release after major performance improvement.v0.3.0
📋 Changes
- A number of performance improvements have been made to the underlying McCormick relaxation library.
- 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 Sensev0.2.1
📋 Changes
- 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.1v0.2.0
📋 Changes
- 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 Updatev0.1.2
📋 Changes
- 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.
- Update to read me
- + 3 more
Main Global Solver Releasev0.1.0
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.
