%Funkce souboj pro odchylku kvadrátů, realizuje porovnávání dvou jedinců z nichž lepší vyhrává,
%založeno na laboratorních cvičeních z předmětu FEAL - evoluční algoritmy
function jedinciPo=souboj(jedinciPred,kvalitaPred)                          %funkce souboj, vstupují jedinci a jejich kvality
jedinciPo=zeros(size(jedinciPred));                                         %definice proměnné do které budou uložni jedinci po souboji
[pocetjedincu,~]=size(jedinciPred);                                         %zjištění počtu jedinců  
for j=1:pocetjedincu                                                        %pro každého jedince proběhne souboj
    nahodnyvyber=zeros(1,2);                                                %definice proměnné do které budou ukládání jedinci pro souboj
    for i=[1 2]                                                             %souboj probíha pro dva jedince
        nahodnyvyber(i)=randi([1,pocetjedincu]);                            %náhodný výběr dvojice do souboje
    end    
    while nahodnyvyber(1)==nahodnyvyber(2)                                  %pokud se vygenerovala stejná dvojic
        nahodnyvyber(2)=randi([1,pocetjedincu]);                            %je druhý jedinec změněn    
    end
    if kvalitaPred(nahodnyvyber(1))>kvalitaPred(nahodnyvyber(2))            %pokud je kvalita druhého jedince vyšší(pozn. zde je hledáno minimum)
        jedinciPo(j,:)=jedinciPred(nahodnyvyber(1),:);                      %vítězí první jedinec a jeho hodnota je oběma přiřazena       
    else
        jedinciPo(j,:)=jedinciPred(nahodnyvyber(2),:);                      %jinak vítězí druhý jedinec a jeho hodnota je oběma přiřazena
    end
end