Princip optimalizačních metod inspirovaných přírodou

Podobné dokumenty
Princip gradientních optimalizačních metod

Jak se matematika poučila v biologii

Princip řešení soustavy rovnic

Metaheuristiky s populacemi

20. května Abstrakt V následujícím dokumentu je popsán způsob jakým analyzovat problém. výstřelu zasáhnout bod na zemi v definované vzdálenosti.

STATISTICKÉ ODHADY Odhady populačních charakteristik

Genetické algoritmy. Informační a komunikační technologie ve zdravotnictví

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Inovace studia molekulární a buněčné biologie reg. č. CZ.1.07/2.2.00/

PŘEDNÁŠKA 03 OPTIMALIZAČNÍ METODY Optimization methods

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Základní spádové metody

Binární vyhledávací stromy pokročilé partie

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

STANOVENÍ SPOLEHLIVOSTI GEOTECHNICKÝCH KONSTRUKCÍ. J. Pruška, T. Parák

Rekonstrukce diskrétního rozdělení psti metodou maximální entropie

Katedra geotechniky a podzemního stavitelství

Regresní analýza 1. Regresní analýza

Úvod do optimalizace, metody hladké optimalizace

P13: Statistické postupy vyhodnocování únavových zkoušek, aplikace normálního, Weibullova rozdělení, apod.

Genetické algoritmy. a jejich praktické využití. Pavel Šturc. průmyslu, stejně tak je zde uvedeno i několik případů jejich úspěšné implementace.

Odhad stavu matematického modelu křižovatek

Numerická stabilita algoritmů

3 Bodové odhady a jejich vlastnosti

Normální (Gaussovo) rozdělení

Definice spojité náhodné veličiny zjednodušená verze

Náhodné (statistické) chyby přímých měření

A0M33EOA: Evoluční optimalizační algoritmy

4EK213 Lineární modely. 10. Celočíselné programování

Numerické metody optimalizace - úvod

Genetické algoritmy. Vysoká škola ekonomická Praha. Tato prezentace je k dispozici na:

Statistika a spolehlivost v lékařství Charakteristiky spolehlivosti prvků I

DIPLOMOVÁ PRÁCE OPTIMALIZACE MECHANICKÝCH

Odhad parametrů N(µ, σ 2 )

4. Aplikace matematiky v ekonomii

Numerické metody a programování. Lekce 8

Náhodné chyby přímých měření

Klasifikace a rozpoznávání. Lineární klasifikátory

Interpolace, ortogonální polynomy, Gaussova kvadratura

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

PRAVDĚPODOBNOST A STATISTIKA

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání.

Apriorní rozdělení. Jan Kracík.

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

ANALÝZA A KLASIFIKACE DAT

Lingebraické kapitolky - Analytická geometrie

I. D i s k r é t n í r o z d ě l e n í

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

Bayesovské metody. Mnohorozměrná analýza dat

p(x) = P (X = x), x R,

4. Na obrázku je rozdělovací funkce (hustota pravděpodobnosti) náhodné veličiny X. Jakou hodnotu musí mít parametr k?

Únosnost kompozitních konstrukcí

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie

LWS při heteroskedasticitě

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

STATISTICKÉ ZJIŠŤOVÁNÍ

Úvod do teorie odhadu. Ing. Michael Rost, Ph.D.

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

Téma 3 Metoda LHS, programový systém Atena-Sara-Freet

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

15. T e s t o v á n í h y p o t é z

Genetické algoritmy a jejich praktické využití

Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy

Téma 22. Ondřej Nývlt

Vícerozměrná rozdělení

správně - A, jeden celý příklad správně - B, jinak - C. Pro postup k ústní části zkoušky je potřeba dosáhnout stupně A nebo B.

z Matematické statistiky 1 1 Konvergence posloupnosti náhodných veličin

1. Úvod do genetických algoritmů (GA)

Markov Chain Monte Carlo. Jan Kracík.

Fyzikální korespondenční seminář MFF UK

ZPRACOVÁNÍ SIGNÁLŮ Z MECHANICKÝCH. Jiří Tůma

Pokročilé operace s obrazem

PRAVDĚPODOBNOST A STATISTIKA

Value at Risk. Karolína Maňáková

AVDAT Nelineární regresní model

Manuál pro zaokrouhlování

Pravděpodobnost, náhoda, kostky

Charakterizace rozdělení

Úlohy nejmenších čtverců

Lineární klasifikátory

MODEL TVÁŘECÍHO PROCESU

Propojení výuky oborů Molekulární a buněčné biologie a Ochrany a tvorby životního prostředí. Reg. č.: CZ.1.07/2.2.00/

Kombinatorická minimalizace

Systém rizikové analýzy při sta4ckém návrhu podzemního díla. Jan Pruška

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

Analýza spolehlivosti tlakové nádoby metodou Monte Carlo

jevu, čas vyjmutí ze sledování byl T j, T j < X j a T j je náhodná veličina.

Algoritmizace prostorových úloh

Evoluční výpočetní techniky (EVT)

Pravděpodobnost, náhoda, kostky

Příbuznost a inbreeding

PRIMITIVNÍ FUNKCE DEFINICE A MOTIVACE

1. Přednáška. Ing. Miroslav Šulai, MBA

Vybraná rozdělení náhodné veličiny

PRAVDĚPODOBNOST A STATISTIKA

Posouzení stability svahu

Detekce interakčních sil v proudu vozidel

Filosofie konstruování a dimenzování mechanických částí vozidel z hlediska jejich funkce a provozního zatěžování

Všechno, co jste chtěli vědět z teorie pravděpodobnosti, z teorie informace a

teorie elektronických obvodů Jiří Petržela citlivostní a toleranční analýza

Transkript:

Princip optimalizačních metod inspirovaných přírodou Tomáš Kroupa 20. května 2014 Tento studijní materiál je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Obsah Úkol a základní princip Nutné znalosti Jednotlivé kroky 0 Počáteční populace 1 Výběr jedinců 2 Křížení/rekombinace 3 Mutace 4 Vyhodnocení 5 Aktualizace archívu 6 Ukončení výpočtu Zamyšlení Jednotlivé typické algoritmy a nastavení Typy

Úkol a základní princip Úkol a základní princip Nutné znalosti Jednotlivé kroky 0 Počáteční populace 1 Výběr jedinců 2 Křížení/rekombinace 3 Mutace 4 Vyhodnocení 5 Aktualizace archívu 6 Ukončení výpočtu Zamyšlení Jednotlivé typické algoritmy a nastavení Typy

Úkol Nalézt min x {f (x)} (1) kde f je funkcí mnoha proměnných (parametrů) f = f(x 1, x 2,..., x N ), (2) na oblasti Ω, která je definovaná tak, že x 1 x lb 1, xub 1 atd. Často se značí x = [x 1, x 2,..., x N ] T. (3) Často je nutné uvažovat ještě podmínky rovnosti a nebo nerovnosti 0 h in (x) a nebo 0 = h eq (x). (4) Úkol a základní princip 4/36

Úkol Funkce f nemusí být popsaná jen analyticky, ale i tak, že pomocí parametrů x se postaví MKP model a výstup bude například maximální průhyb modelu, nebo první vlastní frekvence. A funkce f může být rozdíl mezi vlastní frekvencí, na kterou chceme model naladit nebo ten samotný průhyb, který chceme minimalizovat apod. Úkol a základní princip 5/36

Praktické příklady 1. Identifikace materiálových parametrů f Rozdíl mezi MKP a exp. x E 1, E 2, σ y,... 0 h Relaxační časy u viskoelastického modelu větší než 0 2. Minimalizace hmotnosti lávky f Hmotnost lávky x Všechny možné rozměry, skladba vrstev laminátu,... 0 h Průhyb, První vlastní frekvence > 6 Hz 3. Identifikace místa dopadu impaktoru f Rozdíl mezi signály z analýzy a exp. x Pozice razníku v analýze 0 h Hodnoty rázové funkce musí být vždý vetší nebo rovny 0 Úkol a základní princip 6/36

