Komputerowe generatory liczb losowych
Transkrypt
Komputerowe generatory liczb losowych
1. Pierwszy generator liczb losowych Komputerowe generatory liczb losowych L. H. C. Tippet - 1927 Książ ka - Random Sampling Książka Numbers 1. Pierwszy generator 41.600 cyfr od 0 do 9, po 4 w kolumnach, na 24 stronach. 2. Przykł Przykłady zastosowań zastosowań 3. Jak generuje się się liczby losowe przy pomocy komputera Powierzchnie parafii w Anglii (dwie pierwsze i dwie ostatnie cyfry odrzucono). dr inż inż. Jacek Jarnicki 2. Przykł Przykłady zastosowań zastosowań generatoró generatorów liczb losowych 2 2.1. Przykł Przykład z dziedziny kryptografii Szyfrowaniu podlegał podlegał tekst pisany w ję języku angielskim. • Kryptografia Do szyfrowania uż użyto: yto: • Cał Całkowanie numeryczne (metoda Monte Carlo) Carlo) § • Symulacja systemó systemów masowej obsł obsługi słownika, ownika, w któ którym poszczegó poszczególnym wyrazom ję języka angielskiego przypisane został zostały liczby czterocyfrowe, • Automaty do gier losowych § dr inż inż. Jacek Jarnicki 3 notatnika, notatnika, zawierają zawierającego cią ciąg losowo wygenerowanych liczb pię pięciocyfrowych, dr inż inż. Jacek Jarnicki 4 1 Algorytm deszyfrowania : Algorytm szyfrowania : Deszyfrują Deszyfrujący dysponował dysponował kopią kopią słownika i notatnika. notatnika. 1.. Kolejne sł słowa tekstu zamieniono na liczby, używają ywając sł słownika (odstę (odstępy pomię pomiędzy liczbami przypisanymi kolejnym wyrazom pominię pominięto). 1. Odebrany cią ciąg liczb podzielono na liczby pię pięciocyfrowe. 2. Od kolejnych liczb pię pięciocyfrowych odejmowano (bez poż pożyczek) kolejne liczby pobierane z notatnika np. 2. Cią Ciąg liczb utworzony w kroku 1 podzielono na liczby pię pięciocyfrowe. 53309 - 38720 --------25689 3. Do kolejnych liczb pię pięciocyfrowych cią ciągu otrzymanego w kroku 2 dodawano (bez przeniesień przeniesień) kolejne liczby pobierane z notatnika np. 3. Usunię Usunięto odstę odstępy pomię pomiędzy liczbami pię pięciocyfrowymi a nastę następnie podzielono otrzymany cią ciąg na liczby czterocyfrowe. 25689 + 38720 ------------53309 4. Usunię Usunięto odstę odstępy pomię pomiędzy liczbami dr inż inż. Jacek Jarnicki 4. Zastosowano sł słownik, zamieniają zamieniając liczby czterocyfrowe na wyrazy. dr inż inż. Jacek Jarnicki 5 2.2. Przykł Przykład ilustrują ilustrujący metodę metodę cąłkowania ąłkowania numerycznego 6 Wyniki obliczeń obliczeń (przybliż (przybliżenia liczby π ) : π ≈ 4S ≈ 4⋅k/n Należ Należy obliczyć obliczyć pole S obszaru ograniczonego krzywą krzywą opisują opisującą ćwiartkę wiartkę okrę okręgu i osiami ukł układu wspó współrzę rzędnych. 1. Podstawić Podstawić k = 0. 0. 2. Przy pomocy generatora rozkł rozkładu ró równomiernego (jednostajnego na odcinku [0,1] 0,1] ) wygenerować wygenerować dwie liczby x i y. 3. Obliczyć Obliczyć odległ odległość d punktu o wspó współrzę rzędnych (x,y) od środka ukł układu. 4. Jeś Jeśli d <= 1, podstawić podstawić k = : k+1. 5. Powtó Powtórzyć rzyć kroki 2 do 4 n razy. n =100, π ≈ 3,2000 6. Obliczyć Obliczyć S = k/n. dr inż inż. Jacek Jarnicki 7 n =1000, π ≈ 3,1040 dr inż inż. Jacek Jarnicki 8 2 2.3. Przykł Przykład z dziedziny masowej obsł obsługi 1. System obsł obsługi skł składa się się z n kas. 2. Do systemu zgł zgłaszają aszają się się klienci, w ten sposó sposób, że czas pomię pomiędzy pojawieniem się się dwó dwóch kolejnych klientó klientów ma rozkł rozkład wykł wykładniczy z parametrem λ . π ≈ 4S(n) n =10.000, π ≈ 3.1551 3. Znany jest algorytm wyboru kasy przez klienta (deterministyczny lub losowy). 4. Obsł Obsługa klienta przy kasie trwa τ jednostek czasu z odchył odchyłką okreś określoną loną rozkł rozkładem normalnym z parametrami µ i σ. n =100.000, π ≈ 3.1419 dr inż inż. Jacek Jarnicki dr inż inż. Jacek Jarnicki 9 10 2.4. Automat do gry kolejki 1 klienci klienci Prezentacja wyniku losowania n Tabela wygranych Uruchomienie losowania Pytanie 1 : Jak średni czas oczekiwania klienta na obsł obsługę ugę zależ zależy od liczby kas ? generator Pytanie 2 : Jakie jest prawdopodobień prawdopodobieństwo, że dla danej liczby kas, czas oczekiwania klienta na obsł obsługę ugę nie przekroczy 5 min ? dr inż inż. Jacek Jarnicki … … 23671 liczba losowa BAR … BAR … BAR do ukł układu wykonawczego tablica 11 dr inż inż. Jacek Jarnicki 12 3 3.1. Liniowe generatory kongruentne (LCG - Linear Congruential Generators) Generators) 2. Jak generuje się się liczby losowe przy pomocy komputera Liniowy generator kongruentny opisany jest wzorem: Komputer jest urzą urządzeniem deterministycznym i generowane w nim liczby nie są są naprawdę naprawdę losowe. Używa się się w zwią związku z tym poję pojęcia, liczby pseudolosowe. xi + 1 = (ax i + c ) mod m a, c, m, x0 - cał całkowite Komputerowy generator liczb pseudolosowych opisany jest zależ zależnoś nością cią: Przykł Przykład 1: a = 5, c = 3, m = 16, x0 = 0: xi + 1 = f ( x0 , x1 ,..., xi ) 0, 3, 2, 13, 4, 7, 6, 1, 8, 11, 10, 5, 12, 15, 14, 9 0, 3, 2, 13, 4, 7, 6, 1, 8, 11, 10, 5, 12, 15, 14, 9 0,... x0 , x1 ,..., xi ,... - kolejne liczby wytwarzane przez generator dr inż inż. Jacek Jarnicki Przykł Przykład 2: Zależność ciągu liczb od x0 . 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,... Jakie winne być być relacje pomię pomiędzy a, c, m i x0 ? a = 5, c = 3, m = 16, x0 = 0: 0, 3, 2, 13, 4, 7, 6, 1, 8, 11, 10, 5, 12, 15, 14, 9 0, 3, 2, 13, 4, 7, 6, 1, 8, 11, 10, 5, 12, 15, 14, 9 0,... Twierdzenie 1 Dla generatora LCG o parametrach a, c, m i x0, cią ciąg generowanych liczb losowych ma dł długość ugość m wtedy i tylko wtedy, gdy: • c i m nie mają mają wspó wspólnych dzielnikó dzielników, • 14 Przykład 3: a = 3, c = 4, m = 16, x0 = 0: • dr inż inż. Jacek Jarnicki 13 a = 5, c = 3, m = 16, x0 = 7: 7, 6, 1, 8, 11, 10, 5, 12, 15, 14, 9, 0, 3, 2, 13, 4 7, 6, 1, 8, 11, 10, 5, 12, 15, 14, 9, 0, 3, 2, 13, 4 7,... b = a – 1 jest wielokrotnoś wielokrotnością cią każ każdej liczby pierwszej p, któ która jest dzielnikiem liczby m, b jest wielokrotnoś wielokrotnością cią 4, o ile m jest też też wielokrotnoś wielokrotnością cią 4 . dr inż inż. Jacek Jarnicki 15 dr inż inż. Jacek Jarnicki 16 4 3.2. Multiplikatywne liniowe generatory kongruentne (MLGC(MLGC- Multiplicative Linear Congruential generators) generators) Przykł Przykład 4: a = 5, m = 16, x0 = 1: 1, 5, 9, 13 1, 5, 9, 13 1,... Generator LGC przy c = 0. xi +1 = (ax i ) mod m Podstawowe fakty wynikają wynikające z teorii dla MLGC: a = 5, m = 17, x0 = 1: • jeś jeśli m = 2 ( e - liczba cał całkowita ) to maksymalny okres generatora wynosi m/4. e 1, 5, 8, 6, 13, 14, 2, 10, 16, 12, 9, 11, 4, 3, 15, 7 1, 5, 8, 6, 13, 14, 2, 10, 16, 12, 9, 11, 4, 3, 15, 7 1, ... • jeś jeśli m = p ( p - liczba pierwsza ) to maksymalny okres generatora wynosi m -1. dr inż inż. Jacek Jarnicki 3.3. Generacja liczb losowych z przedział przedziału [0, dr inż inż. Jacek Jarnicki 17 1] 1] ui = Po wygenerowaniu kolejnej liczby xi dokonuje się się przekształ przekształcenia 18 xi xi = m 17 0.0588, 0.2941, 0.4706, 0.3529, 0.7647, 0.8235, 0.1176, 0.5882 0.9412, 0.7059, 0.5294, 0.6471, 0.2353, 0.1765, 0.8824, 0.4118 0.0588, 0.2941, 0.4706, 0.3529, 0.7647, 0.8235, 0.1176, 0.5882 0.9412, 0.7059, 0.5294, 0.6471, 0.2353, 0.1765, 0.8824, 0.4118 0.0588, ... ui = xi / m Przykł Przykład 5: a = 5, m = 17, x0 = 1: xi 3.4 Jakość Jakość generatoró generatorów liczb losowych Pożą dane cechy generatora: Pożądane 1, 5, 8, 6, 13, 14, 2, 10, 16, 12, 9, 11, 4, 3, 15, 7 1, 5, 8, 6, 13, 14, 2, 10, 16, 12, 9, 11, 4, 3, 15, 7 1, ... dr inż inż. Jacek Jarnicki • długi okres, • "przypadkowość "przypadkowość"" nastę następstw kolejnych liczb. 19 dr inż inż. Jacek Jarnicki 20 5 3.4.1. Długi okres generatora Jaki maksymalny okres generatora moż można w ten sposó sposób uzyskać uzyskać ? Podstawowe fakty to: Twierdzenie 2 • jeśli m jest liczbą pierwszą to maksymalny okres generatora MLCG wynosi m -1, • m ograniczone możliwościami arytmetyki komputera np. 32.767 dla 16 bitów lub 2.147.483.647 dla 32 bitów. Jeś Jeśli m1 , m2 , ..., mk są liczbami pierwszymi i jeś jeśli liczby (mj1)/2 nie mają mają wspó wspólnych podzielnikó podzielników, to okres generatora jest maksymalny i wynosi p= • zbudować k generatorów o modułach m1 , m2 , ..., mk , j 1 2 k −1 Przykł Przykład 6 ( L’Ecuyer ): m1 = 2.14.783.563, a1 =40.014, m2 = 2.14.783.399, a2 =40.692 • pierwszą liczbę ciągu { xi } wygenerować przy pomocy pierwszego generatora, drugą przy pomocy drugiego itd. używając cyklicznie k generatorów, dr inż inż. Jacek Jarnicki ∏= (m j − 1) k Jak skonstruować generator o okresie dłuższym niż wynika to z powyższych ograniczeń? p = (m1 -1)(m2 -1)/2 ≈ 2,3 ⋅1018 21 dr inż inż. Jacek Jarnicki 22 3.4.2. „Przypadkowość Przypadkowość”” nastę następstw kolejnych liczb (test widmowy) Analizuje się się rozkł rozkład par ( xi , xi+1 ) lub ( ui , ui+1 ). Przykł Przykład 7: a = 31, m = 97 a = 162, m = 32.749 a = 29, m = 97 dr inż inż. Jacek Jarnicki 23 dr inż inż. Jacek Jarnicki 24 6 3.5.1. Metoda transformacji rozkł rozkładu jednostajnego 3.5. Generacja realizacji zmiennych losowych o dowolnych rozkł rozkładach • z rozkł rozkładu jednostajnego na odcinku Jak wygenerować wygenerować realizacje t1 , t2 , ..., ti ,... zmiennej losowej opisanej przez dystrybuantę dystrybuantę F(t ) lub funkcję funkcję gęstoś stości f(t ) ? Wykorzystuje się się w ró różny sposó sposób generator rozkł rozkładu jednostajnego. • metoda transformacji rozkł rozkładu jednostajnego, • metoda akceptacji i odrzucania von Neumanna, • inne metody (metoda biegunowa BoxaBoxa- Mullera dla generacji realizacji zmiennej losowej o rozkł rozkładzie normalnym) wygenerować wygenerować liczbę liczbę losową losową ui , • obliczyć obliczyć ti ze wzoru ti = F -1(ui ). 1 u i 0.8 t i = F −1 ( u i ) 0.6 0.4 0.2 0 0 1 3 ti dr inż inż. Jacek Jarnicki 25 • rozkł rozkład wykł wykładniczy 1 t = F −1 ( u ) = − ln( 1 − u ) λ −∞ 6 7 8 dr inż inż. Jacek Jarnicki 26 • jest ograniczona stałą stałą c > 0. Algorytm generacji liczby losowej t : • rozkł rozkład normalny ∫ 5 F(t) Dana jest funkcja gę gęstoś stości f(t ) speł spełniają niająca nastę następują pujące dwa zał założenia: • jest dodatnia na ograniczonym przedziale (a, b) i ró równa zeru poza tym przedział przedziałem, F ( t ) = 1 − e − λt t 4 3.5.2. Metoda akceptacji i odrzucania (von Neumanna) Przykł Przykład 8: F( t ) = [0,1] 0,1] 1. Wygenerować Wygenerować dwie niezależ niezależne liczby losowe u1 i u2 o rozkł rozkładach ró równomiernych na przedział przedziałach, odpowiednio (a, b) i (0, d), 1 ( τ − µ )2 exp 2 dτ 2π σ 2σ 2. Jeś Jeśli u2 ≤ f( u1 ) podstawić podstawić t = u1 , jeś jeśli nie powtarzać powtarzać punkt 1 aż aż do speł spełnienia warunku. t = F −1 ( u ) = ? dr inż inż. Jacek Jarnicki 27 dr inż inż. Jacek Jarnicki 28 7 Przykł Przykład 9: 9: Generacja liczb z rozkł rozkładu beta (dla 10.000 par u1 , u2 ) u2 u1 pary u1 , u2 histogram ti Wydajność Wydajność metody : W = 44.98% dr inż inż. Jacek Jarnicki 29 8