Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. count=0;
  2. propagating_species;
  3. species_ID=propagating_species(1,sp);
  4. index_species=find([population.species]==species_ID);
  5. fitnesses_species=[population(index_species).fitness];
  6. %
  7. % [~,sorted_fitnesses]=sort(fitnesses_species);
  8. % ranking=zeros(1,size(fitnesses_species,2));
  9. % ranking(sorted_fitnesses)=1:size(fitnesses_species,2);
  10. % if size(fitnesses_species,2)>1
  11. % FitnV=(2-selection.pressure+2*(selection.pressure-1)/(size(fitnesses_species,2)-1)*(ranking-1))';
  12. % else
  13. % FitnV=2;
  14. % end
  15. %
  16. number_overall=propagating_species(2,sp)-propagating_species(3,sp);
  17. number_crossover=round(crossover.percentage*number_overall);
  18. number_mutate=number_overall-number_crossover;
  19. Nind=size(fitnesses_species,2);
  20. Nsel=2*number_crossover+number_mutate;
  21.  
  22.  
  23.  
  24. [sorted_fit,sorted_ind]=sort(fitnesses_species,'descend');
  25.  
  26. norm_fit = sorted_fit/sum(sorted_fit);
  27. cum_fit = cumsum(norm_fit);
  28. period = 1/Nsel;
  29. cum_fit = [0 cum_fit(1:length(cum_fit)-1)];
  30. sel_vec= [period*rand period(:,ones(1,Nsel-1))];
  31.  
  32. cum_sel_vec = cumsum(sel_vec);
  33.  
  34. child = zeros(1,Nsel);
  35. for sel=1:length(cum_sel_vec)
  36. child_ind = max([1:length(cum_fit)].*[cum_fit<cum_sel_vec(sel)]);
  37. child(sel) = sorted_ind(child_ind);
  38. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement