Documentation improvements.
Removed renv.
Added a safeguard if computation of (numerical) gradient or Hessian fails. (#5)
Additional arguments passed to optimization methods now go only to the objective function. (#1)
Small fixes.
Added private helper function
.check_arguments_complete() to the Objective
object. It checks whether all required arguments are specified.
Added functionality to the Objective object that can
compute a numerical gradient and Hessian.
Gradient, Hessian, and parameter bounds can now be passed to
Optimizer objects.
The old S3 interface has been removed. The functions
define_optimizer(), optimizer_nlm(),
optimizer_optim(), new_optimizer(),
validate_optimizer(), and apply_optimizer()
are no longer available. Please use the R6 interface via
Optimizer$new() and the corresponding methods. See
help("Optimizer", "optimizeR") for details.
ParameterSpaces now allows users to specify parameters
that are not used for transformations. This can be useful when one
general ParameterSpaces object is defined for nested sets
of parameters.ParameterSpaces R6 object to transform
parameters between optimization and interpretation space.Objective object now allows different output
structures for the objective function. A template can be provided via
the $output_template field.The Optimizer object has a new method
optimize, which can be used for minimization and
maximization by setting the argument direction.
In method Objective$initialize(), renamed argument
objective to f.
In method Objective$initialize(), if
target = NULL (the new default), the first argument from
f is taken as the target argument.
install_optimizer_packages().NULL.Fixed a bug in creating the error message for a timeout.
Added checks for the objective, initial, and ellipsis arguments of the optimizer function.
Added a verbose argument to the
$get_argument() and $remove_argument() methods
of the Objective object.
Added field fixed_arguments to the
Objective object. It returns the names of the fixed
arguments.
Fixed a bug in backward compatibility.
Small bug fixes.
Backward compatibility with {optimizeR} version
0.3.3.
"out_value" and
"out_parameter" in the optimizer dictionary entry for
stats::optim.Removed package start-up message.
Added the .direction argument to
define_optimizer() to specify whether the optimizer
minimizes or maximizes.
Added a dot before the argument names for
define_optimizer() to avoid clashes with the
... argument.
Removed dependency on {glue}.
Used TestFunctions::TF_ackley instead of the
package’s own implementation of the Ackley function for
validation.
define_optimizer(), now
validate = FALSE by default.Function set_optimizer() was renamed to
define_optimizer().
Inputs for define_optimizer() were renamed for
clarity:
opt_fun -> optimizerf -> objectivep -> initialv -> valuez -> parameterout_ign -> output_ignoretest_par -> validation_settingsElements for input validation_settings have been
simplified. Please see the documentation of
define_optimizer().
Elements in the output of apply_optimizer() were
renamed for clarity:
v -> valuez -> parametertime -> seconds (now just a
numeric)Element initial (the starting parameter vector) was
added to the output of apply_optimizer().
Some functions were renamed:
optimizeR() -> apply_optimizer()set_optimizer_nlm() ->
optimizer_nlm()set_optimizer_optim() ->
optimizer_optim()Functions is_number(), try_silent(),
timed(), and do.call_timed() are no longer
exported.
Function try_silent_timed() was removed.