Princip Z generace na generaci hledáme lepší řešení pomocí matematicky popsaných jevů jako jsou křížení genů nebo mutace genů a definujeme výběr nejlepších jedinců z dané generace. Viz příroda... Rodiče, kteří se našli mezi těmi nejlepšími lidmi;-), přenáší na děti geny. Geny se zkříží, zmutují a je z toho (občas ;-)) lepší jedinec. Včelky hledají květiny na opylovaní a chtějí najít tu nejsladší. Tak vysílají do různých míst dělnice. Když se dělnice vrátí, předají si informace, jak sladké byly květy a kde je nalezli. Další generace výsadku poupraví cíle letu podle svého nejvetšího úspěchu s přihlédnutím k nejlepším výsledkům celého úlu. Úkol a základní princip 7/36

Vývojový diagram Vypočte se definovaný počet řešení po celé oblasti, kterou prohledáváme. Vybere se definovaný počet nejlepších řešení z předchozí generace a archivu. Zkříží se parametry, aby se dosáhlo diverzity v další generaci. První generace Výběr jedinců Křížení 0 1 2 Mutace 3 Zkříženým jedincům ještě zmutujeme vybrané parametry. Poslední generace + _ Ukončení výpočtu? 6 Vyhodnocení 4 Aktualizace archívu 5 Výpočet další generace. Podle přání si schováme/neschováme nejlepší jedince, kolem kterých chceme dále pátrat. Úkol a základní princip 8/36

Nutné znalosti Úkol a základní princip Nutné znalosti Jednotlivé kroky 0 Počáteční populace 1 Výběr jedinců 2 Křížení/rekombinace 3 Mutace 4 Vyhodnocení 5 Aktualizace archívu 6 Ukončení výpočtu Zamyšlení Jednotlivé typické algoritmy a nastavení Typy

Fittness Tzv. fitness f f i (x) (i číslo designu) odpovídá tomu jak dobrý je daný jedinec (jakou hodnotu má f i (x)). Nejlepší jedinec z party určené k reprodukci dostane nejvyšší hodnotu. Příklad Řekněme, že minimalizujeme průhyb nosníku (f i je tedy hodnota průhybu nosníku v designu i). i f i f f i 1 0.1 3 2 10.5 1 3 1.2 2 Nutné znalosti 10/36

Fittness poznámka Stanovovat f itness není úplně šikovné v každém kroku tím, že škálujeme funkci podle nejvyšší hodnoty dosažené během celé optimalizace, třeba takto divně: f f i (x) = 1 1 + f i max(f j ) j kde f i je minimalizovaná funkce., kde j = 1,..., počet designů, (5) Nutné znalosti 11/36

Fittness uvažování omezení Pokud uvažujeme omezení, lze stanovit f itness takto: ( n eq ) F f i (x) = f f i (x) n in cliff + h eq (x) + min [0, h in (x)] k=1 k=1 kde parametr clif f je volen vzhledem k očekávané velikosti minimalizované funkce. Manuál optislangu se chlubí, že nejlepší je to dělat jako oni a využít následující metodu... (6) Nutné znalosti 12/36

Fittness uvažování omezení 1. Rozdělit populaci (všechny dosud vypočtené designy) na ty které vyhovují všem podmínkám (řešitelné) a ty, které ne (neřešitelné). 2. Stanovit fitness f f i pro všechny řešitelné designy na základě hodnoty f i. Je jich µ a tak ten s nejnižší hodnotou f i dostane například hodnotu µ a nejhorší třeba 1. 3. Stanovit rank všech neřešitelných designů na základě kritéria dominance 1. 4. Stanovit f itness všech neřešitelných designů přidáním nejhorší hodnoty fitness řešitelných designů 2. 1 Autor si není jistý, co má toto kritérium znamenat u problému s jednou minimalizovanou funkcí! 2 Takže fitness neřešitelných je záporná? - tímto se asi vyhneme znalosti parametru cliff Nutné znalosti 13/36

