Return a function which internally stores x or y values.
Often it is desired and useful to store the optimization path, i.e., the evaluated function values and/or the parameters. Not all optimization algorithms offer such a trace. This wrapper makes a smoof function handle x/y-values itself.
addLoggingWrapper(fn, logg.x = FALSE, logg.y = TRUE)
fn |
[ |
logg.x |
[ |
logg.y |
[ |
[smoof_logging_function
]
Logging values, in particular logging x-values, will substantially slow down the evaluation of the function.
# We first build the smoof function and apply the logging wrapper to it fn = makeSphereFunction(dimensions = 2L) fn = addLoggingWrapper(fn, logg.x = TRUE) # We now apply an optimization algorithm to it and the logging wrapper keeps # track of the evaluated points. res = optim(fn, par = c(1, 1), method = "Nelder-Mead") # Extract the logged values log.res = getLoggedValues(fn) print(log.res$pars) print(log.res$obj.vals) log.res = getLoggedValues(fn, compact = TRUE) print(log.res)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.