Documentation of ranking


Global Index (all files) (short | long) | Local contents | Local Index (files in subdir) (short | long)


Function Synopsis

[FitnV, RankV] = ranking(ObjV, RankOpt, SUBPOP, Goals, Chrom, ShareOpt);

Help text

 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, RankV] = ranking(ObjV, RankOpt, SUBPOP, Goals, Chrom, ShareOpt)

 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.

 Single and multi-objective ranking are supported. For multi-objective
 ranking the respectiuve option must be set. Then PARETO ranking is
 performed and (if provided) Goals are used.
 The implementation follows in large parts the standard way of PARETO ranking 
 and goal attainment. For a good description have a look at many of the papers 
 of Carlos Fonseca (including his dissertation), for instance:
  Fonseca, C. M.: Multiobjective Genetic Algorithms with Application to Control
  Engineering Problems. Ph.D. Thesis, Department of Automatic Control and 
  Systems Engineering, University of Sheffield, Sheffield, U.K., 1995.

 For multiple objetives single objective ranking can be enforced. Then only
 the first objective value ObjV(:,1) is used. The remaining objective values
 ObjV(:,2:end) are ignored.

 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 or 3 element vector:
                RankOpt(1): SP - scalar indicating the selective pressure
                RankOpt(2): RM - ranking method
                            RM = 0: linear ranking
                            RM = 1: non-linear ranking
                RankOpt(3): RMO - single/multi objective ranking
                            RMO = 0: single objective ranking (even for multiple
                                     objective values, first objective value 
                                     ObjV(:,1) is only used for ranking)
                            RMO > 0: multi objective ranking
                If RankOpt is omitted or NaN, linear ranking, a selective
                pressure of 2 and single objective ranking 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) > 3 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
    Goals     - (optional) Row vector containing objective function goals for
                multiobjective Pareto-ranking. Individuals who satisfy goals
                are preferred in a Pareto fashion against these who do not
                To satisfy a goal the respective objective value must be smaller 
                or equal to the Goal value.
    Chrom     - Column Vector/Matrix  of Chromosomes needed for fitness sharing
                in Individual space. If omitted or NaN no sharing in individual
                space is performed
    ShareOpt  - 2-row-matrix, first row contains parameter for sharing in individual
                space, second row for sharing in objective space. 
                3 Parameters:
                   ShareOpt(:, 1): ShareSigma, minimum cluster size for the spaces
                   ShareOpt(:, 2): ShareAlpha, penalty factor for single faults
                   ShareOpt(:, 3): ShareBeta , penalty factor for summarized faults
                If omitted or NaN ShareAlpha and ShareBeta are set to 1.
                If ShareSigma is omitted or NaN sharing of applied space is not possible
                see geamain2 for the calculation of the ShareOpt parameters

 Output parameters:
    FitnV     - Column vector containing the fitness values of the
                individuals in the current population.
    RankV     - Column vector containing the (Pareto-) Rank of the 
                Individuals in the current population


 Examples:
 % It is assumed in the first examples, that the variable objv contains a 
 % column of objective values.

 % This performs linear ranking with standard selective pressure, all objv 
 % are taken from individuals in one population
 >> ranking(objv)

 % The same as above, however, the objv are from 4 subpopulations
 >> ranking(objv, [], 4)

 % Use linear ranking with selective pressure 1.5
 >> ranking(objv, [1.5])

 % Use non-linear ranking with selective pressure 1.5
 >> ranking(objv, [1.5, 1])

 % 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 1; 2.5 1; 1.5 0], 3)

 % Similar to above, ranking method is computed internally. If SP > 2, 
 % nonlinear ranking is used, else linear ranking,
 % the different size of each subpopulation is given directly
 >> ranking(objv, [1.5; 2.5; 1.5], [11 23 16])

 % multiple objectives per individual: the variable MObjv contains an 
 % array of objective values.
 >> MObj = [1 2 3; 1.5 2.5 3.5; 1 3 5; 2 1.4 8];

 % Perform multi-objective ranking with linear ranking and selective
 % pressure of 1.6, no sharing performed
 >> ranking(MObj, [1.6 0 1])

 % Similar to above with different selective pressure for each subpopulation
 % and goals defined
 >> ranking(MObj, [1.6 0 1; 1.2 0 1; 1.8 0 1; 1.4 0 1], 4, [1.6 2.9 4.2])

 See also: selection, compdiv, rankgoal, rankshare

Cross-Reference Information

This function calls This function is called by

GEATbx: Main page  Tutorial  Algorithms  M-functions  Parameter/Options  Example functions  www.geatbx.com 

This document is part of version 3.5 of the GEATbx: Genetic and Evolutionary Algorithm Toolbox for use with Matlab - www.geatbx.com.
The Genetic and Evolutionary Algorithm Toolbox is not public domain.
© 1994-2004 Hartmut Pohlheim, All Rights Reserved, (support@geatbx.com).