Jednotlivé kroky Úkol a základní princip Nutné znalosti Jednotlivé kroky 0 Počáteční populace 1 Výběr jedinců 2 Křížení/rekombinace 3 Mutace 4 Vyhodnocení 5 Aktualizace archívu 6 Ukončení výpočtu Zamyšlení Jednotlivé typické algoritmy a nastavení Typy

0 Počáteční populace Ručně Z předchozích analýz. Pravidelné rozmístění bodů pokud využiji všechny rohy a prostředky může být problém časově neřešitelný díky nespočitatelnému množství výpočtů (designů). Monte Carlo nerovnoměrné rozmístění výpočtů (designů). Latin Hypercube nerovnoměrnější rozmístění výpočtů (designů). Jednotlivé kroky 0 Počáteční populace 15/36

1 Výběr jedinců ranking Proces, při kterém se vyberou rodiče pro další generaci potomků. Jedinci se vyberou z archívu a z nejlepších v předchozí generaci. Lineární ranking Z µ jedinců dostane ten nejlepší fitness f f i = µ a nejhorší fitness f f i = 1. rank(i) f f i (7) Exponenciální ranking Tolik neupřednostňuje nejlepší jedince. ( ) rank(i) = f f i min f f i=1..µ i + 1 (8) Jednotlivé kroky 1 Výběr jedinců 16/36

1 Výběr jedinců výběr Ruleta Virtuální losování jako při ruletě, kdy velikost chlívečku je úměrná ranku. slot(i) = µ rank(i) rank(i) i=1 0, 1 (9) µ rank(i) = 1 (10) i=1 Vždy se losuje patřičný počet jedinců pro reprodukci zvlášť. p k 0, 1, k = 1,..., g (11) Jednotlivé kroky 1 Výběr jedinců 17/36

1 Výběr jedinců výběr Stochastic universal sampling Virtuální losování jako při ruletě, kdy velikost chlívečku je úměrná ranku. Vždy se losuje patřičný počet jedinců pro reprodukci tak, že se pravidelně rozmístí kolem osudí rulety a zatočí se jen jednou. p 0 = 1 R 0, 1, k = 1,..., g (12) µ p k = p 0 + k 1, k = 1,..., g (13) µ Jednotlivé kroky 1 Výběr jedinců 18/36

1 Výběr jedinců výběr Výběr pomocí turnaje 1. Náhodně se vybere předem určený počet jedinců z archivu a současné generace. 2. Ten co má nejlepší rank (v tomto případě stačí fittness) je vybrán k reprodukci. Velikost turnaje může být od 2 do velikosti generace. Čím větší turnaj tím větší upřednostňování nejlepšího jedinec z celé generace. Jednotlivé kroky 1 Výběr jedinců 19/36

2 Křížení/rekombinace myšlenka Proces, kdy dva rodiče, zkříží parametry (geny, chromozomy) a vyprodukují dva potomky. Dominantní vyhledávací operátor pro genetické algoritmy Příklad: Mějme dva rodiče s parametry R 1 = [1, 2] a R 2 = [3, 4] a skřížíme jejich parametry a dostaneme dva potomky, například P 1 = [3, 2] a P 2 = [1, 4] Způsobů křížení existuje celá řada. Jednotlivé kroky 2 Křížení/rekombinace 20/36

2 Křížení/rekombinace typy Singlepoint/multipoint crossover 1. Náhodně se vybere předem určený počet bodů pro křížení. Na ukázku provedeme dvou bodový crossover, vyberou se náhodně dvě čísla i a j, kdy i j. 2. Parametry rodičů (celkem jich je n) se rozdělí do sekcí. R 1 = [ r1, 1..., ri 1, ri+1, 1..., rj 1, rj+1, 1..., rn 1 ] (14) R 2 = [ r1, 2..., ri 2, ri+1, 2..., rj 2, rj+1, 2..., rn 2 ] (15) 3. Každá druhá sekce se prohodí. P 1 = [ r1, 1..., ri 1, ri+1, 2..., rj 2, rj+1, 1..., rn 1 ] P 2 = [ r1, 2..., ri 2, ri+1, 1..., rj 1, rj+1, 2..., rn 2 ] (16) (17) Jednotlivé kroky 2 Křížení/rekombinace 21/36

