You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Package Containing Multiple Domain Reduction Procedures Used in Global Optimization
1
+
# EAGODomainReduction.jl
2
+
Domain Reduction Procedures in Global Optimization
3
+
4
+
## Installation
5
+
6
+
```julia
7
+
julia> Pkg.add("EAGODomainReduction.jl")
8
+
```
9
+
10
+
## Capabilities
11
+
12
+
**EAGODomainReduction.jl** provides a series of subroutines for tightening the domains of subproblems
13
+
solved in global optimization (potentially to in-feasibility). Currently, it supports routines for
14
+
nonconvex nonlinear programs:
15
+
-**Interval Contractor Propagation:** A forward-backward interval contractor using **IntervalArthimetic.jl**
16
+
and **IntervalContractors.jl** for the operator library.
17
+
-**Duality-Based Bound Tightening:** Provides algorithms for tightening domains based on duality of solutions
18
+
found for subproblems.
19
+
-**Standard Range Reduction:** Contracts subproblem domain via linear-relaxations generated using McCormick
20
+
relaxations.
21
+
-**Implicit Subroutine support:** Supports domain reduction of reduced space lower-bound problems defined through
22
+
relaxation of implicit functions by fixed-point methods.
23
+
24
+
The routine are used extensively in the `EAGO.jl`[https://github.com/MatthewStuber/EAGO.jl] package solver.
25
+
Please see the example files for usage cases.
26
+
27
+
## Future Work
28
+
29
+
- Update the interval-constraint propagation algorithm to incorporate propagation heuristics in Vu2008.
30
+
- Incorporate control-flow syntax support into constraint propagation algorithm.
31
+
- Incorporate improvements to probing and optimality based-bound tightening.
32
+
- Add support for Mixed-Integer NLP.
33
+
34
+
## Related Packages
35
+
-**EAGO.jl**[https://github.com/MatthewStuber/EAGO.jl]: A package containing global and robust solvers based mainly on McCormick relaxations.
36
+
This package supports a JuMP and MathProgBase interface.
37
+
-**IntervalConstraintProgramming.jl**[https://github.com/JuliaIntervals/IntervalConstraintProgramming.jl]: Provides algorithms that furnish bounds
38
+
on constraints defined by expressions. The constraint propagation routine in **EAGODomainReduction.jl** can generate tape objects that are
39
+
reusable for generically-defined functions. In addition, we use a `Vector{Interval}` storage object that allows for in-place mutation of intervals.
40
+
-**IntervalContractors.jl**[https://github.com/JuliaIntervals/IntervalContractors.jl]: Provides a library of reverse interval contractors.
41
+
42
+
## References
43
+
- Benhamou, F., & Older, W.J. (1997). Applying interval arithmetic to real, integer, and boolean constraints. The Journal of Logic Programming, 32, 1–24.
44
+
- Caprara, A., & Locatelli, M. (2010). Global optimization problems and domain reduction strategies. Mathematical Programming, 125, 123–137.
45
+
- Gleixner, A.M., Berthold, T., Müller, B., & Weltge, S. (2016). Three enhancements for optimization-based bound tightening. ZIB Report, 15–16.
46
+
- Ryoo, H.S., & Sahinidis, N.V. (1996). A branch-and-reduce approach to global optimization. Journal of Global Optimization, 8, 107–139.
47
+
- Schichl, H., & Neumaier, A. (2005). Interval analysis on directed acyclic graphs for global optimization. Journal of Global Optimization, 33, 541–562.
48
+
- Tawarmalani, M., & Sahinidis, N.V. (2005). A polyhedral branch-and-cut approach to global optimization. Mathematical Programming, 103, 225–249.
49
+
- Vu, X., Schichl, H., & Sam-Haroud, D. (2009). Interval propagation and search on directed acyclic
50
+
graphs for numerical constraint solving. Journal of Global Optimization, 45, 499–531.
0 commit comments