Using preset schemes
EAGO's branch and bound framework natively supports multiple common branching schemes. Namely, best-first, depth-first, and breadth-first branching schemes are all supported. The solver can be set to use any of these schemes using the set_Branch_Scheme!
function below.
EAGO.set_Branch_Scheme!
— Method.set_Branch_Scheme!(x::BnBSolver,BM::String)
Sets the search scheme to "best", "breadth", or "depth" first schemes.
Additionally, common modes of bisection are included as well. Specifically, the user can bisect the function using or absolute width bisection. For the included implicit bounding routines, the user can specify that the first nx dimensions are always ignored.
EAGO.set_Bisect_Func!
— Method.set_Bisect_Func!(x::BnBSolver,BF::String,nx::Int64)
Sets the bisection function to BF = "relative midpoint" or BF = "absolute midpoint" and disregards the first nx components of the interval box storage.
Setting the level of output
Currently, the branch and bound solver supports three levels of output: "None", "Normal", and "Full". The "Normal" level of output shows all iteration statistics and the final solution on termination. The "Full" level of output shows addition information about the "Node" being processed and the lower/upper bounding problems being solved.
EAGO.set_Verbosity!
— Method.set_Verbosity!(x::BnBSolver,VB::String)
Sets the verbosity (console output) to either "None", "Normal", or "Full".
Returning the solver to default settings.
EAGO.set_to_default!
— Method.set_to_default!(x::BnBSolver)
Returns the B&B solver to the default settings (does not include problems or processing routines).
Solving applying the Branch and Bound algorithm.
EAGO.solveBnB!
— Method.solveBnB!(x::BnBSolver,y::BnBModel)
Solves the branch and bound problem with the input model and solver object.
Accessing info from solved model
MathProgBase.SolverInterface.getsolution
— Method.getsolution(x::BnBModel)
Returns the solution stored in the BnBModel.
MathProgBase.SolverInterface.getobjval
— Method.getobjval(x::BnBModel)
Returns the objective value stored in BnBModel (global upper bound).
MathProgBase.SolverInterface.getobjbound
— Method.getobjbound(x::BnBModel)
Returns the objective value stored in BnBModel (global upper bound).
EAGO.getfeasibility
— Method.getfeasibility(x::BnBModel)
Returns feasibility of problem (feasible point found?).
EAGO.LBDtime
— Method.LBDtime(x::BnBModel)
Returns time spent solving lower bounding problem.
EAGO.UBDtime
— Method.UBDtime(x::BnBModel)
Returns time spent solving upper bounding problem.