Learn R Programming

ecr (version 1.0)

asemoa: Implementation of the NSGA-II EMOA algorithm by Deb.

Description

The AS-EMOA, short for aspiration set evolutionary multi-objective algorithm aims to incorporate expert knowledge into multi-objective optimization [1]. The algorithm expects an aspiration set, i.e., a set of reference points. It then creates an approximation of the pareto front close to the aspiration set utilizing the average Hausdorff distance.

Usage

asemoa(task, n.population = 10L, aspiration.set = NULL, normalize.fun = NULL, dist.fun = ecr:::computeEuclideanDistance, p = 1, parent.selector = setupSimpleSelector(), mutator = setupPolynomialMutator(eta = 25, p = 0.2), recombinator = setupSBXRecombinator(eta = 15, p = 0.7), max.iter = 100L, max.evals = NULL, max.time = NULL, ...)

Arguments

task
[ecr_optimization_task] Optimization task. If a smoof_function is passed it is automatically converted into a task.
n.population
[integer(1)] Population size. Default is 10.
aspiration.set
[matrix] The aspiration set. Each column contains one point of the set.
normalize.fun
[function] Function used to normalize fitness values of the individuals before computation of the average Hausdorff distance. The function must have the formal arguments “set” and “aspiration.set”. Default is NULL, i.e., no normalization at all.
dist.fun
[function] Distance function used internally by Hausdorff metric to compute distance between two points. Expects a single vector of coordinate-wise differences between points. Default is computeEuclideanDistance.
p
[numeric(1)] Parameter $p$ for the average Hausdorff metric. Default is 1.
parent.selector
[ecr_selector] Selection operator which implements a procedure to copy individuals from a given population to the mating pool, i. e., allow them to become parents.
mutator
[ecr_mutator] Mutation operator of type ecr_mutator.
recombinator
[ecr_recombinator] Recombination operator of type ecr_recombinator.
max.iter
[integer(1)] Maximal number of iterations. Default ist 100L.
max.evals
[integer(1)] Maximal number of iterations/generations. Default is Inf.
max.time
[integer(1)] Time budget in seconds. Default ist Inf.
...
[any] Further arguments passed to setupECRControl.

Value

[ecr_asemoa_result, ecr_multi_objective_result]

References

[1] Rudolph, G., Schuetze, S., Grimme, C., Trautmann, H: An Aspiration Set EMOA Based on Averaged Hausdorff Distances. LION 2014: 153-156. [2] G. Rudolph, O. Schuetze, C. Grimme, and H. Trautmann: A Multiobjective Evolutionary Algorithm Guided by Averaged Hausdorff Distance to Aspiration Sets, pp. 261-273 in A.-A. Tantar et al. (eds.): Proceedings of EVOLVE - A bridge between Probability, Set Oriented Numerics and Evolutionary Computation V, Springer: Berlin Heidelberg 2014.

Examples

Run this code
library(smoof)

obj.fn = makeDTLZ2Function(dimensions = 2L, n.objectives = 2L)

# define the aspiration set, i.e., a set of reference points
aspiration.set = matrix(
  c(0.1531, 0.1594, 0.1656, 0.1719, 0.1781, 0.1844, 0.1906, 0.1969, 0.2031, 0.2094,
    0.2094, 0.2031, 0.1969, 0.1906, 0.1844, 0.1781, 0.1719, 0.1656, 0.1594, 0.1531),
  byrow = TRUE,
  nrow = 2L
)

## Not run: 
# res = asemoa(
#   task = obj.fn,
#   n.population = 10L,
#   aspiration.set = aspiration.set,
#   max.evals = 1000L
# )
# ## End(Not run)

Run the code above in your browser using DataLab