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

Description Usage Arguments Value Note References Examples

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

1
2
3
4
5
6
asemoa(task, n.population = 10L, n.archive = NULL, 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.

n.archive

[integer(1)]
Archive size. Default is the number of points in the aspiration.set.

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]

Note

This is a pure R implementation of the AS-EMOA algorithm. It hides the regular ecr interface and offers a more R like interface while still being quite adaptable.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
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)

jakobbossek/ecr documentation built on May 18, 2019, 9:09 a.m.