GENEROVÁNÍ HODNOT NÁHODNÝCH VELICIN PSEUDONÁHODNÁ ČÍSLA
Probíraná témata Pseudonáhodné čísla, proč vlastně ? Generování Algoritmy Testování
Typy simulačních modelů DETERMINISTICKÉ STOCHASTICKÉ (činnost systému ovlivňovaná náhodnými faktory)
simulační experimenty běžného rozsahu = několik set tisíc hodnot K provedení simulace je potřeba získat náhodná čísla tj. numerickou realizaci náhodných veličin ŘEŠENÍ A B Přímé zakomponování náh. jevů (do sim. modelu), jenž byly stanoveny na základě údajů napozorovaných na real. modelu 1. Stanovení pravděpodobnostních zákonitostí (typ rozdělení náh. veličiny a její parametry) na základě údajů napozorovaných na real. modelu !!! PROBLÉM !!! simulační experimenty běžného rozsahu = několik set tisíc hodnot 2. Generování hodnot náhodných jevů na základě zjištěných pravděpodobnostních zákonitostí v průběhu chodu sim.modelu
NÁHODA, GENERÁTORY NÁHODNÝCH ČÍSEL
Náhoda „Nic není náhoda“ aneb „Existuje náhoda nebo je vše předurčeno?“ „Náhoda je blbec“, „Nehoda není náhoda“ Náhoda = něco, co může ale nemusí nastat, přičemž existenci či neexistenci daného jevu „nelze“ ovlivnit.
Náhodný pokus, náhodný jev, náhodná veličina Náhodný pokus = pokus, jehož výsledek se od jednoho provedení pokusu k druhému (při stejných výchozích podmínkách) obecně mění (hod kostkou, mincí, …) Náhodný jev = výsledek náhodného pokusu (např. „jednička“ na kostce) Náhodná veličina = je definovaná, pokud přiřadíme náhodnému jevu jednoznačně nějaké číslo (náh.veličina X (počet ok na kostce) = x ; x=1, …, 6 )
Základní druhy rozdělení DISKRÉTNÍ ROZDĚLENÍ SPOJITÁ ROZDĚLENÍ Rovnoměrné rozdělení Binomické rozdělení Poissonovo rozdělení Negativně binomické rozdělení Pascalovo rozdělení Geometrické rozdělení Hypergeometrické rozdělení Logaritmické rozdělení Rovnoměrné rozdělení Normální rozdělení Exponenciální rozdělení Laplaceovo rozdělení Logistické rozdělení Maxwellovo rozdělení Studentovo rozdělení Fischer-Snedecorovo rozdělení Χ² rozdělení (Chí kvadrát)
Distribuční funkce Distribuční funkce F(x) = popisuje rozložení pravděpodobnosti mezi náhodné jevy - pro každý náhodný jev definována náhodná veličina X, která nabývá hodnot x F(x) = P(X <= x) F(x) je rovno pravděpodobnosti, že náhodná veličina X nabude hodnoty menší nebo rovno x.
F(x) … příklad – hod kostkou 1 5/6 2/3 1/2 1/3 1/6 1 2 3 4 5 6
Hustota pravděpodobnosti f(x) f(x) = dF(x) / dx … derivace spojité distribuční funkce F(x) Pro Normální rozdělení N(0,1):
Základní rozdělení generátorů náhodných čísel PRIMÁRNÍ GENERÁTORY generování posloupnosti náhodných čísel s rovnoměrným rozdělením SEKUNDÁRNÍ GENERÁTORY transformace rovnoměrně rozdělených veličin na veličiny s libovolným rozdělením
Generování náhodných čísel Nezávislé hodnoty rovnoměrného rozdělení na intervalu (0,1) … R(0,1) R(0,1): f(x) = 1 pro x (0,1) jinak f(x) = 0 F(x) = 0 pro x 0 F(x) = x pro x (0,1) F(x) = 1 pro x 1
Jak generovat náhodná čísla Tabulky náhodných čísel Mechanické generátory Fyzikální či chemické generátory Aritmetické generátory
Tabulka náhodných čísel pro výpočty malého rozsahu (Tippetove tabulky – 40 000 čísel, atd ). po převedení do elektronické podoby počítač z ní načítá náhodná čísla. Příklad tabulky náhodných čísel: 44 48 87 57 84 79 95 32 47 26 35 19 50 14 75 73 87 30 96 19 86 59 32 00 81 73 70 91 92 67 34 75 58 76 73 83 31 55 63 53 66 64 55 20 53 67 76 03 19 46 61 57 86 93 35 27 28 29 68 00 47 47 98 96 Nevýhody: i nejrozsáhlejší tabulky jsou již malé
Mechanické generátory nejvíce známé hrací kostka při hře, nebo házení mincí. tam, kde na výsledku hodně záleží, jsou pro účely losování zhotoveny speciální přístroje (např. pro sázkové hry podniku SAZKA). Nevýhoda: pro simulaci na počítači nepoužitelné.
Fyzikální generátory Využití jistých fyzikálních pochodů (principů), které mají náhodný charakter, např. interval mezi dopadem částic, šumové generátory využívající vlastnosti polovodičového přechodu, atd. Výhoda: jsou náhodné Nevýhoda: nelze je reprodukovat, opakovat simulaci za stejných podmínek
Aritmetické generátory nejpoužívanějšími generátory pro účely počítačové simulace, náhodná čísla tvořena aritmetickými procedurami pomocí rekurentních výpočtů v nichž následující číslo deterministicky závisí na jednom či více předchozích číslech. čísla takto získaná označujeme jako čísla pseudonáhodná (jde o výpočet, nikoliv o náhodu) Generování náhodných čísel tedy spočívá v paradoxu, že náhoda může být vypočtena!
Kongruenční generátory Lineární kongruenční generátory (Lehmer, 1948) Smíšený xn+1 = a xn + c (mod m) Multiplikativní xn+1 = a xn (mod m) Aditivní, např. xn+1 = xn + xn-1 (mod m) x0, a, c, m – vhodně zvolená čísla m – modulo m Proměnná x může nabývat pouze konečného počtu hodnot P, platí P<=m, P je perioda generátoru.
Vliv nastaveni konstant x, c, a, m na periodu P
Vliv nastaveni konstant x, c, a, m na periodu P
Vliv nastaveni konstant x, c, a, m na periodu P
Testování náhodných čísel Ověření, zda generátor poskytuje hodnoty, které lze považovat za nezávislé hodnoty rozdělení R(0,1). tzv. empirické testy náhodnosti (hodnocení na základě statistik získaných z generovaných posloupnosti a jejich porovnání s hodnotami statistik vypočtenými za předpokladu náhodnosti) testy teoretické, vycházející z teorie čísel. žádný test ovšem nedává definitivní jistotu. Úspěšnost v několika testech zvyšuje důvěru v náhodnost čísel. Čísla generovaná počítačem jsou prohlášena za náhodná, jestliže testy nemohou odhalit rozdíl mezi čísly získané aritmetickým generátorem a skutečně náhodnou posloupností.
Metody transformace náhodných čísel na hodnoty náhodných veličin Vygenerujeme náhodné číslo z intervalu (0,1), to pak transformujeme pomocí vhodné metody na náhodnou veličinu zvoleného rozdělení (rovnoměrného, normálního, …) Metoda inverzní transformace Zamítací metoda Kompoziční metoda
Metoda inverzní transformace Předpoklad: Existuje rostoucí distribuční funkce F(x) pro náhodnou veličinu X a také funkce k ní inverzní F-1(x) Nalezne se inverzní funkce k distribuční funkci požadovaného rozdělení. Generuji hodnoty R(0,1) a pomocí inverzní funkce získám požadované hodnoty. Příklad: Pokud má požadovaná náhodná veličina distribuční funkci F(x) a máme-li generátor spojitého rozdělení U na intervalu (0,1) lze veličinu X s požadovaným rozdělením získat jako X=F-1(U) ( kvantilová funkce) X F-1 U b a 1
Literatura Hušek,R.-Lauber,J.: Simulační modely, SNTL/Alfa Praha 1987