Result
optimize returns a BayesOptResult with the GenericResult-style fields:
minimizer,minimum: the best feasible solution found,iter: the number of BO iterations run (one expensive evaluation each),maxiter_reached: whether the loop stopped atmaxiterwithout converging,tol: the tolerances (ftol,ctol) used,convstate: the convergence state of the last candidate (feasibility,Δx,Δf,relΔf,converged),fcalls: the number of expensive-function evaluations performed during the call (the initial point is not counted),n_restarts: the number of TuRBO-style trust-region restarts,initial_x,optimizer,sub_result: the result of the last surrogate (acquisition) solve,surrogates: the trained surrogates (theirX/yfields hold the query history),trajectory: the per-iteration(x, f, feasible, iter)records whenkeep_all = true.
A callback passed to optimize is invoked once per BO iteration with a Solution carrying the candidate, the objective value, the constraint violations and the convergence state. verbose = true logs one line per iteration.
Workspace
The BayesOptWorkspace underlying an optimization keeps the original model, the surrogate sub-workspace, the surrogates, the callback and the query history. It is created by the standard NonconvexCore Workspace protocol and supports reset!:
w = Workspace(m, BayesOptAlg(IpoptAlg()), x0, options = options)
NonconvexCore.reset!(w) # rebuild the surrogates from scratchThis makes the workspace reusable and nestable in other meta-algorithms (such as multistart drivers).