Multi-objective EA

Evolutionary.NSGA2Type

Non-dominated Sorting Genetic Algorithm (NSGA-II) for Multi-objective Optimization

The constructor takes following keyword arguments:

  • populationSize: The size of the population
  • crossoverRate: The fraction of the population at the next generation, that is created by the crossover function
  • mutationRate: Probability of chromosome to be mutated
  • selection: Selection function (default: tournament)
  • crossover: Crossover function (default: SBX)
  • mutation: Mutation function (default: PLM)
  • metrics is a collection of convergence metrics.

Description

Multi-objective optimization is an area of multiple criteria decision making that is concerned with mathematical optimization problems involving more than one objective function to be optimized simultaneously. Evolutionary algorithms are popular approaches to generating Pareto optimal solutions to a multi-objective optimization problem by appling Pareto-based ranking schemes, such as the Non-dominated Sorting Genetic Algorithm-II (NSGA-II)[1].

Auxiliary Functions

Evolutionary.dominateFunction
dominate(p, q)

Returns 1 if p is dominated by q, -1 if otherwise, and 0 if dominance cannot be determined.

Evolutionary.dominationsFunction

dominations(P::AbstractVector)

Returns a domination matrix of all elements in the input collection P.

Evolutionary.crowding_distance!Function
crowding_distance!((C, F, fronts)

Calculate crowding distance for individuals and save the results into C given the fitness values F and collection of fronts.

References

  • 1Deb, K. et al., "A fast and elitist multiobjective genetic algorithm: NSGA-II". IEEE Transactions on Evolutionary Computation, 2002.