Advertisement
Ostu

Untitled

Dec 10th, 2021
1,196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.08 KB | None | 0 0
  1. function out = Ranga(PID,obiekt,szanse)
  2. % czesc ogolna
  3.  
  4. % wartosc szanse= moze byc dowolnie modyfikowana, jej zwiekszenie zblizy
  5. % nas do zapewnienia minimum dwoch najlepszych osobnikow, nalezy pamietac
  6. % ze jest to wartosc podana w procentach tym samym w szanse=100, to w
  7. % naszym przypadku 1%
  8. % np szanse=50 bedzie znaczy ze nasz prog wynosi 50%, szanse=70 to prog
  9. % wynosi 70%
  10. szanse = szanse*0.01;
  11.  
  12. % pobranie rozmiaru macierzy osobnikow
  13. [m,n]=size(PID);
  14.  
  15. % stworzenie macierzy do ktorej wpiszemy funkcje celu kazdego osobnika
  16. FunCel=zeros(m, 2);
  17.  
  18. % obliczenie funkcji celu dla osobnikow
  19. for i=1:m
  20.     FCo=PIDOptimFun(PID(i, :), obiekt);
  21.     FunCel(i, :) = [FCo(1), i];
  22. end
  23.  
  24. % A. uporzadkowanie osobnikiw od najlepszego (najlepiej przystosowanego)
  25. [kolFun, kolOso]=sort(FunCel(:, 1));
  26.  
  27. % B.  określenie funkcji (progu) dla osobników, z których będzie tworzona populacja potomna
  28.  prog = round(szanse*m)
  29.  if prog > m
  30.     prog = m;
  31.  elseif prog < 2 % sprawia ze mamy zapewnione przynajmniej dwa najlepsze osobniki
  32.     prog = 2
  33.  end
  34.  
  35.  out = PID(kolOso(1:prog), :)
  36.  
  37.  
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement