BnBModel
The BnBModel structure contains all information used over the course of the Branch and Bound.
EAGO.BnBModel — Type.BnBModelStores 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.BnBSolverStores 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.