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 |