2 Křížení/rekombinace typy Aritmetický crossover 1. Předem se definuje číslo λ 0, 1. 2. Provede se plně deterministický výpočet. p 1 i = (1 λ) r 1 i + λr 2 i (18) p 2 i = (1 λ) r 2 i + λr 1 i (19) Jednotlivé kroky 2 Křížení/rekombinace 22/36

2 Křížení/rekombinace typy Simulovaý binární crossover 3 lze provést pomocí vztahů kde i = 1,..., n a p 1 i = 0.5 [( r 1 i + r 2 i ) βi R 2 R 1 ] (20) p 2 i = 0.5 [( r 1 i + r 2 i ) + βi R 2 R 1 ] (21) β i = (α i u) 1 1 nc+1, pokud u α i (22) β i = 1 ( 2 α i u ) 1 1 nc+1, pokud u > α i (23) kde n c 0, ) je parametr náhodného rozdělení, u 0, 1 je nahodné číslo a α i = 2 δ nc+1 i a 2 [ ] δ i = 1 + ri 2 min (r 1 r1 i ri lb ), (ri ub ri 2 ) (24) i 3 To, že se β počítá pro každé i zvlášť není jisté, ale autor si nedovede představit, jak by to mělo fungovat jinak. Jednotlivé kroky 2 Křížení/rekombinace 23/36

2 Křížení/rekombinace poznámky Každý typ křížení se hodí pro jiný typ analýzy. Volba křížení závísí na zkušenostech velectěného pána/paní kteří provádí danou analýzu. Jednotlivé kroky 2 Křížení/rekombinace 24/36

3 Mutace základní myšlenka Proces, kdy se parametry potomků náhodně pozmění pomocí náhodného rozdělení, tak aby nebyly jen pouhým zkřížením rodičů. Dominantní vyhledávací operátor pro evoluční algoritmy p t+1 i = p t i + N ( 0, σi t ) (25) Ještě lze definovat jak často dochází k mutaci, často se doporučuje zadat tzv. mutation rate = 1 n (26) kde n je počet parametrů (vstupních = x i ) Jednotlivé kroky 3 Mutace 25/36

3 Mutace nastavení a typy Ruční zadání Rozptyl normálního rozdělení lze zadat ručně. Sebe-adaptivní mutace Ty parametry které mají zmutovat se zmutují viz. (25) Ostatní parametry se zmutují pomocí logaritmického rozdělení pravděpodobnosti s jiným rozptylem 4. Adaptivní mutace určená omezením Rozptyl normálního rozdělení pravděpodobnosti pro mutaci je závislý na vzdálenosti daného parametru od meze, kdy nejsou splněny podmínky nerovnosti. Detaily Manuál optislangu je aktivní jen, když jsou podmínky nerovnosti v modelu. 4 Viz. google, wikipedie a manuál optislangu. Jednotlivé kroky 3 Mutace 26/36

3 Mutace nastavení a typy Modulovaná adaptivní mutace Rozptyl normálního rozložení pravěpodobnosti je upravován během chodu optimalizace za pomocí informací z úspěšných mutací (potomek má lepší fitness než rodič) 5 5 Zatím autor nenašel inteligentní a stručný vztah, který tohle popisuje Jednotlivé kroky 3 Mutace 27/36

4 Vyhodnocení Provedení výpočtů minimalizované funkce f i a hodnot omezeních h in a h eq. U nás nepochybně pomocí Abaqusu ;-). Jednotlivé kroky 4 Vyhodnocení 28/36

