L-BFGS-B acquisition function optimizer.
Calls nloptr() from nloptr with the NLOPT_LD_LBFGS algorithm.
In its default setting, the algorithm runs a single time starting from the best point in the archive,
for at most 100 * D^2 function evaluations, where D is the dimension of the search space.
The run stops when the relative tolerance of the parameters is less than 10^-4.
With restart_strategy = "random", the optimizer additionally restarts from random points until the evaluation
budget is exhausted, which can help escape local optima.
Only fully numeric search spaces (all parameters of type p_dbl) are supported.
Note
If the restart strategy is "none", the optimizer runs a single time starting from the best point in the archive.
The optimization stops when one of the stopping criteria is met.
If restart_strategy is "random", the optimizer runs at most for maxeval iterations in total.
The first iteration starts with the best point in the archive and stops when one of the stopping criteria is met.
The next iterations start from a random point.
Parameters
restart_strategycharacter(1)
Restart strategy. Can be"none"or"random". Default is"none".max_restartsinteger(1)
Maximum number of restarts. Default is5 * D, whereDis the dimension of the search space.skip_already_evaluatedlogical(1)
Should the proposed candidate be rejected if it was already evaluated on the actual bbotk::OptimInstance? IfTRUEand the candidate was already evaluated, an error is raised so that theloop_functioncan propose a randomly sampled point instead. Default isTRUE.
Termination Parameters
The following termination parameters can be used.
stopvalnumeric(1)
Stop value. Deactivate with-Inf(Default).maxevalinteger(1)
Maximum number of evaluations. Default is100 * D^2, whereDis the dimension of the search space. Deactivate with-1L.xtol_relnumeric(1)
Relative tolerance of the parameters. Default is10^-4. Deactivate with-1.xtol_absnumeric(1)
Absolute tolerance of the parameters. Deactivate with-1(Default).ftol_relnumeric(1)
Relative tolerance of the objective function. Deactivate with-1(Default).ftol_absnumeric(1)
Absolute tolerance of the objective function. Deactivate with-1(Default).
Super class
AcqOptimizer -> AcqOptimizerLbfgsb
Public fields
state(
list())
List ofnloptr::nloptr()results.
Active bindings
print_id(
character)
Id used when printing.label(
character(1))
Label for this object. Can be used in tables, plot and text output instead of the ID.man(
character(1))
String in the format[pkg]::[topic]pointing to a manual page for this object.
Methods
Inherited methods
AcqOptimizerLbfgsb$new()
Creates a new instance of this R6 class.
Usage
AcqOptimizerLbfgsb$new(acq_function = NULL)Arguments
acq_function(
NULL| AcqFunction).
AcqOptimizerLbfgsb$optimize()
Optimize the acquisition function.
Returns
data.table::data.table() with 1 row per candidate.
AcqOptimizerLbfgsb$reset()
Reset the acquisition function optimizer.
Clears the state of the previous optimization run.
Examples
if (requireNamespace("nloptr")) {
acqo("lbfgsb")
}
#> <AcqOptimizerLbfgsb>: (OptimizerLbfgsb)
#> * Parameters: restart_strategy=none, skip_already_evaluated=TRUE,
#> catch_errors=TRUE