SMSEMOA {MaOEA} | R Documentation |
S-Metric Selection EMOA
Description
Do an iteration of S-Metric Selection (SMS)-EMOA. The variation used is simulated binary crossover (SBX) and polynomial mutation.
Usage
SMSEMOA(population, fun, nObjective, control = list(), ...)
Arguments
population |
The parent generation. One individual per column. |
fun |
Objective function being solved. Currently available in the package DTLZ1-DTLZ4, WFG4-WFG9. |
nObjective |
Number of objective. Ignored as of version 0.6.1; number of row from fun is used instead. |
control |
(list) Options to control the SMS-EMOA:
|
... |
Further arguments to be passed to |
Value
Returns a list for the next generation
population
The new generation. Column major, each row contain 1 set of objectives.
successfulOffspring
Binary, 1 if the offspring is kept in the new generation. Used in some adaptive schemes.
populationObjective
The new generation's objective values.
References
Beume, N., Naujoks, B., Emmerich, M.: SMS-EMOA: Multiobjective selection based on dominated hypervolume. Eur. J. Oper. Res. 181 (3), 1653 – 1669 (2007)
Examples
nVar <- 14
nObjective <- 5
nIndividual <- 100
crossoverProbability <- 1
mutationProbability <- 1/nVar
population <- matrix(runif(nIndividual*nVar), nrow = nVar)
# run a generation of SMS-EMOA with standard WFG6 test function.
numpyready <- reticulate::py_module_available('numpy')
pygmoready <- reticulate::py_module_available('pygmo')
py_module_ready <- numpyready && pygmoready
if(py_module_ready) # prevent error on testing the example
SMSEMOA(population,WFG6,nObjective,list(crossoverProbability = crossoverProbability,
mutationProbability = mutationProbability),nObjective)