gusucode.com > GAVPai_Book_MathworksCntrlFileEx_May2019 > GAVPai_Book_MathworksCntrlFileEx_May2019/DE_selection_penalty.m

    % Differential Evolution: selection with penalty function values remembered
% and carried forward to the next generation

function [next_gen_pool, next_gen_pool_fit, penalty, psifun ] = DE_selection_penalty(feas_parent, G, psip,  feas_parent_fitness, offsprng, GO,psio, offsprng_fitness, popln_size) 

for i=1:popln_size
    
    if (feas_parent_fitness(i) <= offsprng_fitness(i))
         next_gen_pool(i,:)= feas_parent(i,:);
         penalty(i,:)= G(i,:);
         psifun(i)= psip(i);
         next_gen_pool_fit(i) = feas_parent_fitness(i);
    else next_gen_pool(i,:)= offsprng (i,:);
         penalty(i,:)= GO(i,:);
         psifun(i)=psio(i);
         next_gen_pool_fit(i) = offsprng_fitness(i);
    end
    
end