. Perwszy generator Komputerowe generatory lczb losowych 2. Przykłady zastosowań 3. Jak generuje sę lczby losowe przy pomocy komputera. Perwszy generator lczb losowych L. H. C. Tppet - 927 Ksąż ążka - Random Samplng Numbers 4.600 cyfr od 0 do 9, po 4 w kolumnach, na 24 stronach. Powerzchne paraf w Angl (dwe perwsze dwe ostatne cyfry odrzucono). dr nż. Jacek Jarnck 2 2. Przykłady zastosowań generatorów w lczb losowych Kryptografa Całkowane numeryczne (metoda Monte Carlo) Symulacja systemów w masowej obsług Automaty do ger losowych 2.. Przykład z dzedzny kryptograf Szyfrowanu podlegał tekst psany w języku j angelskm. Do szyfrowana użytou yto: słownka,, w którym poszczególnym wyrazom języka j angelskego przypsane zostały y lczby czterocyfrowe, notatnka,, zawerającego cąg g losowo wygenerowanych lczb pęcocyfrowych, dr nż. Jacek Jarnck 3 dr nż. Jacek Jarnck 4
Algorytm szyfrowana :. Kolejne słowa s tekstu zamenono na lczby, używając c słownka s (odstępy pomędzy lczbam przypsanym kolejnym wyrazom pomnęto). 2. Cąg g lczb utworzony w kroku podzelono na lczby pęcocyfrowe. 3. Do kolejnych lczb pęcocyfrowych cągu otrzymanego w kroku 2 dodawano (bez przeneseń) kolejne lczby poberane z notatnka np. 25689 + 38720 ------------- 53309 4.. Usunęto odstępy pomędzy lczbam dr nż. Jacek Jarnck 5 Algorytm deszyfrowana : Deszyfrujący dysponował kopą słownka notatnka.. Odebrany cąg g lczb podzelono na lczby pęcocyfrowe. 2. Od kolejnych lczb pęcocyfrowych odejmowano (bez pożyczek) kolejne lczby poberane z notatnka np. 53309-38720 --------- 25689 3. Usunęto odstępy pomędzy lczbam pęcocyfrowym a następne podzelono otrzymany cąg g na lczby czterocyfrowe. 4. Zastosowano słownk, s zamenając c lczby czterocyfrowe na wyrazy. dr nż. Jacek Jarnck 6 2.2. Przykład lustrujący metodę cąłkowana numerycznego Należy y oblczyć pole S obszaru ogranczonego krzywą opsującą ćwartkę okręgu osam układu współrz rzędnych... Podstawć k = 0. 0 2. Przy pomocy generatora rozkładu równomernego r (jednostajnego na odcnku [0,] ) wygenerować dwe lczby x y. 3. Oblczyć odległość d punktu o współrz rzędnych (x,y) od środka układu. 4. Jeśl d <=, podstawć k = : k+. 5. Powtórzy rzyć krok 2 do 4 n razy. 6. Oblczyć S = k/n. dr nż. Jacek Jarnck 7 Wynk oblczeń (przyblżena lczby π ) : π 4S 4 k/n n =00, π 3,2000 n =000, π 3,040 dr nż. Jacek Jarnck 8 2
2.3. Przykład z dzedzny masowej obsług. System obsług składa sę z n kas. p» 4S(n) n =0.000, π 3.55 n =00.000, π 3.49 2. Do systemu zgłaszaj aszają sę klenc, w ten sposób, że e czas pomędzy pojawenem sę dwóch kolejnych klentów w ma rozkład wykładnczy z parametrem λ. 3. Znany jest algorytm wyboru kasy przez klenta (determnstyczny lub losowy). 4. Obsługa klenta przy kase trwa τ jednostek czasu z odchyłką określon loną rozkładem normalnym z parametram µ σ. dr nż. Jacek Jarnck 9 dr nż. Jacek Jarnck 0 kolejk 2.4. Automat do gry klenc klenc Prezentacja wynku losowana n Tabela wygranych Pytane : Jak średn czas oczekwana klenta na obsług ugę zależy y od lczby kas? Uruchomene losowana Pytane 2 : Jake jest prawdopodobeństwo, że e dla danej lczby kas, czas oczekwana klenta na obsług ugę ne przekroczy 5 mn? generator lczba losowa 2367 BAR tablca BAR BAR do układu wykonawczego dr nż. Jacek Jarnck dr nż. Jacek Jarnck 2 3
2. Jak generuje sę lczby losowe przy pomocy komputera Komputer jest urządzenem determnstycznym generowane w nm lczby ne sąs naprawdę losowe. Używa sę w zwązku zku z tym pojęca, lczby pseudolosowe. Komputerowy generator lczb pseudolosowych opsany jest zależno noścą: x = + f ( x,x,..., x ) x0,x,..., x,... - kolejne lczby wytwarzane przez generator 0 dr nż. Jacek Jarnck 3 3.. Lnowe generatory kongruentne (LCG - Lnear Congruental Generators) Lnowy generator kongruentny opsany jest wzorem: a, c, m, x 0 - całkowte Przykład : x ( ax c) mod m + = + a = 5, c = 3, m = 6, x 0 = 0: 0, 3, 2, 3, 4, 7, 6,, 8,, 0, 5, 2, 5, 4, 9 0, 3, 2, 3, 4, 7, 6,, 8,, 0, 5, 2, 5, 4, 9 0,... dr nż. Jacek Jarnck 4 Przykład 2: a = 3, c = 4, m = 6, x 0 = 0: 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4 0,... Jake wnne być relacje pomędzy a, c, m x 0? Twerdzene Dla generatora LCG o parametrach a, c, m x 0, cąg generowanych lczb losowych ma długod ugość m wtedy tylko wtedy, gdy: c m ne mają wspólnych dzelnków, b = a jest welokrotnośc cą każdej lczby perwszej p, która jest dzelnkem lczby m, b jest welokrotnośc cą 4,, o le m jest też welokrotnośc cą 4. dr nż. Jacek Jarnck 5 Przykład 3: Zależność cągu lczb od x 0. a = 5, c = 3, m = 6, x 0 = 0: 0, 3, 2, 3, 4, 7, 6,, 8,, 0, 5, 2, 5, 4, 9 0, 3, 2, 3, 4, 7, 6,, 8,, 0, 5, 2, 5, 4, 9 0,... a = 5, c = 3, m = 6, x 0 = 7: 7, 6,, 8,, 0, 5, 2, 5, 4, 9, 0, 3, 2, 3, 4 7, 6,, 8,, 0, 5, 2, 5, 4, 9, 0, 3, 2, 3, 4 7,... dr nż. Jacek Jarnck 6 4
3.2. Multplkatywne lnowe generatory kongruentne (MLGC- Multplcatve Lnear Congruental generators) Generator LGC przy c = 0. 0 x + = ( ax ) mod m Podstawowe fakty wynkające z teor dla MLGC: jeśl m = 2 e ( e - lczba całkowta ) to maksymalny okres generatora wynos m/4. jeśl m = p ( p - lczba perwsza ) to maksymalny okres generatora wynos m -. Przykład 4: a = 5, m = 6, x 0 = : a = 5, m = 7, x 0 = :, 5, 9, 3, 5, 9, 3,..., 5, 8, 6, 3, 4, 2, 0, 6, 2, 9,, 4, 3, 5, 7, 5, 8, 6, 3, 4, 2, 0, 6, 2, 9,, 4, 3, 5, 7,... dr nż. Jacek Jarnck 7 dr nż. Jacek Jarnck 8 3.3. Generacja lczb losowych z przedzału [0, ] Po wygenerowanu kolejnej lczby x dokonuje sę przekształcena Przykład 5: a = 5, m = 7, x 0 = : x u = x / m, 5, 8, 6, 3, 4, 2, 0, 6, 2, 9,, 4, 3, 5, 7, 5, 8, 6, 3, 4, 2, 0, 6, 2, 9,, 4, 3, 5, 7,... dr nż. Jacek Jarnck 9 x u = m = x 7 0.0588, 0.294, 0.4706, 0.3529, 0.7647, 0.8235, 0.76, 0.5882 0.942, 0.7059, 0.5294, 0.647, 0.2353, 0.765, 0.8824, 0.48 0.0588, 0.294, 0.4706, 0.3529, 0.7647, 0.8235, 0.76, 0.5882 0.942, 0.7059, 0.5294, 0.647, 0.2353, 0.765, 0.8824, 0.48 0.0588,... 3.4 Jakość generatorów w lczb losowych Pożą żądane cechy generatora: dług okres, "przypadkowość ść" " następstw kolejnych lczb. dr nż. Jacek Jarnck 20 5
3.4.. Dług okres generatora Podstawowe fakty to: jeśl m jest lczbą perwszą to maksymalny okres generatora MLCG wynos m -, m ogranczone możlwoścam arytmetyk komputera np. 32.767 dla 6 btów lub 2.47.483.647 dla 32 btów. Jak skonstruować generator o okrese dłuższym nż wynka to z powyższych ogranczeń? zbudować k generatorów o modułach m, m 2,..., m k, perwszą lczbę cągu { x } wygenerować przy pomocy perwszego generatora, drugą przy pomocy drugego td. używając cyklczne k generatorów, dr nż. Jacek Jarnck 2 Jak maksymalny okres generatora można w ten sposób b uzyskać? Twerdzene 2 Jeśl m, m 2,..., m k są lczbam perwszym jeśl lczby (m j - )/2 ne mają wspólnych podzelnków, to okres generatora jest maksymalny wynos Przykład 6 ( L Ecuyer ): p = k ( m j ) j= 2 k m = 2.4.783.563, a =40.04, m 2 = 2.4.783.399, a 2 =40.692 p = (m -)(m 2 -)/2 2,3 0 0 8 dr nż. Jacek Jarnck 22 3.4.2. Przypadkowość następstw kolejnych lczb (test wdmowy) Analzuje sę rozkład par ( x, x + ) lub ( u, u + ). Przykład 7: a = 3, m = 97 a = 29, m = 97 dr nż. Jacek Jarnck 23 a = 62, m = 32.749 dr nż. Jacek Jarnck 24 6
3.5. Generacja realzacj zmennych losowych o dowolnych rozkładach Jak wygenerować realzacje t, t 2,..., t,... zmennej losowej opsanej przez dystrybuantę F(t ) lub funkcję gęstośc f(t )? Wykorzystuje sę w różny r sposób b generator rozkładu jednostajnego. metoda transformacj rozkładu jednostajnego, metoda akceptacj odrzucana von Neumanna, nne metody (metoda begunowa Boxa- Mullera dla generacj realzacj zmennej losowej o rozkładze normalnym) dr nż. Jacek Jarnck 25 3.5.. Metoda transformacj rozkładu jednostajnego z rozkładu jednostajnego na odcnku [0,] wygenerować lczbę losową u, oblczyć t ze wzoru t = F - (u ). u 0.8 0.6 0.4 0.2 0 0 3 4 5 6 7 8 t - t = F ( u ) F(t) dr nż. Jacek Jarnck 26 Przykład 8: rozkład wykładnczy t = F rozkład normalny F( t ) = F( t t ) = e ( u ) = λ t = F λt ln( ( u ) =? u ) 2 ( τ µ ) exp dτ 2 2πσ 2σ dr nż. Jacek Jarnck 27 3.5.2. Metoda akceptacj odrzucana (von Neumanna) Dana jest funkcja gęstog stośc f(t) spełnaj nająca następuj pujące dwa założena: jest dodatna na ogranczonym przedzale (a, b) równa r zeru poza tym przedzałem, em, jest ogranczona stałą c > 0. 0 Algorytm generacj lczby losowej t :. Wygenerować dwe nezależne ne lczby losowe u u 2 o rozkładach równomernych r na przedzałach, ach, odpowedno (a, b) (0, d), 2. Jeśl u 2 f( u ) podstawć t = u, jeśl ne powtarzać punkt aża do spełnena warunku. dr nż. Jacek Jarnck 28 7
Przykład 9: 9 Generacja lczb z rozkładu beta (dla 0.000 par u, u 2 ) u 2 u pary u, u 2 hstogram t Wydajność metody : W = 44.98% dr nż. Jacek Jarnck 29 8