This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
evolucni_vypocetni_techniky_geneticke_algoritmy_diferencialni_evoluce [2017/01/02 12:14] efox |
evolucni_vypocetni_techniky_geneticke_algoritmy_diferencialni_evoluce [2017/01/04 15:38] (current) efox |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== evoluční algoritmy ====== | ||
+ | * výhoda: pro to prohledávání používají celou populaci řešení | ||
+ | * takže místo jednoho super namakaného horolezce použiju skautský oddíl (kvůli interakci, komunikaci, | ||
+ | * 10 skautů je jako 1000 izolovaných horolezců | ||
+ | |||
====== genetické algoritmy ====== | ====== genetické algoritmy ====== | ||
* patří pod [[heurestické algoritmy]] | * patří pod [[heurestické algoritmy]] | ||
+ | |||
+ | Princip práce genetického algoritmu je postupná tvorba generací různých řešení daného problému. Při řešení se uchovává tzv. **populace**, | ||
+ | |||
+ | |||
=== chromozóm === | === chromozóm === | ||
* je řetezec informací, který v sobě nese vlastnosti a chování každého jedince | * je řetezec informací, který v sobě nese vlastnosti a chování každého jedince | ||
* nejčastěji je reprezentován řetězcem nul a jedniček, kterým je zakódovaná pozice jedince v prostoru možných řešení (aby se pak mohlo dobře křížit a tak, tak je dobrý mít sudé číslo) | * nejčastěji je reprezentován řetězcem nul a jedniček, kterým je zakódovaná pozice jedince v prostoru možných řešení (aby se pak mohlo dobře křížit a tak, tak je dobrý mít sudé číslo) | ||
* můžou být i reálná čísla, matice, vektory | * můžou být i reálná čísla, matice, vektory | ||
+ | * množina chromozómů tvoří populaci | ||
=== gen === | === gen === | ||
Line 13: | Line 23: | ||
=== fitness hodnota === | === fitness hodnota === | ||
+ | {{: | ||
* číselné vyjádření kvality každého jedince | * číselné vyjádření kvality každého jedince | ||
+ | * charakterizuje vhodnost chromozómu | ||
* obvykle je to reálné číslo <0,1> (ale nemusí) | * obvykle je to reálné číslo <0,1> (ale nemusí) | ||
+ | * čím je tam víc jedniček, tím vyšší fitness hodnota (ale nemusí se to vždycky brát podle tohoto pravidla) | ||
+ | |||
+ | |||
+ | ==== operátory ==== | ||
- | {{ : | ||
- | * operátory: | ||
* **křížení** (jednobodové, | * **křížení** (jednobodové, | ||
* **mutace** (náhodně invertuju jeden gen v řetězci) | * **mutace** (náhodně invertuju jeden gen v řetězci) | ||
* **reprodukce** (pouze zkopíruju všechny geny) | * **reprodukce** (pouze zkopíruju všechny geny) | ||
+ | ==== jak to funguje ==== | ||
+ | - inicializace - vygeneruju to náhodně ty řetězce, prostě 0 a 1 -> pak to aji ohodnotím podle fitness fce | ||
+ | - selekce - vážená ruleta, což je jako obyčejná ruleta, ale počítá se tam i s pravděpodobností (sečtu všechny fitness hodnoty a každý řetězec tou hodnotou vydělím. V této generaci se tedy s největší pravděpodobností nevyskytují nejslabší jedinci. | ||
+ | - křížení - výměna informací mezi dvěma jedinci. Může být jednobodové nebo dvoubodové. Ty dva řetězce, mezi kterými bude probíhat výměna jsou vybrány náhodně. | ||
+ | {{:: | ||
+ | - mutace - pokud mám podmínku, že třeba velmi kvalitní řetězec obsahuje na 4. pozici jedničku, ale takový řetězec nemám, tak ani křížením ani selekcí nedosáhnu toho, aby na 4. pozici ta jednička byla. Proto zmutuju řetězec na 4. pozici a mám to! | ||
+ | - reprodukce - abych mohla zase skočit na bod č.2, je potřeba vybrat ty nejsilnější jedince - tudíž ty řetězce, které mají nejvyšší fitness hodnotu. A slabí jedinci se nahradí kopiemi těch silných a jede se znova dokola. | ||
- | Princip práce genetického algoritmu je postupná tvorba generací různých řešení daného problému. Při řešení se uchovává tzv. **populace**, | + | {{:: |
- | * Chromozóm má pevnou délku, jednotlivé pozice tvoří geny. Geny reprezentuje často binární 0 nebo 1, ale obecně mohou mít libovolnou hodnotu. Množina chromozómů tvoří populaci. Každý chromozóm v populaci má definovánu hodnotící funkci, nazývanou fitness funkce, která charakterizuje vhodnost chromozómu. | ||