SMSEMOA | R Documentation |
Do an iteration of S-Metric Selection (SMS)-EMOA. The variation used is simulated binary crossover (SBX) and polynomial mutation.
SMSEMOA( population, fun, nObjective = nrow(populationObjective), populationObjective = NULL, control = list(), ... )
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 |
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.
searchDir
The search direction used. Not NULL if orthogonal sampling is used. Can be used to do weighted optimization.
Beume, N., Naujoks, B., Emmerich, M.: SMS-EMOA: Multiobjective selection based on dominated hypervolume. Eur. J. Oper. Res. 181 (3), 1653 – 1669 (2007)
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 = population, fun = WFG6, nObjective = nObjective, populationObjective = NULL, control = list(crossoverProbability = crossoverProbability, mutationProbability = mutationProbability, mutationMethod = "poly"), nObj=nObjective)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.