Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function out = Ranga(PID,obiekt,szanse)
- % czesc ogolna
- % wartosc szanse= moze byc dowolnie modyfikowana, jej zwiekszenie zblizy
- % nas do zapewnienia minimum dwoch najlepszych osobnikow, nalezy pamietac
- % ze jest to wartosc podana w procentach tym samym w szanse=100, to w
- % naszym przypadku 1%
- % np szanse=50 bedzie znaczy ze nasz prog wynosi 50%, szanse=70 to prog
- % wynosi 70%
- szanse = szanse*0.01;
- % pobranie rozmiaru macierzy osobnikow
- [m,n]=size(PID);
- % stworzenie macierzy do ktorej wpiszemy funkcje celu kazdego osobnika
- FunCel=zeros(m, 2);
- % obliczenie funkcji celu dla osobnikow
- for i=1:m
- FCo=PIDOptimFun(PID(i, :), obiekt);
- FunCel(i, :) = [FCo(1), i];
- end
- % A. uporzadkowanie osobnikiw od najlepszego (najlepiej przystosowanego)
- [kolFun, kolOso]=sort(FunCel(:, 1));
- % B. określenie funkcji (progu) dla osobników, z których będzie tworzona populacja potomna
- prog = round(szanse*m)
- if prog > m
- prog = m;
- elseif prog < 2 % sprawia ze mamy zapewnione przynajmniej dwa najlepsze osobniki
- prog = 2
- end
- out = PID(kolOso(1:prog), :)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement