Implementation of the NSGA-II EMOA algorithm by Deb.
Implementation of the NSGA-II EMOA algorithm by Deb.
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.
asemoa( fitness.fun, n.objectives =NULL, minimize =NULL, n.dim =NULL, lower =NULL, upper =NULL, mu =10L, aspiration.set =NULL, normalize.fun =NULL, dist.fun = computeEuclideanDistance, p =1, parent.selector = setup(selSimple), mutator = setup(mutPolynomial, eta =25, p =0.2, lower = lower, upper = upper), recombinator = setup(recSBX, eta =15, p =0.7, lower = lower, upper = upper), terminators = list(stopOnIters(100L)))
Arguments
fitness.fun: [function]
The fitness function.
n.objectives: [integer(1)]
Number of objectives of obj.fun. Optional if obj.fun is a benchmark function from package smoof.
minimize: [logical(n.objectives)]
Logical vector with ith entry TRUE if the ith objective of fitness.fun
shall be minimized. If a single logical is passed, it is assumed to be valid for each objective.
n.dim: [integer(1)]
Dimension of the decision space.
lower: [numeric]
Vector of minimal values for each parameter of the decision space in case of float or permutation encoding. Optional if obj.fun is a benchmark function from package smoof.
upper: [numeric]
Vector of maximal values for each parameter of the decision space in case of float or permutation encoding. Optional if obj.fun is a benchmark function from package smoof.
mu: [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.
terminators: [list]
List of stopping conditions of type ecr_terminator . Default is to stop after 100 iterations.
Returns
[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.