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

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

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. Sharing between MO individuals (search space) and objective values (solution space) 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 respective 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. If individuals and ShareOpt are provided, sharing in search or solution space is performed. The default method is sharing in search space. The switch to sharing in solution space can be done at the end of the file inside the source code (see ShareMethod). 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 - (optional) Column Vector/Matrix of Chromosomes needed for fitness sharing in Individual space. If omitted or NaN no sharing in individual space is performed ShareOpt - (optional) 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. >> MObjv = [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(MObjv, [1.6 0 1]) % Similar to above with different selective pressure for each subpopulation % and goals defined >> ranking(MObjv, [1.6 0 1; 1.2 0 1; 1.8 0 1; 1.4 0 1], 4, [1.6 2.9 4.2]) % MO ranking with sharing, Chrom and ShareOpt are needed >> ranking(MObjv, [1.6 0 1; 1.2 0 1; 1.8 0 1; 1.4 0 1], 4, [1.6 2.9 4.2], [1 2; 1 3; 1 4; 1 5],[10; 1]) % Perform this ranking once with ShareMethod=0 (sharing between individuals) % and once with ShareMethod=1 (sharing between objective values) and compare % the fitness values (ShareMethod must be set in the source code) See also: selection, compdiv, rankgoal, rankshare

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

The Genetic and Evolutionary Algorithm Toolbox is