ExpDE: Experimental Differential Evolution - ExpDE

Description Usage Arguments Details Value Mutation Parameters Recombination parameters Selection parameters Stop criteria Problem description Random Seed Showpars Author(s) References Examples

Description

Modular implementation of the Differential Evolution Algorithm for the experimental investigation of the effects of different operators on the performance of the algorithm.

Usage

1
2
3
4
ExpDE(popsize, mutpars = list(name = "mutation_rand", f = 0.2),
  recpars = list(name = "recombination_bin", cr = 0.8, nvecs = 1),
  selpars = list(name = "standard"), stopcrit, probpars, seed = NULL,
  showpars = list(show.iters = "none"))

Arguments

popsize

population size

mutpars

list of named mutation parameters. See Mutation parameters for details.

recpars

list of named recombination parameters. See Recombination parameters for details.

selpars

list of named selection parameters. See Selection parameters for details.

stopcrit

list of named stop criteria parameters. See Stop criteria for details.

probpars

list of named problem parameters. See Problem Description for details.

seed

seed for the random number generator. See Random Seed for details.

showpars

parameters that regulate the echoing of progress indicators See Showpars for details.

Details

This routine is used to launch a differential evolution algorithm for the minimization of a given problem instance using different variants of the recombination, mutation and selection operators. The input parameters that describe those operators receive list objects describing the operator variants to be used in a given optimization procedure.

Value

A list object containing the final population (sorted by performance) , the performance vector, and some run statistics.

Mutation Parameters

mutpars is used to inform the routine the type of differential mutation to use, as well as any mutation-related parameter values. The current version accepts the following options:

mutpars receives a list object with name field mutpars$name (containing the name of the function to be called, e.g., name = "mutation_rand") as well as whatever parameters that function may require/accept (e.g., mutpars$f = 0.7, mutpars$nvecs = 2, etc.). See the specific documentation of each function for details.

Some examples are provided in the Examples section below.

Recombination parameters

As with the mutation parameters, recpars is used to define the desired recombination strategy. The current version accepts the following options:

recpars receives a list object with name field recpars$name (containing the name of the function to be called, e.g., name = "recombination_bin") as well as whatever parameters that function may require/accept (e.g., recpars$cr = 0.8, recpars$minchange = TRUE, etc.). See the specific documentation of each function for details.

Some examples are provided in the Examples section below.

Selection parameters

selpars follows the same idea as mutpars and recpars, and is used to define the selection operators. Currently, only the standard DE selection, selection_standard, is implemented.

Stop criteria

stopcrit is similar to recpar and the other list arguments, but with the difference that multiple stop criteria can be defined for the algorithm. The names of the stop criteria to be used are passed in the stopcrit$names field, which must contain a character vector. Other parameters to be used for stopping the algorithm (e.g., the maximum number of iterations stopcrit$maxiter) can also be included as stopcrit fields. Currently implemented criteria are:

See check_stop_criteria for details.

Problem description

The probpars parameter receives a list with all definitions related to the problem instance to be optimized. There are three required fields in this parameter:

This list can also contain the following optional arguments

Important: the objective function routine must receive either a vector or a matrix of vectors to be evaluated in the form of an input parameter named either "x" or "X" or "Pop" (any one of the three is allowed).

Random Seed

The seed argument receives the desired seed for the PRNG. This value can be set for reproducibility purposes. The value of this parameter defaults to NULL, in which case the seed is arbitrarily set using .Random.seed.

Showpars

showpars is a list containing parameters that control the printed output of ExpDE. Parameter showpars can have the following fields:

Author(s)

Felipe Campelo (fcampelo@ufmg.br) and Moises Botelho (moisesufop@gmail.com)

References

F. Campelo, M. Botelho, "Experimental Investigation of Recombination Operators for Differential Evolution", Genetic and Evolutionary Computation Conference, July 20-24, 2016, Denver/CO. DOI: 10.1145/2908812.2908852

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# DE/rand/1/bin with population 40, F = 0.8 and CR = 0.5
popsize  <- 100
mutpars  <- list(name = "mutation_rand", f = 0.8)
recpars  <- list(name = "recombination_bin", cr = 0.5, minchange = TRUE)
selpars  <- list(name = "selection_standard")
stopcrit <- list(names = "stop_maxiter", maxiter = 100)
probpars <- list(name  = "sphere",
                xmin = rep(-5.12,10), xmax = rep(5.12,10))
seed <- NULL
showpars <- list(show.iters = "numbers", showevery = 1)
ExpDE(popsize, mutpars, recpars, selpars, stopcrit, probpars, seed, showpars)


# DE/wgi/1/blxAlpha
recpars  <- list(name = "recombination_blxAlphaBeta", alpha = 0.1, beta = 0.1)
mutpars  <- list(name = "mutation_wgi", f = 0.8)
ExpDE(popsize, mutpars, recpars, selpars, stopcrit, probpars)

# DE/best/1/sbx
recpars  <- list(name = "recombination_sbx", eta = 10)
mutpars  <- list(name = "mutation_best", f = 0.6, nvecs = 1)
ExpDE(popsize, mutpars, recpars, selpars, stopcrit, probpars)

# DE/best/1/eigen/bin
recpars  <- list(name = "recombination_eigen", 
                 othername = "recombination_bin", 
                 cr = 0.5, minchange = TRUE)
showpars <- list(show.iters = "dots", showevery = 10)
stopcrit <- list(names = "stop_maxeval", maxevals = 10000)
ExpDE(popsize, mutpars, recpars, selpars, stopcrit, probpars, seed = 1234)

fcampelo/ExpDE documentation built on May 16, 2019, 12:04 p.m.