DEoptim-methods {DEoptim} R Documentation

## DEoptim-methods

### Description

Methods for DEoptim objects.

### Usage

## S3 method for class 'DEoptim'
summary(object, ...)
## S3 method for class 'DEoptim'
plot(x, plot.type = c("bestmemit", "bestvalit", "storepop"), ...)


### Arguments

 object an object of class DEoptim; usually, a result of a call to DEoptim. x an object of class DEoptim; usually, a result of a call to DEoptim. plot.type should we plot the best member at each iteration, the best value at each iteration or the intermediate populations? ... further arguments passed to or from other methods.

### Details

Members of the class DEoptim have a plot method that accepts the argument plot.type.
plot.type = "bestmemit" results in a plot of the parameter values that represent the lowest value of the objective function each generation. plot.type = "bestvalit" plots the best value of the objective function each generation. Finally, plot.type = "storepop" results in a plot of stored populations (which are only available if these have been saved by setting the control argument of DEoptim appropriately). Storing intermediate populations allows us to examine the progress of the optimization in detail. A summary method also exists and returns the best parameter vector, the best value of the objective function, the number of generations optimization ran, and the number of times the objective function was evaluated.

### Note

Further details and examples of the R package DEoptim can be found in Mullen et al. (2011) and Ardia et al. (2011a, 2011b) or look at the package's vignette by typing vignette("DEoptim").

Please cite the package in publications. Use citation("DEoptim").

### Author(s)

David Ardia, Katharine Mullen mullenkate@gmail.com, Brian Peterson and Joshua Ulrich.

### References

Ardia, D., Boudt, K., Carl, P., Mullen, K.M., Peterson, B.G. (2011) Differential Evolution with DEoptim. An Application to Non-Convex Portfolio Optimization. R Journal, 3(1), 27-34. doi: 10.32614/RJ-2011-005

Ardia, D., Ospina Arango, J.D., Giraldo Gomez, N.D. (2011) Jump-Diffusion Calibration using Differential Evolution. Wilmott Magazine, 55 (September), 76-79. doi: 10.1002/wilm.10034

Mullen, K.M, Ardia, D., Gil, D., Windover, D., Cline,J. (2011). DEoptim: An R Package for Global Optimization by Differential Evolution. Journal of Statistical Software, 40(6), 1-26. doi: 10.18637/jss.v040.i06

DEoptim and DEoptim.control.

### Examples

  ## Rosenbrock Banana function
## The function has a global minimum f(x) = 0 at the point (1,1).
## Note that the vector of parameters to be optimized must be the first
## argument of the objective function passed to DEoptim.
Rosenbrock <- function(x){
x1 <- x[1]
x2 <- x[2]
100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}

lower <- c(-10, -10)
upper <- -lower

set.seed(1234)
outDEoptim <- DEoptim(Rosenbrock, lower, upper)

## print output information
summary(outDEoptim)

## plot the best members
plot(outDEoptim, type = 'b')

## plot the best values
dev.new()
plot(outDEoptim, plot.type = "bestvalit", type = 'b', col = 'blue')

## rerun the optimization, and store intermediate populations
outDEoptim <- DEoptim(Rosenbrock, lower, upper,
DEoptim.control(itermax = 500,
storepopfrom = 1, storepopfreq = 2))
summary(outDEoptim)

## plot intermediate populations
dev.new()
plot(outDEoptim, plot.type = "storepop")

## Wild function
Wild <- function(x)
10 * sin(0.3 * x) * sin(1.3 * x^2) +
0.00001 * x^4 + 0.2 * x + 80

outDEoptim = DEoptim(Wild, lower = -50, upper = 50,
DEoptim.control(trace = FALSE, storepopfrom = 50,
storepopfreq = 1))

plot(outDEoptim, type = 'b')

dev.new()
plot(outDEoptim, plot.type = "bestvalit", type = 'b')

## Not run:
## an example with a normal mixture model: requires package mvtnorm
library(mvtnorm)

## neg value of the density function
negPdfMix <- function(x) {
tmp <- 0.5 * dmvnorm(x, c(-3, -3)) + 0.5 * dmvnorm(x, c(3, 3))
-tmp
}

## wrapper plotting function
plotNegPdfMix <- function(x1, x2)
negPdfMix(cbind(x1, x2))

## contour plot of the mixture
x1 <- x2 <- seq(from = -10.0, to = 10.0, by = 0.1)
thexlim <- theylim <- range(x1)
z <- outer(x1, x2, FUN = plotNegPdfMix)

contour(x1, x2, z, nlevel = 20, las = 1, col = rainbow(20),
xlim = thexlim, ylim = theylim)

set.seed(1234)
outDEoptim <- DEoptim(negPdfMix, c(-10, -10), c(10, 10),
DEoptim.control(NP = 100, itermax = 100, storepopfrom = 1,
storepopfreq = 5))

## convergence plot
dev.new()
plot(outDEoptim)

## the intermediate populations indicate the bi-modality of the function
dev.new()
plot(outDEoptim, plot.type = "storepop")

## End(Not run)


[Package DEoptim version 2.2-6 Index]