Gamultiobj Algorithm
Gamultiobj Algorithm
mathworks.com/help/gads/gamultiobj-algorithm.html
Introduction
This section describes the algorithm that gamultiobj uses to create a set of points on the
Pareto front. gamultiobj uses a controlled, elitist genetic algorithm (a variant of NSGA-II [3]).
An elitist GA always favors individuals with better fitness value (rank). A controlled elitist GA
also favors individuals that can help increase the diversity of the population even if they
have a lower fitness value.
Multiobjective Terminology
Most of the terminology for the gamultiobj algorithm is the same as Genetic Algorithm
Terminology. However, there are some additional terms, described in this section. For more
details about the terminology and the algorithm, see Deb [3].
The term "dominate" is equivalent to the term "inferior:" x dominates y exactly when y
is inferior to x.
A nondominated set among a set of points P is the set of points Q in P that are not
dominated by any point in P.
1/6
Rank — For feasible individuals, there is an iterative definition of the rank of an
individual. Rank 1 individuals are not dominated by any other individuals. Rank 2
individuals are dominated only by rank 1 individuals. In general, rank k individuals
are dominated only by individuals in rank k - 1 or lower.
2/6
Crowding Distance — The crowding distance is a measure of the closeness of an
individual to its nearest neighbors. The gamultiobj algorithm measures distance
among individuals of the same rank. By default, the algorithm measures distance in
objective function space. However, you can measure the distance in decision variable
space (also termed design variable space) by setting the DistanceMeasureFcn option
to {@distancecrowding,'genotype'} .
The algorithm sets the distance of individuals at the extreme positions to Inf . For the
remaining individuals, the algorithm calculates distance as a sum over the dimensions
of the normalized absolute distances between the individual's sorted neighbors. In
other words, for dimension m and sorted, scaled individual i :
The algorithm sorts each dimension separately, so the term neighbors means
neighbors in each dimension.
Individuals of the same rank with a higher distance have a higher chance of selection
(higher distance is better).
You can choose a different crowding distance measure than the default
@distancecrowding function. See Multiobjective Options.
Crowding distance is one factor in the calculation of the spread, which is part of a
stopping criterion. Crowding distance is also used as a tie-breaker in tournament
selection, when two selected individuals have the same rank.
3/6
Spread — The spread is a measure of the movement of the Pareto set. To calculate the
spread, the gamultiobj algorithm first evaluates σ, the standard deviation of the
crowding distance measure of points that are on the Pareto front with finite distance.
Q is the number of these points, and d is the average distance measure among these
points. The algorithm then evaluates μ, the sum over the k objective function indices
of the norm of the difference between the current minimum-value Pareto point for
that index and the minimum point for that index in the previous iteration. The spread
is then
The spread is small when the extreme objective function values do not change much
between iterations (that is, μ is small) and when the points on the Pareto front are
spread evenly (that is, σ is small).
gamultiobj uses the spread in a stopping condition. Iterations halt when the spread
does not change much, and the final spread is less than an average of recent spreads.
See Stopping Conditions.
Initialization
The first step in the gamultiobj algorithm is creating an initial population. The algorithm
creates the population, or you can give an initial population or a partial initial population by
using the InitialPopulationMatrix option (see Population Options). The number of individuals
in the population is set to the value of the PopulationSize option. By default, gamultiobj
creates a population that is feasible with respect to bounds and linear constraints, but is not
necessarily feasible with respect to nonlinear constraints. The default creation algorithm is
@gacreationuniform when there are no constraints or only bound constraints, and
@gacreationlinearfeasible when there are linear or nonlinear constraints.
gamultiobj evaluates the objective function and constraints for the population, and uses
those values to create scores for the population.
Iterations
The main iteration of the gamultiobj algorithm proceeds as follows.
1. Select parents for the next generation using the selection function on the current
population. The only built-in selection function available for gamultiobj is binary
tournament. You can also use a custom selection function.
3. Score the children by calculating their objective function values and feasibility.
4/6
4. Combine the current population and the children into one matrix, the extended
population.
5. Compute the rank and crowding distance for all individuals in the extended
population.
Stopping Conditions
The following stopping conditions apply. Each stopping condition is associated with an exit
flag.
exitflag
Value Stopping Condition
For exit flag 1, the geometric average of the relative change in spread has multiplier ½k for
the relative change in the kth previous generation.
Bibliography
[1] Censor, Y. “Pareto Optimality in Multiobjective Problems,” Appl. Math. Optimiz., Vol. 4, pp
41–59, 1977.
5/6
[2] Da Cunha, N. O. and E. Polak. “Constrained Minimization Under Vector-Valued Criteria in
Finite Dimensional Spaces,” J. Math. Anal. Appl., Vol. 19, pp 103–124, 1967.
[4] Zadeh, L. A. “Optimality and Nonscalar-Valued Performance Criteria,” IEEE Trans. Automat.
Contr., Vol. AC-8, p. 1, 1963.
See Also
gamultiobj
Related Topics
What Is Multiobjective Optimization?
Genetic Algorithm Options
gamultiobj Options and Syntax: Differences from ga
6/6