Global Index (all files) (short | long) | Local contents | Local Index (files in subdir) (short | long)
[FitnV, RankV] = ranking(ObjV, RankOpt, SUBPOP, Goals);
RANK-based fitness assignment, single and multi objective, linear and nonlinear
This function performs single and multi objective ranking of objective values.
Linear and nonlinear distribution of the fitness values is possible.
Syntax: FitnV = ranking(ObjV, RankOpt, SUBPOP)
This function ranks individuals represented by their associated
cost, to be *minimized*, and returns a column vector FitnV
containing the corresponding individual fitnesses. For multiple
subpopulations the ranking is performed separately for each
subpopulation. Different size of every subpopulation and multiple
strategies are supported.
Input parameters:
ObjV - Column vector/matrix containing the objective values of the
individuals in the current population (cost values).
if a matrix, multiobjective ranking assumed (at the moment
only singleobjective ranking - however, this is transparent)
each row corresponds to the objective value/s of one individual
RankOpt - (optional) If RankOpt is a scalar in [1, 2] linear ranking is
assumed and the scalar indicates the selective pressure.
If RankOpt is a 2 element vector:
RankOpt(1): SP - scalar indicating the selective pressure
RankOpt(2): RM - ranking method
RM = 0: linear ranking
RM = 1: non-linear ranking
RM = 10: multi-objective with linear ranking
RM = 11: multi-objective with non-linear ranking
If RankOpt is omitted or NaN, linear ranking and a selective
pressure of 2 are assumed.
When RankOpt contains multiple rows (as many as subpopulations),
each row contains the parameters for one subpopulation.
If RankOpt is a vector with length(RankOpt) > 2 it containes
the fitness to be assigned to each rank. Then it should have
at least the length of the longest subpopulation (or as many
entries as rows in ObjV). Usually RankOpt is monotonously
decreasing. Rank 1 is the best individual!
SUBPOP - (optional) Vector/scalar containing number of individuals
per subpopulation/number of subpopulations
if omitted or NaN, 1 subpopulation is assumed
Output parameters:
FitnV - Column vector containing the fitness values of the
individuals in the current population.
Examples:
% It is assumed in these examples, that the variable objv contains a
% column of objective values.
>> ranking(objv)
% This performs linear ranking with standard selective pressure, all objv
% are taken from individuals in one population
>> ranking(objv, [], 4)
% The same as above, however, the objv are from 4 subpopulations
>> ranking(objv, [1.5])
% Use linear ranking with selective pressure 1.5
>> ranking(objv, [1.5, 1])
% Use non-linear ranking with selective pressure 1.5
>> ranking(objv, [1.5 1; 2.5 1; 1.5 0], 3)
% Use different strategies for every of the three subpopulation. The
% first subpop works with nonlinear ranking and SP=1.5, the second uses
% nonlinear ranking with SP=2.5 and the third linear ranking with SP=1.5.
>> ranking(objv, [1.5; 2.5; 1.5], 3)
% Similar to above, ranking method is computed internally. If SP > 2,
% nonlinear ranking is used, else linear ranking
See also: selection, compdiv
| This function calls | This function is called by |
|---|---|