www.gusucode.com > GAVPai_Book_MathworksCntrlFileEx_May2019 > GAVPai_Book_MathworksCntrlFileEx_May2019/construct_newgen.m
% Extracts the best individuals from the parent and offspring population % using mu lambda strategy for the next generation % The best fit individuals are selected based on the fitness function values, parentW_fitness associated with the % parentW_popln and offsprngW_fitness associated with the offsprngW_popln. % The corresponding individuals from parentX_popln and offsprngX_popln % are conjoined as NextGenPool_X, to prepare for the next generation cycle function [NextGenPool_X, NextGenPool_W, NextGenPool_fitness, NextGenPool_psi] = construct_newgen(parentX_popln, parentW_popln, parentW_fitness, parentW_psi, offsprngX_popln, offsprngW_popln, offsprngW_fitness, offsprngW_psi) [row_mat, col_mat] = size(parentX_popln); [~, parentW_fitness_sort_index] = sort(parentW_fitness, 'descend'); [~, offsprngW_fitness_sort_index] = sort(offsprngW_fitness, 'descend'); %mu lambda strategy based construction of next generation mu = round((1/3)* row_mat+1); lamb = row_mat-mu; select_parent_index = parentW_fitness_sort_index(1:mu); select_offsprng_index = offsprngW_fitness_sort_index(1:lamb); select_parents_X = parentX_popln(select_parent_index,:); select_parents_W = parentW_popln(select_parent_index,:); select_parents_psi = parentW_psi(select_parent_index); select_parents_fitness= parentW_fitness(select_parent_index); select_offsprng_X = offsprngX_popln(select_offsprng_index,:); select_offsprng_W = offsprngW_popln(select_offsprng_index,:); select_offpsrng_psi = offsprngW_psi(select_offsprng_index); select_offsprng_fitness= offsprngW_fitness(select_offsprng_index); NextGenPool_X = [ select_parents_X; select_offsprng_X]; NextGenPool_W = [select_parents_W ; select_offsprng_W]; NextGenPool_psi = [ select_parents_psi, select_offpsrng_psi ]; NextGenPool_fitness = [ select_parents_fitness; select_offsprng_fitness ]; end