simpleDE: Simple Differential Evolution Algorithm In adagio: Discrete and Global Optimization Routines

Description

Simple Differential Evolution for Minimization.

Usage

 ```1 2``` ```simpleDE(fun, lower, upper, N = 64, nmax = 256, r = 0.4, confined = TRUE, log = FALSE) ```

Arguments

 `fun` the objective function to be minimized. `lower` vector of lower bounds for all coordinates. `upper` vector of upper bounds for all coordinates. `N` population size. `nmax` bound on the number of generations. `r` amplification factor. `confined` logical; stay confined within bounds. `log` logical; shall a trace be printed.

Details

Evolutionary search to minimize a function: For points in the current generation, children are formed by taking a linear combination of parents, i.e., each member of the next generation has the form

p_1 + r(p_2 - p_3)

where the p_i are members of the current generation and r is an amplification factor.

Value

List with the following components:

 `fmin` function value at the minimum found. `xmin` numeric vector representing the minimum.

Note

Original Mathematica version by Dirk Laurie in the SIAM textbook. Translated to R by Hans W Borchers.

Author(s)

HwB <[email protected]>

References

Dirk Laurie. “A Complex Optimization". Chapter 5 In: F. Bornemann, D. Laurie, S. Wagon, and J. Waldvogel (Eds.). The SIAM 100-Digit Challenge. Society of Industrial and Applied Mathematics, 2004.

`simpleEA`, `DEoptim` in the ‘DEoptim’ package.
 ```1 2 3 4 5``` ``` simpleDE(fnTrefethen, lower = c(-1,-1), upper = c(1,1)) # \$fmin # [1] -3.306869 # \$xmin # [1] -0.02440308 0.21061243 # this is the true global optimum! ```