[SelPop,SelFunVal]=truncation_selection(Pop,FunVal,selection_params) truncation_selection: Truncation selection Individuals are ordered according fitness values (best is the maximum) For multiobjetive functions, individuals are selected according average ranking for all the objectives. (i.e. for each objective a truncation is done) INPUTS Pop: Original population FunVal: A matrix of function evaluations, one vector of m objectives for each individual selection_params{1}: Truncation parameter T \in (0,1) OUTPUTS SelPop: Selected population SelFunVal: A vector of function evaluations for each selected individual Last version 8/26/2008. Roberto Santana (roberto.santana@ehu.es)
0001 function[SelPop,SelFunVal]=truncation_selection(Pop,FunVal,selection_params) 0002 % [SelPop,SelFunVal]=truncation_selection(Pop,FunVal,selection_params) 0003 % truncation_selection: Truncation selection 0004 % Individuals are ordered according fitness values (best is the maximum) 0005 % For multiobjetive functions, individuals are selected according 0006 % average ranking for all the objectives. (i.e. for each objective a truncation 0007 % is done) 0008 % INPUTS 0009 % Pop: Original population 0010 % FunVal: A matrix of function evaluations, one vector of m objectives for each individual 0011 % selection_params{1}: Truncation parameter T \in (0,1) 0012 % OUTPUTS 0013 % SelPop: Selected population 0014 % SelFunVal: A vector of function evaluations for each selected individual 0015 % 0016 % Last version 8/26/2008. Roberto Santana (roberto.santana@ehu.es) 0017 0018 PopSize = size(Pop,1); 0019 0020 T = cell2num(selection_params{1}(1)); % The parameter used by truncation selection is the truncation parameter 0021 number_objectives = size(FunVal,2); 0022 SelPopSize = floor(T*PopSize); 0023 0024 [Index] = fitness_ordering(Pop,FunVal,SelPopSize); 0025 0026 SelPop = Pop(Index,:); 0027 SelFunVal = FunVal(Index,:); 0028 0029 return 0030 0031 0032 0033