Diferenciální evoluce

Algoritmus byl navržen koncem devadesátých let dvacátého století R. Stornem a K. Princem. Diferenciální evoluce (differential evolution) je podobná genetickým algoritmům. Algoritmus probíhá v cyklech, které se nazývají generace, cílem je vyšlechtit co nejlepší populaci, která obsahuje nejlepšího jedince, tedy nejlepší řešení optimalizační úlohy.

Slovní popis algoritmu diferenciální evoluce:

1.Stanovení parametrů algoritmu.
2.Tvorba populace - vytvoří se vygenerováním množiny prototypových jedinců, u každého jedince se uvažuje jedna hodnota navíc, která představuje hodnotu účelové funkce.
3.Započetí cyklu generace – vnitřní cyklus v generaci, pro každého jedince v populaci se provede evoluční cyklus v následujícím bodě. Takto vybraný jedinec se označuje jako aktivní.
4.Evoluční cyklus – náhodně se zvolí další tři jedinci z populace a provede se křížení. Odečtením prvních dvou vektorů se získává diferenční vektor, ten se vynásobí mutační konstantou a přičte ke třetímu vektoru, čímž vznikne šumový vektor. Následně se pomocí aktivního jedince z bodu 3 a šumového vektoru připraví zkušební vektor. Pro každou odpovídající dvojici prvků zdrojových vektorů je generováno náhodné číslo, které je porovnáváno s konstantou CR. Porovnání určí, jestli se do zkušebního vektoru dostane prvek z aktivního jedince nebo šumového vektoru. Hodnota účelové funkce pro zkušební vektor se porovná s hodnotou účelové funkce aktivního jedince, do nové populace je vybrán ten vektor, který dává lepší řešení.
5.Uchování nejlepšího řešení – z aktuální populace se vybere nejlepší jedinec, slouží pro porovnávání vývoje populací.
6.Ukončení – pokud neproběhl předem daný počet generací, pokračuje se bodem tři, jinak je algoritmus ukončen.

Popis parametrů:

Parametr Popis Doporučená hodnota
F Mutační konstanta [0,2]
CR Práh křížení [0,1]
NP Počet jedinců v populaci 10D, kde D je dimenze účelové funkce
Specimen Datový typ a rozsah hodnot členů jedince Dle účelové funkce
Generace Počet kol šlechtění populace Dle účelové funkce