5 Aktualizace archívu (µ, λ) Schováme si µ nejlepších jedinců z generace vypočtené v kroku 4. (Neuchováme si žádného nejlepšího jedince z celé populace) (α(µ) + λ) Schováme si µ nejlepších jedinců z nejlepších α jedinců z populace bez jedinců z generace vypočtené v kroku 4 a přidáme λ nových jedinců z generace vypočtené v kroku 4. (Uchováme si vždy pár dobrých jedinců z celé populace.) Toto je dobrý kompromis. (µ + λ) Schováme si µ nejlepších jedinců z populace bez jedinců z kroku 4 a přidáme λ nových jedinců z generace vypočtené v kroku 4. (uchováme si µ nejlepších jedinců z celé populace po celou dobu výpočtu) Toto je nebezpečné pokud jsme náhodou uvízli v lokálním minimu. Jednotlivé kroky 5 Aktualizace archívu 29/36

6 Ukončení výpočtu Výpočet se ukončí: Pokud je počet generací větší než uživatelem povolený počet. Pokud se po určitém počtu generací nenajde lepší jedinec. Jednotlivé kroky 6 Ukončení výpočtu 30/36

Zamyšlení Úkol a základní princip Nutné znalosti Jednotlivé kroky 0 Počáteční populace 1 Výběr jedinců 2 Křížení/rekombinace 3 Mutace 4 Vyhodnocení 5 Aktualizace archívu 6 Ukončení výpočtu Zamyšlení Jednotlivé typické algoritmy a nastavení Typy

Zamyšlení Uvažte lidskou společnost (planetu Zemi)... Pokud je naše společnost jen algoritmus, proč už dávno nebyl ukončen? Jak pracovník BVC 6 nebo MVC 7 nastavil náš výpočet? Snad běžíme někde na serveru a nikdo o nás neví, vzhledem k tomu, že odpověď na základní otázku Života, Vesmíru a vůbec je známá už nějaký čas 8. 6 Božského Výpočtového Centra 7 Mimozemského Výpočtového Centra 8 Odpověď je 42, pro ty, kteří by náhodou nevěděli ;-). Zamyšlení 32/36

Obsah Úkol a základní princip Nutné znalosti Jednotlivé kroky 0 Počáteční populace 1 Výběr jedinců 2 Křížení/rekombinace 3 Mutace 4 Vyhodnocení 5 Aktualizace archívu 6 Ukončení výpočtu Zamyšlení Jednotlivé typické algoritmy a nastavení Typy

Typy Genetický algoritmus Zejména křížení Evoluční algoritmus Zejména mutace Single design improvement algoritmus Čisté prohledávání kolem nalezeného nejlepšího řešení. Nejlepší řešení je to, které má nejmenší hodnotou minimalizované funkce a nejméně porušených omezujících podmínek. Takový jedinec je zvolen jako střed další generace. Kolem tohoto jedince se provede vzorkování pomoci latin hypercube na předem definovaném okolí. Jednotlivé typické algoritmy a nastavení Typy 34/36

Typy Particle swarm algoritmus Začne se generací a každý jedinec si pamatuje svoje nejlepší řešení a zároveň se nestydí inspirovat se globálním nejlepším řešením. vt+1 i = w t vt i + c p,t R 0, 1 ( x i p,t x i t) + cg,t R 0, 1 ( x i g,t x i ) t (27) x i t+1 = x i t + v i t+1 (28) kde i je číslo designu, t je číslo generace, x i p,t je nejlepší řešení jedince, x i g,t je nejlepší řešení ze všech jedinců, x i t je kombinace vstupních parametrů v daném designu, w t je váhový koeficient (?vektor?), c p,t kognitivní koeficient (koeficient akcelerace jedince), c g,t sociální koeficient (koeficient akcelerace hejna), vt+1 i kam se pohnou jedinci v další generaci (dalším výletu včelek pro pyl na poli) a R 0, 1 náhodné čílo mezi 0 a 1. Jednotlivé typické algoritmy a nastavení Typy 35/36

Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky v rámci projektu č. CZ.1.07/2.2.00/28.0206 Inovace výuky podpořená praxí. Tento studijní materiál je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.