L-BFGS-B acquisition function optimizer.
Calls nloptr() from nloptr.
In its default setting, the algorithm restarts 5 * D times and runs at most for 100 * D^2 function evaluations, where D is the dimension of the search space.
Each run stops when the relative tolerance of the parameters is less than 10^-4.
The first iteration starts with the best point in the archive and the next iterations start from a random point.
Note
If the restart strategy is "none", the optimizer starts with 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 least for maxeval iterations.
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(Default).
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
mlr3mbo::AcqOptimizer -> AcqOptimizerLbfgsb
Public fields
state(
list())
List ofnloptr::nloptr()results.
Methods
Method new()
Creates a new instance of this R6 class.
Usage
AcqOptimizerLbfgsb$new(acq_function = NULL)Arguments
acq_function(
NULL| AcqFunction).
Method optimize()
Optimize the acquisition function.
Returns
data.table::data.table() with 1 row per candidate.
Examples
if (requireNamespace("nloptr")) {
acqo("lbfgsb")
}
#> <AcqOptimizerLbfgsb>: (OptimizerLbfgsb)
#> * Parameters: maxeval=1000, restart_strategy=none, n_restarts=0,
#> max_restarts=0, catch_errors=TRUE