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:39] 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) | * čí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 ==== | ||
Line 24: | Line 36: | ||
* **reprodukce** (pouze zkopíruju všechny geny) | * **reprodukce** (pouze zkopíruju všechny geny) | ||
==== jak to funguje ==== | ==== jak to funguje ==== | ||
- | - inicializace | + | - inicializace |
- | - selekce | + | - selekce |
- | - křížení | + | - křížení |
- | - mutace | + | {{:: |
- | | + | - 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! |
- | - náhrada stávající generace novou generací | + | - reprodukce |
- | | + | |
+ | {{:: | ||
- | 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. | ||