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 
stepsize 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 / localtobest / 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 * (x_r1,g  x_r2,g)
is used, where old_i,g and best_g are the ith 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 * (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 * (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 pergeneration.
any value not above: variation to DE / rand / 1 / bin: eitheror 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 * (F + 1) * (x_r1,g + x_r2,g  2 * 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: SpringerVerlag. 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 NonConvex Portfolio Optimization. URL https://www.ssrn.com/abstract=1584905
DEoptim
and DEoptimmethods
.
## 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.