Types

BnBModel

The BnBModel structure contains all information used over the course of the Branch and Bound.

EAGO.BnBModelType.
BnBModel

Stores attributes of stack used to solve BnB problem. Has the following fields:

  • Init_Box::Vector{Interval{Float64}}: stores initial interval box used

  • box::Vector{Vector{Interval{Float64}}} interval box storage stack

  • Init_Integer::Vector{Vector{Int64}} initial integer range

  • integers::Vector{Vector{Vector{Int64}}} integer range storage stack

  • LBD::Vector{Float64}: lower bounds associated with each stack item

  • UBD::Vector{Float64}: Upper bounds associated with each stack item

  • id::Vector{Int64}: Node ID for each stack item

  • pos::Vector{Int64}: Position in BnB Tree for each stack item

  • LBDg::Float64: Global Lower Bound

  • UBDg::Float64: Global Upper Bound

  • LBDg_hist::Vector{Float64}: Value history LBD problem

  • UBDg_hist::Vector{Float64}: Value history UBD problem

  • LBDgtime::Vector{Float64}: Run time history LBD problem

  • UBDgtime::Vector{Float64}: Run time history UBD problem

  • Pretime::Vector{Float64}: Run time history preprocessing

  • Posttime::Vector{Float64}: Run time history postprocessing

  • max_id::Int64: Max node used

  • pstar::Vector{Interval{Float64}}: IntervalBox with solution

  • soln::Vector{Float64}: Storage for solution

  • soln_val::Float64: Solution value found

  • first_fnd::Bool: Has a solution been found

  • feas_fnd::Bool: Has a feasible point been found

  • first_num::Int64: Iteration at which first solution found

  • lbcnt::Int64: number of lower bounding problems solved

  • ubcnt::Int64: number of upper bounding problems solved

source

As a default, the model constructor initializes with Vector{Interval{Float64}} storage type.

EAGO.BnBModelMethod.
BnBModel(X::Vector{Interval{Float64}})

Initializes a BnBModel with .Init_Box = X and .box = [X].

source

BnBSolver

The BnBSolver options regarding how to solve the problem and routines used in it's solution.

EAGO.BnBSolverType.
BnBSolver

Stores solver specific functions used to solve BnB problem. Has the following fields:

  • Lower_Prob::Any: Stores lower problem function (default = [])

  • Upper_Prob::Any: Stores upper problem function (default = [])

  • Preprocess::Any: Stores preprocessing function (default = [])

  • Postprocess::Any: Stores postprocessing function (default = [])

  • Term_Check::Any: Stores termination check function (default = 'Term_Check')

  • Branch_Sto::Any: Stores branching function (default = 'BM_depth_best!')

  • Node_Select::Any: Stores node selection function (default = 'NS_best')

  • Bisect_Func::Any: Stores branching function (default = 'Bisect_Rel')

  • Verbosity::String: Stores output selection (default = "Normal")

  • max_iter::Number: max number of iterations (default = "Inf")

  • iter_lim::Bool: determines if iteration limit is checked (default = false)

  • max_nodes::Int64: max number of nodes to store in memory (default = 1E6)

  • BnB_atol::Float64: absolute tolerance for BnB (default = 1E-4)

  • BnB_rtol::Float64: relative tolerance for BnB (default = 1E-4)

  • itr_intv::Int64: number of iterations to skip between printing iteration summary (default = 20)

  • hdr_intv::Int64: number of iterations to skip between printing header (default = 1)

  • converged::Any: convergence criterion (default = Conv_Check)

  • BnB_digits::Int64: digits displayed before decimal (default = 3)

  • hist_return::Bool: returns LBD, UBD array and time vector (default = false)

  • opt::Any: optional storage array (default = [])

  • exhaust::Bool: exhaustive search? (default = false)

  • target_upper::Float64: required upper bound (default = -Inf)

source

The default initialization for BnBSolver is given below:

EAGO.BnBSolverMethod.
BnBSolver()

Initializes solver with default parameters: best-first search, relative-width bisection, no iteration limit, 1E6 node limit, 1E-4 absolute and relative tolerances, no target upper bound for termination. No pre, or post processing nodes and no repetition.

source