3. Evoluční algoritmy
Definice¶
- Algoritmy založené na vývoji populace řešení.
- Mechanismy inspirovány biologickou evolucí (reprodukce/mutace/selekce…)
- Kandidáti na řešení jsou individuálové v dané populaci
- Fitness funkce nám dává odhad kvality řešení
Slovníček¶
- Individuum
- Řešení problému zakódované chromozómem + jeho ohodnocení fitness fukcí.
- Chromozóm
- Celková reprezentace řešení (např. nějaký bitový vektor, string charů, strom, reálná čísla, obrázek,...).
- Fitness
- Mira kvality přirazená k individuu. Označuje jak dobře se adaptovala k prostředí.
- Gen
- Základní jednotka ze které se skládá chromozóm
- Genotyp
- Konkrétní kódování jedince na jeho chromozómu.
- Fenotyp
- Projev genotypu, tedy jeho význam (např. nějaká sekvence čísel může značit rychlost jedince.
Typy¶
- Genetické algoritmy
- Genetické programování - řešení jsou ve formě programů, jejich fitness se určuje dle schopnosti řešení daného výpočetního problému
- Evoluční programování - podobné genetickému programování, ale místo toho se vyvíjí parametry programu (ne program samotný)
- Evoluční strategie
Otázky¶
Selekce¶
Ruletová selekce¶
- Je to algoritmus na selekci jedinců které se budou reprodukovat.
- Každý jedinec má šanci na výběr, ale upřednostňuje výběr lepších jedinců tím, že pravděpodobnost jejich výběru je přímo úměrná jejich fitness funkci (fitness jedince / součet fitness všech jedinců).
-
P_i=\frac{fitness_i}{\sum_{j=i}^{PopSize}{fitness_j}}
-
Turnajová selekce¶
- Náhodně vylosujeme k jedinců a vybereme toho s největší fitness
- Není závislá na konkrétních hodnotách, kterých fitness nabývá
Rank selekce¶
- Rank selekce funguje stejně jako ruletová, ale pravděpodobnost není vypočítána přímo z fitness, ale z pořadí jak dobrý daný jedinec je.
- Např. když máme dva, tak ten lepší (vyšší rank = 2) má PST 0.66 a ten horší (rank = 1) 0.33.
- Toto je robustnější než klasická ruleta.
Jak balancovat exploraci a exploitaci?¶
- Linear scaling
- Přeškálování distribuce fitness hodnot, abychom získali požadovaný selekční tlak.
- Fitness sharing
- Když je hodně podobných jedinců, tak se jejich fitness snižuje (dobří jedinci v hustě zastoupených místech budou mít horší fitness než stejně dobří, kteří jsou sami).
- Elitismus
- Vždy do další generace přeneseme nejlepšího jedince bez jakékoliv změny, aby byla garance nezhoršení se.
- Ostrovní model
- Vyvíjíme několik populací odděleně a občas je nějaká pravděpodobnost, že se část populací zkříží mezi sebou.
- Katastrofa
- Zabijeme většinu populace a necháme přežít jen ty nejsilnější, zbytek doplníme random.
Co je to teorie schémat?¶
- Snaží se analyzovat efekt selekce, crossoveru a mutace aby napomohla
- Hledat důležité části chromozomů
- Jak úspěšně kombinovat dvě existující řešení
- Předpokládá binární reprezentaci řešení, proporciální ruletovou selekci, 1-point crossover a bit-flip mutace.
- Schéma
- Šablona, která definuje sadu řešení, která jsou si nějakým způsobem podobná.
- Obsahuje 0, 1 a * jakožto wildcard symbol, značící libovolnou hodnotu.
- Pokrývá 2^r stringů, kde r je počet použití *
- Např. 1 1 * 0 * značí: 11000, 11100, 11001, 11101.
- Defining length
- Vzdálenost mezi prvním a posledním non-wildcard symbolem (počet pozic kde může 1-point crossover narušit schéma).
- Například: S_a=1*1**10*
- Vzdálenost je 6
- Order
- Počet non-wildcard symbolů (počet pozic kde může bit-flip mutace narušit schéma).
- Například: S_a=1*1**10*
- Order je 4
- Fitness
- Průměrná fitness všech stringů, které schéma reprezentuje.
- Například: S_a=1*1**10*
- Celkově ma 2^4 stringu
- 1 string s fitness 3, 4 s f=4, 6 s f=5, 4 s f=6, 1 s f=7
- f(S_a) = (1 · 3 + 4 · 4 + 6 · 5 + 4 · 6 + 1 · 7)/16 = 80/16 = 5
Jak odhadnu počet jedinců patřících pod schéma v Nté generaci?¶
- m(S, t) je počet jedinců patřící pod schéma S v generaci t
- f_S(t) je průměrná fitness hodnota pro strings patřící do schématu S v generaci t
- f(t) je průměrná fitness hodnota přes všechny strings v populaci.
- Počet jedinců patrici do t+1 generace
-
m(S,t+1)=m(S,t)\frac{f_S(t)}{f(t)}
-