# Simple Differential Evolution Algorithm

### Description

Simple Differential Evolution for Minimization.

### Usage

1 2 |

### 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 <hwborchers@googlemail.com>

### 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.

### See Also

`simpleEA`

, `DEoptim`

in the ‘DEoptim’ package.

### Examples

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!
``` |