Algoritmus Evolutionary Search je optimalizační metoda založená na mechanismu přirozené evoluce. Tento algoritmus simuluje evoluční proces jednotlivců v populaci napříč generacemi, aby našel nejlepší řešení problému.
Jak to funguje
- Inicializace populace: Vytvořte počáteční populaci náhodně generovaných jedinců.
- Hodnocení: Hodnotit kvalitu každého jedince v populaci na základě objektivní funkce nebo hodnotících kritérií.
- Výběr: Vyberte podmnožinu nejlepších jedinců z aktuální populace na základě pravděpodobnosti nebo výběrových kritérií.
- Evoluce: Vytvořte novou generaci použitím operací křížení a mutací na vybrané jedince.
- Iterace: Opakujte kroky 2 až 4 ve více generacích, dokud nedosáhnete uspokojivého řešení nebo předdefinovaného počtu iterací.
Příklad: Optimalizace Fibonacci funkce pomocí Evolutionary Search
Uvažujme optimalizační problém funkce Fibonacci F(x) = F(x-1) + F(x-2) s F(0) = 0, F(1) = 1. Chceme najít hodnotu x, pro kterou F(x) je maximalizováno. Metoda Evolutionary Search může generovat populaci náhodných hodnot x, vyvíjet je napříč generacemi, aby nalezla optimální hodnotu x.
Příklad kódu v C++
V tomto příkladu používáme k optimalizaci Fibonacci funkce metodu Evolutionary Search. Vytváříme populaci náhodných hodnot x, rozvíjíme je napříč generacemi výběrem nejlepších jedinců a použitím operací křížení a mutací.