BnBModel
The BnBModel
structure contains all information used over the course of the Branch and Bound.
EAGO.BnBModel
— Type.BnBModel
Stores attributes of stack used to solve BnB problem. Has the following fields:
Init_Box::Vector{Interval{Float64}}
: stores initial interval box usedbox::Vector{Vector{Interval{Float64}}}
interval box storage stackInit_Integer::Vector{Vector{Int64}}
initial integer rangeintegers::Vector{Vector{Vector{Int64}}}
integer range storage stackLBD::Vector{Float64}
: lower bounds associated with each stack itemUBD::Vector{Float64}
: Upper bounds associated with each stack itemid::Vector{Int64}
: Node ID for each stack itempos::Vector{Int64}
: Position in BnB Tree for each stack itemLBDg::Float64
: Global Lower BoundUBDg::Float64
: Global Upper BoundLBDg_hist::Vector{Float64}
: Value history LBD problemUBDg_hist::Vector{Float64}
: Value history UBD problemLBDgtime::Vector{Float64}
: Run time history LBD problemUBDgtime::Vector{Float64}
: Run time history UBD problemPretime::Vector{Float64}
: Run time history preprocessingPosttime::Vector{Float64}
: Run time history postprocessingmax_id::Int64
: Max node usedpstar::Vector{Interval{Float64}}
: IntervalBox with solutionsoln::Vector{Float64}
: Storage for solutionsoln_val::Float64
: Solution value foundfirst_fnd::Bool
: Has a solution been foundfeas_fnd::Bool
: Has a feasible point been foundfirst_num::Int64
: Iteration at which first solution foundlbcnt::Int64
: number of lower bounding problems solvedubcnt::Int64
: number of upper bounding problems solved
As a default, the model constructor initializes with Vector{Interval{Float64}}
storage type.
EAGO.BnBModel
— Method.BnBModel(X::Vector{Interval{Float64}})
Initializes a BnBModel
with .Init_Box
= X
and .box
= [X]
.
BnBSolver
The BnBSolver
options regarding how to solve the problem and routines used in it's solution.
EAGO.BnBSolver
— Type.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)
The default initialization for BnBSolver
is given below:
EAGO.BnBSolver
— Method.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.