| define_optimizer {optimizeR} | R Documentation |
Specify numerical optimizer
Description
This function specifies the framework for a numerical optimizer.
Two wrappers for well-known optimizers are already available:
Usage
define_optimizer(
.optimizer,
.objective,
.initial,
.value,
.parameter,
.direction,
...,
.output_ignore = character(0),
.validate = FALSE,
.validation_settings = list(objective_test = TestFunctions::TF_ackley, objective_add =
list(), initial = round(stats::rnorm(2), 2), check_seconds = 10)
)
optimizer_nlm(
...,
.output_ignore = character(0),
.validate = FALSE,
.validation_settings = list()
)
optimizer_optim(
...,
.direction = "min",
.output_ignore = character(0),
.validate = FALSE,
.validation_settings = list()
)
Arguments
.optimizer |
A
|
.objective |
A |
.initial |
A |
.value |
A |
.parameter |
A |
.direction |
A |
... |
Additional arguments to be passed to the optimizer. Without specifications, the default values of the optimizer are used. |
.output_ignore |
A |
.validate |
A |
.validation_settings |
Ignored if
|
Value
An optimizer object.
Format
An optimizer object is a list of six elements:
- optimizer
A
function, the optimization algorithm.- optimizer_name
A
character, the name ofoptimizer.- optimizer_arguments
A named
list, where each element is an additional function argument foroptimizer.- optimizer_direction
Either
"min"if the optimizer minimizes or"max"if the optimizer maximizes.- optimizer_labels
A named
listof fourcharacter:- objective
the name of the function input of
optimizer- initial
the name of the starting parameter values input of
optimizer- value
the name of the optimal function value in the output list of
optimizer- parameter
the name of the optimal parameter vector in the output list of
optimizer.
- output_ignore
A
charactervector of element names in the outputlistofoptimizerthat are ignored. The elementsvalueandparameterare added automatically tooutput_ignore, because they are saved separately, see the output documentation ofapply_optimizer.
See Also
Use apply_optimizer() to apply an optimizer object for numerical
optimization.
Examples
define_optimizer(
.optimizer = pracma::nelder_mead, # optimization function
.objective = "fn", # name of function input
.initial = "x0", # name of initial input
.value = "fmin", # name of value output
.parameter = "xmin", # name of parameter output
.direction = "min", # optimizer minimizes
.output_ignore = c("restarts", "errmess"), # ignore some outputs
tol = 1e-6, # additional optimizer argument
.validate = TRUE # validate the object
)