-
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 theObjectiveobject. It checks whether all required arguments are specified. -
Added functionality to the
Objectiveobject that can compute a numerical gradient and Hessian.
-
Gradient, Hessian, and parameter bounds can now be passed to
Optimizerobjects. -
The old S3 interface has been removed. The functions
define_optimizer(),optimizer_nlm(),optimizer_optim(),new_optimizer(),validate_optimizer(), andapply_optimizer()are no longer available. Please use the R6 interface viaOptimizer$new()and the corresponding methods. Seehelp("Optimizer", "optimizeR")for details.
ParameterSpacesnow allows users to specify parameters that are not used for transformations. This can be useful when one generalParameterSpacesobject is defined for nested sets of parameters.
- Added the
ParameterSpacesR6 object to transform parameters between optimization and interpretation space.
- The
Objectiveobject now allows different output structures for the objective function. A template can be provided via the$output_templatefield.
-
The
Optimizerobject has a new methodoptimize, which can be used for minimization and maximization by setting the argumentdirection. -
In method
Objective$initialize(), renamed argumentobjectivetof. -
In method
Objective$initialize(), iftarget = NULL(the new default), the first argument fromfis taken as the target argument.
- Removed
install_optimizer_packages().
- Fixed a bug and added test cases for fixed arguments that are
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
verboseargument to the$get_argument()and$remove_argument()methods of theObjectiveobject. -
Added field
fixed_argumentsto theObjectiveobject. 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.
- Fixed wrong values for
"out_value"and"out_parameter"in the optimizer dictionary entry forstats::optim.
- Instead of using S3 classes, we treat optimizers as R6 objects now.
-
Removed package start-up message.
-
Added the
.directionargument todefine_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_ackleyinstead of the package's own implementation of the Ackley function for validation.
- Added the package logo and created the package website (https://loelschlaeger.de/optimizeR) with {pkgdown}. No code changes.
- In
define_optimizer(), nowvalidate = FALSEby default.
-
Function
set_optimizer()was renamed todefine_optimizer(). -
Inputs for
define_optimizer()were renamed for clarity:opt_fun->optimizerf->objectivep->initialv->valuez->parameterout_ign->output_ignoretest_par->validation_settings
-
Elements for input
validation_settingshave been simplified. Please see the documentation ofdefine_optimizer(). -
Elements in the output of
apply_optimizer()were renamed for clarity:v->valuez->parametertime->seconds(now just anumeric)
-
Element
initial(the starting parameter vector) was added to the output ofapply_optimizer().
-
Some functions were renamed:
optimizeR()->apply_optimizer()set_optimizer_nlm()->optimizer_nlm()set_optimizer_optim()->optimizer_optim()
-
Functions
is_number(),try_silent(),timed(), anddo.call_timed()are no longer exported. -
Function
try_silent_timed()was removed.
- Initial CRAN release.