Description Usage Arguments Details Value Note References Examples
Performs non-linear, non-convex optimization by means of the Covariance Matrix Adaptation - Evolution Strategy (CMA-ES).
1 2 | cmaes(objective.fun, start.point = NULL, monitor = makeSimpleMonitor(),
control = list(stop.ons = c(getDefaultStoppingConditions())))
|
objective.fun |
[ |
start.point |
[ |
monitor |
[ |
control |
[ |
This is a pure R implementation of the popular CMA-ES optimizer for continuous black box optimization [2, 3]. It features a flexible system of stopping conditions and enables restarts [1], which can be triggered by arbitrary stopping conditions and can lead to superior performance on multimodal problems.
You may pass additional parameters to the CMA-ES via the control
argument.
This argument must be a named list. The following control elements will be considered
by the CMA-ES implementation:
integer(1)
]Number of offspring generated in each generation.
integer(1)
]Number of individuals in each population. Defaults to \lfloor λ / 2\rfloor.
numeric
]Numeric vector of positive weights.
numeric(1)
]Initial step-size. Default is 0.5.
character
]List of stopping condition codes / short names (see
makeStoppingCondition
). All stopping conditions which are placed in this vector do trigger a restart
instead of leaving the main loop. Default is the empty character vector, i.e., restart is not triggered.
integer(1)
]Maximal number of restarts. Default is 0. If set
to >= 1, the CMA-ES is restarted with a higher population size if at least one of the
stoppping conditions is defined as a restart trigger restart.triggers
.
numeric(1)
]Factor which is used to increase the population size after restart. Default is 2.
list
]List of stopping conditions. The default is to stop after 10 iterations or after a
kind of a stagnation (see getDefaultStoppingConditions
).
logical(1L)
]Should each population be stored? Default is FALSE
.
[cma_result
] Result object. Internally a list with the following
components:
ParamSet
]Parameter set of the objective function.
numeric
]Final best parameter setting.
numeric(1L)
]Fitness value of the best.param
.
integer(1L)
]Number of function evaluations performed.
integer(1L)
]Running time of the optimization in seconds.
integer(1L)
]Number of restarts.
list
]Trace of population.
character(1L)
]Message generated by stopping condition.
Internally a check for an indefinite covariance matrix is always performed, i.e., this stopping condition is always prepended internally to the list of stopping conditions.
[1] Auger and Hansen (2005). A Restart CMA Evolution Strategy With Increasing Population Size. In IEEE Congress on Evolutionary Computation, CEC 2005, Proceedings, pp. 1769-1776. [2] N. Hansen (2006). The CMA Evolution Strategy: A Comparing Review. In J.A. Lozano, P. Larranaga, I. Inza and E. Bengoetxea (Eds.). Towards a new evolutionary computation. Advances in estimation of distribution algorithms. Springer, pp. 75-102. [3] Hansen and Ostermeier (1996). Adapting arbitrary normal mutation distributions in evolution strategies: The covariance matrix adaptation. In Proceedings of the 1996 IEEE International Conference on Evolutionary Computation, pp. 312-317.
1 2 3 4 5 6 7 8 9 10 11 12 | # generate objective function from smoof package
fn = makeRosenbrockFunction(dimensions = 2L)
res = cmaes(
fn,
monitor = NULL,
control = list(
sigma = 1.5,
lambda = 40,
stop.ons = c(list(stopOnMaxIters(100L)), getDefaultStoppingConditions())
)
)
print(res)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.