%Realizace mutace pro kriteriální funkci odchylka kvadrátů, k hodnotě je přičteno náhodně generované číslo v rozsahu -5 až 5, modifikace pro odchylku kvadrátů,
%založeno na laboratorních cvičeních z předměru FEAL - evoluční algoritmy
function jedinciPo=mutaceSSD(jedinciPred,pst_mutace)                        %do funkce vstupují jedinci, kteří budou mutováni a pst mutace
jedinciPo=jedinciPred;                                                      %přeuložení proměnné
[pocetjedincu pocetgenu]=size(jedinciPred);                                 %určení počtu jedinců, kteř se vyskytují v populaci a kolik genu každý nese                          
nahodnacisla=rand(pocetjedincu,1);                                          %pro každého jedince je generováno náhodné číslo
for i=1:pocetjedincu                                                        %pro každého jedince
    if nahodnacisla(i)<pst_mutace                                           %náhodné číslo, které bylo každému generováno je zde porovnánváo s pstí mutace, pokud je menší, provede se
        nahodnyvyber=randi([1,pocetgenu]);                                  %volba genu, který je mutován
        zmena=randi(11,1,1)-6;                                              %generování náhodné hodnoty o kterou bude původní hodnota změněna
        jedinciPo(i,nahodnyvyber)=jedinciPred(i,nahodnyvyber)+zmena;        %realizace mutace, k hodnotě je přičetena náhodně generovaná hodnota v rozsahu -5 až 5
        if jedinciPo(i,nahodnyvyber)<-50                                    %ověřování, zda se nově vzniklý jedinec nevyskytuje mimo operační prostor kriteriální funkce
            jedinciPo(i,nahodnyvyber)=-50;                                  %pokud ano, je mu přiřazena krajní hodnota prostoru
        end
        if jedinciPo(i,nahodnyvyber)>50                                     %ověřování, zda se nově vzniklý jedinec nevyskytuje mimo operační prostor kriteriální funkce
            jedinciPo(i,nahodnyvyber)=50;                                   %pokud ano, je mu přiřazena krajní hodnota prostoru
        end        
    end
end