Domain Reduction

Domain Reduction

Duality-Based Bound Tightening

Variable bound tightening based on the duality multipliers are supported.

EAGO.variable_dbbt!Function.
variable_dbbt!

Tightens the bounds of the _current_node using the current global upper bound and the duality information obtained from the relaxation.

Special Forms

Bound tightening for linear forms, univariate quadratic forms, and bivariate quadratic forms are also supported.

classify_quadratics!

Classifies constraints as univariate or bivariate and adds them to storage vectors.

EAGO.lp_bound_tightenFunction.
lp_bound_tighten

Performs the linear bound tightening.

univariate_kernel

Kernel of the bound tightening operation on univariant qudaratic functions. Called for each univariate function.

univariate_quadratic

Performs bound tightening on all univariate quadratic functions.

Constraint Propagation

EAGO contains a constraint propagation architecture that supported forward and reverse evaluation of set-valued functions on the directed acyclic graph (DAG). The interval contractor and reverse McCormick relaxation-based contractors are currently available.

EAGO.cpwalkFunction.
cpwalk

Performs forward-reverse pass on directed graph as part of constraint propagation.

Optimization-Based Bound Tightening

EAGO makes use of an optimization-based bound tightening scheme using filtering and greedy ordering as detailed in: Gleixner, A.M., Berthold, T., Müller, B. et al. J Glob Optim (2017) 67: 731. https://doi.org/10.1007/s10898-016-0450-4

aggressive_filtering!

Excludes OBBT on variable indices after a search in a filtering direction.

aggressive_obbt_on_heurestic

Routine that determines if aggressive filtering should be used. Currently, a user-specified option.

EAGO.bool_indx_diffFunction.
bool_indx_diff

Utility function used to set vector of booleans z to x & ~y. Avoids the generation of conversion of the BitArray created by broadcasting logical operators.

EAGO.obbtFunction.
obbt

Performs OBBT with filtering and greedy ordering as detailed in: Gleixner, A.M., Berthold, T., Müller, B. et al. J Glob Optim (2017) 67: 731. https://doi.org/10.1007/s10898-016-0450-4

trivial_filtering!

Excludes OBBT on variable indices that are tight for the solution of the relaxation.