DEoptim.control | R Documentation |
Allow the user to set some characteristics of the
Differential Evolution optimization algorithm implemented
in DEoptim
.
DEoptim.control(VTR = -Inf, strategy = 2, bs = FALSE, NP = 50,
itermax = 200, CR = 0.5, F = 0.8, trace = TRUE,
initialpop = NULL, storepopfrom = itermax + 1,
storepopfreq = 1, p = 0.2, c = 0, reltol = sqrt(.Machine$double.eps),
steptol = itermax)
VTR |
the value to be reached. The optimization process
will stop if either the maximum number of iterations |
strategy |
defines the Differential Evolution
strategy used in the optimization procedure: |
bs |
if |
NP |
number of population members. Defaults to |
itermax |
the maximum iteration (population generation) allowed.
Default is |
CR |
crossover probability from interval [0,1]. Default
to |
F |
step-size from interval [0,2]. Default to |
trace |
Printing of progress occurs? Default to |
initialpop |
an initial population used as a starting
population in the optimization procedure. May be useful to speed up
the convergence. Default to |
storepopfrom |
from which generation should the following
intermediate populations be stored in memory. Default to
|
storepopfreq |
the frequency with which populations are stored.
Default to |
p |
when |
c |
when |
reltol |
relative convergence tolerance. The algorithm stops if
it is unable to reduce the value by a factor of |
steptol |
see |
This defines the Differential Evolution strategy used in the optimization procedure, described below in the terms used by Price et al. (2006); see also Mullen et al. (2009) for details.
strategy = 1
: DE / rand / 1 / bin.
This strategy is the classical approach for DE, and is described in DEoptim
.
strategy = 2
: DE / local-to-best / 1 / bin.
In place of the classical DE mutation the expression
v_{i,g} = old_{i,g} + (best_{g} - old_{i,g}) + x_{r0,g} + F \cdot (x_{r1,g} - x_{r2,g})
is used, where old_{i,g}
and best_{g}
are the
i
-th member and best member, respectively, of the previous population.
This strategy is currently used by default.
strategy = 3
: DE / best / 1 / bin with jitter.
In place of the classical DE mutation the expression
v_{i,g} = best_{g} + jitter + F \cdot (x_{r1,g} - x_{r2,g})
is used, where jitter
is defined as 0.0001 * rand
+ F.
strategy = 4
: DE / rand / 1 / bin with per vector dither.
In place of the classical DE mutation the expression
v_{i,g} = x_{r0,g} + dither \cdot (x_{r1,g} - x_{r2,g})
is used, where dither
is calculated as F + \code{rand} * (1 - F)
.
strategy = 5
: DE / rand / 1 / bin with per generation dither.
The strategy described for 4
is used, but dither
is only determined once per-generation.
any value not above: variation to DE / rand / 1 / bin: either-or algorithm.
In the case that rand
< 0.5, the classical strategy strategy = 1
is used.
Otherwise, the expression
v_{i,g} = x_{r0,g} + 0.5 \cdot (F + 1) \cdot (x_{r1,g} + x_{r2,g} - 2 \cdot x_{r0,g})
is used.
The default value of control
is the return value of
DEoptim.control()
, which is a list (and a member of the S3
class
DEoptim.control
) with the above elements.
Further details and examples of the R package DEoptim can be found in Mullen et al. (2009) and Ardia et al. (2010).
Please cite the package in publications.
For RcppDE: Dirk Eddelbuettel.
For DEoptim: David Ardia, Katharine Mullen katharine.mullen@nist.gov, Brian Peterson and Joshua Ulrich.
Price, K.V., Storn, R.M., Lampinen J.A. (2006) Differential Evolution - A Practical Approach to Global Optimization. Berlin Heidelberg: Springer-Verlag. ISBN 3540209506.
Mullen, K.M., Ardia, D., Gil, D.L, Windover, D., Cline, J. (2009) DEoptim: An R Package for Global Optimization by Differential Evolution. URL https://www.ssrn.com/abstract=1526466
Ardia, D., Boudt, K., Carl, P., Mullen, K.M., Peterson, B.G. (2010) Differential Evolution (DEoptim) for Non-Convex Portfolio Optimization. URL https://www.ssrn.com/abstract=1584905
DEoptim
and DEoptim-methods
.
## set the population size to 20
DEoptim.control(NP = 20)
## set the population size, the number of iterations and don't
## display the iterations during optimization
DEoptim.control(NP = 20, itermax = 100, trace = FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.