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