Jak již bylo řečeno, snahou většiny evolučních algoritmů a nejen jich, je napodobit přirozený výběr, kde přežívá silnější jedinec a tento výběr využít v oblasti optimalizace.
Míru přizpůsobení popisuje skalární hodnota fitness z množiny kladných reálných čísel. Přiřazování hodnoty fitness je prováděno obecně pomocí funkce
:
![]()
kde:
… Funkce, která poskytuje jako výstup hodnotu fitness jedince
.
V následujícím textu jsou uvedeny některé možné přístupy jak vypočítat skalární hodnoty fitness, kterými jsou ohodnoceni všichni jedinci v populaci. Kromě toho, že tyto procedury mohou např. zohledňovat pořadí jedince vzhledem k ostatním jedincům, mohou také vyjadřovat hledisko, nakolik může jedinec zajistit diverzitu populace - např. pokud dochází ke zhušťování jedinců v jedné oblasti, vystavujeme se tím riziku uvíznutí v lokálním extrému.
V následujících algoritmech je použita komparační funkce
, která porovnává dva jedince seznamu (jedince v populaci) na základě hodnoty účelové funkce
.
Je zde použita záměrně komparační funkce, protože tato funkce je schopna porovnat hodnotu i více účelových funkcí v případě víceúčelové optimalizace. Do této funkce může být totiž zakomponována některá z metod pro práci s více jednotlivými účelovými funkcemi - např. metoda váženého součtu.
Pro případ minimalizace cíle podle hodnoty jedné účelové funkce platí (viz
):

Komparační funkce slouží pro porovnání dvou jedinců (obecně lze říci prvků) na základě hodnot účelové funkce. Algoritmus byl již popsán ve studijním článku obecné prvky globální optimalizace.
Případ porovnání hodnot účelové funkce dvou prvků u maximalizace účelové funkce je v podstatě stejný, s tím rozdílem, že jsou znaménka nerovnosti opačná.
Metody přiřazení fitness
AssignFitnessPrevalence1 - v tomto algoritmu je hodnota fitness jedince v populaci nepřímo úměrná počtu lepších jedinců z populace tj.:
![]()
AssignFitnessPrevalence2 - v algoritmu jsou přiřazeny všem jedincům z populace
, skalární hodnoty fitness, které vyjadřují pořadí jedinců v populaci podle hodnot účelové funkce. Jedinci se stejnými hodnotami účelové funkce mají stejnou hodnotu fitness.
Nevýhodou obou přístupů je, že neberou ohled na různorodost (diverzitu) populace.
AssignFitnessTournament - v algoritmu (viz
) je zachycen princip soutěžení jedince proti vybraným soupeřům. Jedinec soutěží v q zápasech (viz
, řádek 3) proti r soupeřům (řádek 6). Obvykle bývá nastavena hodnota počtu soupeřů na r=1. Vítězství jedince je určeno na základě komparační funkce, která porovnává hodnoty účelové funkce jedince proti soupeřově (řádek 8). Soupeř je vybrán náhodně z populace
.
Funkce
generuje na základě rovnoměrného rozdělení náhodné číslo, které představuje index. Index je generován od indexu 0 až do indexu
tj. do indexu menšího než počet všech jedinců v populaci - poslední index jedince má hodnotu o 1 menší než je délka seznamu. Hodnota fitness je úměrná počtu vyhraných zápasů (řádek 11).
Poznámka: Závorka
značí nejmenší celé číslo větší nebo rovné hodnotě uvnitř závorky. V případě, kdy index jedince v populaci =
to znamená, že indexy se pohybují pouze v oblasti od 0 až do hodnoty
. Tento zápis se např. v programovacím jazyku Delphi nahrazuje příkazem Trunc.
Závorka
značí největší celé číslo větší nebo rovné hodnotě uvnitř závorky. Synonymem této závorky v programovacím jazyku Delphi je příkaz Round.