generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf ·...

53
Generatory liczb pseudolosowych Plan wykładu: 1. Generatory o rozkładzie równomiernym a) liniowe b) kombinowane – generator uniwersalny c) nieliniowe 2. Generatory o dowolnym rozkładzie prawdopodobieństwa a) metoda odwracania dystrybuanty b) metoda eliminacji c) superpozycja rozkładów d) rozkład dyskretny 3. Generatory o rozkładach wielowymiarowych a) rozkład równomierny na sferze i kuli w R M b) dwuwymiarowy rozkład normalny 4. Testowanie generatorów a) testy zgodności z rozkładem: c 2 , OPSO b) testy zgodności z rozkładem statystyk: pozycyjne, test sum

Upload: others

Post on 19-Sep-2019

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

Generatory liczb pseudolosowych

Plan wykładu:

1. Generatory o rozkładzie równomiernym

a) linioweb) kombinowane – generator uniwersalnyc) nieliniowe

2. Generatory o dowolnym rozkładzie prawdopodobieństwa

a) metoda odwracania dystrybuantyb) metoda eliminacjic) superpozycja rozkładówd) rozkład dyskretny

3. Generatory o rozkładach wielowymiarowych

a) rozkład równomierny na sferze i kuli w RM

b) dwuwymiarowy rozkład normalny

4. Testowanie generatorów

a) testy zgodności z rozkładem: c2, OPSOb) testy zgodności z rozkładem statystyk: pozycyjne, test sum

Page 2: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

2

Generatory o rozkładzie równomiernym

Najprostsze generatory liczb losowych to generatory fizyczne wykorzystujące:

1) szumy układów elektronicznych2) promieniotwórczość

Zalety: dostajemy ciągi liczb losowych (niezależne, nieskorelowane)

Wady: wymagana ciągła kalibracja (testowanie parametrów), kłopoty techniczne z obsługą, brak powtarzalności serii

Własności generatorów komputerowych

a) łatwość obsługi b) możliwość generowania dowolnego rozkładu c) dowolna liczba wymiarówd) powtarzalność ciągów generowanych liczb

generatoryliczb losowych

fizyczneprogramowe

(komputerowe)

Page 3: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

3

Jak pracują komputerowe generatory liczby?

1) Tworzony jest ciąg liczb nieujemnych (naturalnych)

o rozkładzie równomiernym według wybranego algorytmu. Liczby ograniczone są od góry przez reprezentację, np. dla k=32 bitowej reprezentacji liczby całkowitej bez znaku, kres górny

Ta – okres aperiodyczności ciąguT0 – okres ciągu

2) Aby uzyskać liczby „rzeczywiste” dokonujemy przekształcenia

3) Dokonujemy kolejnej transformacji ciągu aby uzyskać ciąg o zadanym rozkładzie prawdopodobieństwa (normalny, wielomianowy, etc.)

Page 4: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

4

Generatory liniowe

Generatory liniowe tworzą ciąg liczb według schematu:

gdzie: a1, a2,...,ak, c, m – parametry generatora (ustalone liczby)

Operację

nazywamy dzieleniem modulo a jej wynikiem jest reszta z dzielenia liczb całkowitych a i n.

Lub inaczej: r jest kongruentne do a modulo n jeśli n jest dzielnikiem a-r.

Generatory wykorzystujące operację dzielenia modulo to generatory kongruentne lub kongruencyjne.

Przykład

19 mod 6 =1 15 mod 6 =318 mod 6 =0 14 mod 6 =217 mod 6 =5 13 mod 6 =116 mod 6 =4 12 mod 6 =0

Page 5: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

5

Aby wygenerować ciąg liczb pseudolosowych należy zdefiniować jego parametry.Liczby

nazywamy ziarnem generatora (seed). Dla bardziej rozbudowanych generatorów liczby te otrzymujemy z innego generatora lub np. używając zegara systemowego (X0).

Najprostszy generator liniowy ma dwie odmianya) generator multiplikatywny gdy

b) generator mieszany gdy

Maksymalny okres generatora liniowego to (m-1)

Generator multiplikatywny

Page 6: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

6

Ostatnie równanie można zapisać w postaci

skąd wynika, że wybór X0 determinuje wszystkie liczby w generowanym ciągu (a i m są ustalone) – uzyskany ciąg liczb jest deterministyczny

Przykład.

Generator multiplikatywny

X i

a=1 2 3 4 5 6 7 8 9 10

i=0 1 1 1 1 1 1 1 1 1 1

1 1 2 3 4 5 6 7 8 9 10

2 4 9 5 3 3 5 9 4 1

3 8 5 9 4 7 2 6 3

4 5 4 3 9 9 3 4 5

5 10 1 1 1 10 10 10 1

6 9 5 4 3

7 7 8 6 2

8 3 4 9 5

9 6 2 8 7

10 1 1 1 1

Page 7: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

7

Okres generatora multiplikatywnego

Maksymalny okres generatora multiplikatywnego uzyskujemy dla

Gdy m jest liczbą pierwszą a p jest czynnikiem pierwszym liczby (m-1).

PrzykładWykorzystujemy liczby Mersenne'a (które dość często są liczbami pierwszymi)

Okres generatora

Liczby

występują dokładnie 1 raz w pojedynczym okresie generatora.Odległość pomiędzy najbliższymi sąsiadami

Page 8: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

8

Rozkład przestrzenny ciągu

Wadą generatorów multiplikatywnych jest nierównomierne pokrycie d-wymiarowej kostki (Id).Generowane liczby lokalizują się na hiperpłaszczyznach, których położenie uzależnione jest od parametrów generatora.

Przykład.

b) X0=1, a=8a) X0=1, a=2

Page 9: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

9

Parametry statystyczne generatora o rozkładzie równomiernym w (0,1)-> U(0,1)

Jeśli generowany ciąg liczb jest niezależny to wartość oczekiwana (średnia <- estymator) powinna wynosić

natomiast wariancja jest równa

Ponadto współczynniki autokorelacji elementów ciągu powinny wynosić 0.

Jeśli parametry statystyczne generatora (ciągu generowanych przez niego liczb) odbiegają od powyższych wartości to jest on nieprzydatny (lub warunkowo przydatny).

Page 10: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

10

Funkcja autokorelacji opisuje zależność elementów ciągu od wyrazów poprzednich.Definicja

oraz wzór dla ciągu skończonego (r=s-t)

Inaczej: opisuje związek pomiędzy elementami dwóch szeregów – danego i przesuniętego o r.

Dla rozkładu jednorodnego R~0 oznacza brak korelacji pomiędzy elementami ciągu,czyli rozkład liczb pseudolosowych jest stochastyczny.

Efektywnie funkcję autokorelacji można badać przy użyciu FFT – splot dwóch wektorów.

Page 11: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

11

Przykłady generatorów liniowych

Ich okresy są maksymalne tj. równe (m-1)

Generatory na rejestrach przesuwnych

Definiujemy ciąg bitów bi otrzymywanych rekurencyjnie

gdzie:

są stałymi binarnymi , a stałe bi

tworzą ciąg inicjujący.

Page 12: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

12

Inny sposób zapisu relacji rekurencyjnej wykorzystuje operator xor

który można zdefiniować

jeśli założymy

to relację rekurencyjną można zapisać przy użyciu xor

Jakie są własności takiego ciągu bitów?

Ciąg jest okresowy o okresie nieprzekraczającym 2k a dokładniej (2k-1) ze względu na wyrzucenie układu bitów złożonych z samych zer. Praktyczną realizacją tego pomysłu jest algorytm wykorzystujący tylko dwa elementy ciągu:

a b a xor b

0 0 0

0 1 1

1 0 1

1 1 0

Page 13: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

13

Przykład. Generator Tauswortha

Wykorzystujemy ciąg bitów do obliczenia liczby pseudolosowej z przedziału (0,1]

gdzie: s jest ustaloną całkowitą liczbą nieujemną

a) jeśli s<L to do utworzenia Ui oraz Ui+1 wykorzystywane są elementy tego samego podciągu

b) jeśli s=L to Ui oraz Ui+1 są tworzone z rozłącznych fragmentów ciągu globalnego

Ciąg bitów łatwo generuje się przy użyciu rejestrów przesuwnych oraz bramek logicznych (xor) – łatwa implementacja w języku C.

Modyfikacja tego typu generatora to generator Mersenne Twister (1998)

okres generatora to

o rozkładzie

Page 14: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

14

Generator Fibonacciego

Punktem wyjścia do konstrukcji generatora są liczby Fibonacciego

a dokładniej ciąg reszt tego ciągu

Powyższy ciąg reszt ma rozkład równomierny ale nie spełnia testów niezależności (autokorelacja).

Jego modyfikacja

nie posiada już tej wady.

Generator charakteryzuje się dużym okresem ale jest wolniejszy np. względem generatorów multiplikatywnych co obecnie nie jest już dużą wadą.

Okres generatora zależy od operacji. Dla

typ operacji:

dostaniemy

← bitowy

Page 15: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

15

Kombinacje generatorów

(zwiększamy okres i/lub polepszamy własności statystyczne)

Zakładamy że dysponujemy zmiennymi losowymi X i Y określonymi na zbiorze S={1,2,...,n} z rozkładami prawdopodobieństwa

Z tych liczb możemy utworzyć wektory

Za normę wektora przyjmiemy p-normę

Miarą „odległości” danego rozkładu od rozkładu równomiernego w n-wymiarowej kostce jednostkowej będzie wówczas wyrażenie

Page 16: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

16

Dla określonego działania na zbiorze S tj.

rozkład nowej zmiennej losowej

będzie bliższy rozkładowi równomiernemu niż rozkłady zmiennych X i Y

Nowy ciąg ma lepsze własności statystyczne a także większy okres.

Jeżeli ciąg

ma okres T1, a ciąg

ma okres T2 oraz T1 i T2 są liczbami pierwszymi to wtedy nowy ciąg liczb

ma okres równy T1T2.

Page 17: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

17

Generator uniwersalny

Daje jednakowe wyniki na dowolnym komputerze. Jego działanie oparte jest na wykorzystaniu kombinacji kilku generatorów

Pierwszy z nich jest generatorem Fibonacciego

działanie jest zdefiniowane następująco

Inicjalizację generatora tj.wyznaczenie ciągu

przeprowadzamy przy pomocy ciągu bitów (24-bitowa mantysa, 16 bitowe liczby całkowite) tj.

Ciąg bitów generujemy przy użyciu dwóch generatorów

lub

Page 18: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

18

Generatory muszą być zainicjowane, korzystamy tu z dwóch ciągów

Okres generatora kombinowanego (Vn): 2120.

Drugi generator (cn) o rozkładzie równomiernym w (0,1) jest zdefiniowany następująco

Okres tego generatora to 224-3.

Okres generatora uniwersalnego (Un): 2144

działanie definiujemy w postaci

Page 19: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

19

Generatory nieliniowe

Zaletą generatorów nieliniowych jest to, że ciągi generowanych przez nie liczb nie układają się na hiperpłaszczyznach tak jak w przypadku generatorów liniowych.

Wykorzystuje się w nich „odwrotność modulo”:

Przykład:

Do znalezienia x-1 wykorzystuje się algorytm podziału Euklidesa (poszukiwania największego wspólnego podzielnika dwóch liczb – gcd(a,b))

gcd → greatest common divisor

Algorytm:

Jeśli

Page 20: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

20

Generowanie x-1 algorytmem Aignera:1) generujemy ciąg liczb:

i wyznaczamy ciag wspołczynników qi

2) generujemy ciąg liczb

3) jeśli x=0 to x-1=0

start:

znaleziona odwrotność

Page 21: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

21

Generator nielinowy Eichenauera-Lehna

gdzie: m jest liczbą pierwszą. Uzyskujemy w ten sposób ciąg liczb

o rozkładzie równomiernym.

Generator nieliniowy Eichenauera-Hermanna

W generatorze tym kolejne elementy ciągu są niezależne od poprzednich – cecha szczególnie przydatna w obliczeniach równoległych.

Dla

generator osiąga okres T=m.

Aby generator osiągał maksymalny okres równy m musi być spełniony jeszcze warunek:

jest najmniejszą liczbą całkowitą dla której zachodzi

Page 22: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

22

Generatory o dowolnym rozkładzie prawdopodobieństwa

Metoda odwracania dystrybuanty

Dystrybuanta określonego rozkładu prawdopodobieństwa jest funkcją

niemalejącą i prawostronnie ciągłą

Dystrybuanta jednoznacznie definiuje rozkład prawdopodobieństwa.

Związek pomiędzy dystrybuantą a gęstością prawdopodobieństwa f(x):

Jeśli uda nam się znaleźć F-1 to:

zmienna losowa x ma rozkład o dystrybuancie F

Page 23: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

23

U jest zmienną losową o rozkładzie równomiernym w przedziale (0,1).

Nową zmienną losową będzie

Generujemy więc ciąg liczb pseudolosowych

który przekształcamy w ciąg

Wówczas liczby Xi mają rozkład prawdopodobeństwa o dystrybuancie F.

Odwracanie dystrybuanty można wykorzystać także w przypadku rozkładów dyskretnych.

Np. ciąg zmiennych

o rozkładzie

można wygenerować przy użyciu ciągu

korzystając ze wzoru

Page 24: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

24

Przykład - rozkład jednomianowy

Funkcja gęstości prawdopodobieństwa to

a pozostałe parametry rozkładu przyjmijmy w postaci

Określamy funkcję opisującą dystrybuantę

i uzależniamy x od U

Page 25: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

25

Przykład - rozkład eksponencjalny

gęstość prawdopodobieństwa

Dystrybuanta

Przykład - rozkład normalny N(0,1)

1

0 , 8

0 , 6

0 , 4

0 , 2

y

01 050- 5- 10

u=0, s=1

u=0, s=2

u=0, s=3

[ erf(x) – funkcja błędu ]

Page 26: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

26

Szukanie funkcji odwrotnej erf(x) jest kosztowne. Częściej stosuje się metodę Boxa-Mullera.

Metoda Boxa-Mullera

Definiujemy fgp w 2D jako funkcję gaussowską

Docelowo chcemy policzyć prawdopodobieństwo

(czyli że wylosowana liczba znajdzie się w obszarze dxdy)

Wprowadzamy nowe zmienne (radialne)

Prawdopodobieństwo określmy przy użyciu nowych zmienych

- dokonaliśmy separacji zmiennych (r,θ) w wykładniku funkcji exp

Page 27: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

27

Wprowadzamy jeszcze raz nową zmienną (ułatwi nam to całkowanie)

Dostaliśmy rozkład wykładniczy, który wiemy jak wygenerować

Kąt θ ma rozkład jednorodny, więc używamy generatora o rozkładzie jednorodnym

Dla pary (U1,U2) dostajemy (x,y) dla rozkładu N(0,1)

Jeśli chcemy zmienić parametry rozkładu normalnego, to dokonujemy transformacji

następnie podstawiamy:

Page 28: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

28

Metoda eliminacji (von Neumann)

Chcemy wygenerować ciąg zmiennych losowych o gęstości prawdopodobieństwa f w przedziale [a,b].

Wartość f jest w przedziale [a,b] ograniczona od góry przez stałą d.

Sposób otrzymania ciągu zmiennych losowych o rozkładzie f(x) jest następujący:

1) Losujemy dwie zmienne o rozkładzie równomiernym

2) jeżeli

3) gdy powyższy warunek nie jest spełniony wówczas odrzucamy parę U1, U2

4) wykonujemy czynności 1-3 aż do uzyskania odpowiednio licznego ciągu

Wygenerowana zmienna losowa X ma rozkład prawdopodobieństwa f.

Page 29: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

29

Generowanie ciągu liczb pseudolosowych o zadanym rozkładzie algorytmem Metropolisa

Modyfikujemy metodę eliminacji. W standardowej postaci jest ona mało wydajna – bo nierzadko odrzucamy większość wyników. Dzięki algorytmowi Metropolisa nie odrzucamy żadnego.

Akceptację nowego położenia (nowej liczby w ciągu) dokonujemy zgodnie z formułą

czyli:

1) Jeśli f(xi) > f(xi-1) to nowe położenie akceptujemy zawsze.

2) W przeciwnym wypadku akceptacja następuje z prawdopodobieństwem f(xi)/f(xi-1).

Jeśli nie akceptujemy nowego punktu to zatwierdzamy stary (każdy krok generuje nowy element ciągu).

Uwaga: w naszym przykładzie

aby zachodził warunek pij=pji (wymagana symetria)

Page 30: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

30

Superpozycja rozkładów

Naszym zadaniem jest uzyskanie ciągu liczb pseudolosowych o gęstości f(x), którą możemy wyrazić w postaci

gdzie: gt(x) oraz h(t ) są również gęstościami prawdopodobieństwa – funkcje znane.

Rozkład prawdopodobieństwa f(x) nazywamy rozkładem złożonym.

Algorytm generowania liczb o rozkładzie f(x) jest następujący:

1) generujemy zmienną T o rozkładzie h

2) dla wartości t zmiennej losowej T generujemy zmienną losową X dla rozkładu gęstości gt(x)

W praktyce całkę często zastępuje się sumą (np.. rozkład wielomianowy → przykład dalej)

pi określa dyskretną funkcję gęstości prawdopodobieństwaz warunkiem normalizacji jak dla dystrybuanty

Page 31: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

31

Przedział [a,b] w którym generujemy ciąg zmiennych z rozkładem f(x) dzielimy na sumę K rozłącznych podprzedziałów. W każdym z nich (Ai) wyznaczamy

oraz

gdzie: 1Ai jest funkcją przynależności do podzbioru Ai (przyjmuje wartości: 0 lub 1).

Algorytm generacji ciągu zmiennej X jest wówczas następujący:

1) Losujemy zmienną losową (rozkład może nie być równomierny)

2) Dla wygenerowanej wartości i zmiennej I generujemy X z rozkładem gęstości

Dla dostatecznie wąskich przedziałów można h(t) przybliżyć wielomianem niskiego stopnia.

Page 32: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

32

Przykład – rozkład wielomianowy

Algorytm generowania zmiennej losowej:

1. Generujemy indeks

z rozkładem prawodopodobieństwa

2. W przedziale n generujemy zmienną X o rozkładzie jednomianowym

Docelowo ciąg zmiennych X będzie mieć zadany rozkład wielomianowy.

normalizacja(dystrybuanta)

Page 33: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

33

Przykład – rozkład Beta Eulera

Jeśli dwie zmienne g1 i g2 mają rozkłady

To zmienna X

ma rozkład f(x;p,q)

Rozkład Gamma Eulera ma postać

-p i q to parametry, ich wartości są ustalone

Page 34: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

34

Rozkład dyskretny

a) metoda odwracania dystrybuanty

W rozkładzie dyskretnym mamy określone prawdopodobieństwo wylosowania danej liczby (rozkład może nie być równomierny)

wraz z warunkiem

Algorytm generowania ciągu zmiennych o rozkładzie dyskretnym:

1) X=0, S=p0

2) losujemy zmienną U o rozkładzie równomiernym z przedziału [0,1]

3) sprawdzamy warunek

a) iteracyjnie obliczamy (zwiększamy S)

dopóki warunek jest spełnionyb) W przeciwym wypadku akceptujemy X

4) Kroki 1-3 wykonujemy aż do uzyskania odpowiednio licznego ciągu X1,X2,X3,...

Przykład nanastępny slajdzie

Page 35: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

35

Przykład.

k=0

k=1

k=2

k=3

k=4

U=0.73

0

1.0

p0 =

0.2

p0+

p1 =

0.4

p0+

p1+

p2 =

0.6

p0+

p1+

p2+

p3 =

0.8

p0+

p1+

p2+

p3+

p4 =

1

Page 36: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

36

b) Metoda równomiernego rozbicia przedziału

Modyfikacja poprzedniej metody: zamiast wielokrotnego sumowania dokonumjemy dwóch porównań

Zakładamy, że zmienna losowa X przyjmuje określone wartości z pewnym prawdopodobieństwem

Przedział (0,1) dzielimy na K+1 podprzedziałów o jednakowej długości

Zmienna U wpada do przedziału

Konstruujemy dwa ciągi

Page 37: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

37

Algorytm

1) Generujemy zmienną U o rozkładzie równomiernym w (0,1)

2) Obliczamy

3) iteracyjnie obliczamy

dopóki jest spełniony warunek

4) jeśli

to akceptujemy X

5) Kroki 1-4 powtarzamy aż do uzyskania odpowiednio licznego ciągu X1,X2,...

Powyższy algorytm zapewnia to, że warunek

będzie sprawdzany conajwyżej dwukrotnie.

Page 38: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

38

Generatory o rozkładach wielowymiarowych

Zadanie można sformułować następująco:

należy wygenerować ciąg wielowymiarowych zmiennych (wektorów) losowych

których rozkład prawdopodobieństwa ma gęstość

Do generacji takiego ciągu można stosować metodę eliminacji czy superpozycji rozkładów. Przy użyciu metody elminacji w najprostszej postaci pojawiają się problemy.

Przykład. Określić prawdopodobieństwo akceptacji wielowymiarowej zmiennej losowej o rozkładzie równomiernym na kuli jednostkowej (Kk(0,1)) . Algorytm.Losujemy m zmiennych niezależnych o rozkładzie równomiernym w (-1,1) i konstruujemy zmienną wielowymiarową

Zmienną akceptujemy jeśli

w przeciwnym wypadku, odrzucamy ją bo leży poza kulą.

Page 39: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

39

Prawdopodobieństwo akceptacji zmiennej jest równe ilorazowi objętości kuli i opisanej na niej kostki [-1,1]k

Średnia liczba wylosowanych punktów Nm potrzebnych do realizacji jednej zmiennej wynosi

Modyfikacją usprawniającą powyższy algorytm jest podział kostki na rozłączne podobszary i przeprowadzenia losowania w każdym z nich z osobna.

m pk Nk

2 7.854 x 10-1 1.27

5 1.645 x 10-1 6.08

10 2.490 x 10-3 4.015 x 102

20 2.461 x 10-8 4.063 x 107

50 1.537 x 10-28 6.507 x 1027

Page 40: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

40

Przykład. Znajdźmy rozkład gęstości w kole 2D (d=2) o promieniu R=1

wzór na powierzchnię element powierzchniiwe wsp. radialnych

C – stała liczbowa

Potraktujmy funkcję podcałkową jako fgp i znajdźmy stałą normalizacyjną

Fgp rozkładu

lub ogólnie dla d wymiarów

Policzmy objętość metodą MC (następny wykład)

Uwaga: 1 to funkcja podcałkowa próbkowana z fgp f(r)

Page 41: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

41

Rozkład równomierny na sferze

Jeżeli k-wymiarowa zmienna losowa

ma rozkład równomierny na sferze to spełniony jest warunek

Definicja: k-wymiarowa zmienna X ma rozkład sferycznie konturowany jeżeli jej gęstość prawdopodobieństwa

zależy tylko od

Dysponując zmienną o rozkładzie sferycznie konturowanym wygenerujemy zmiennąo rozkładzie równomiernym na sferze oraz wewnątrz kuli.

Page 42: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

42

Wniosek: mając do dyspozycji odpowiedni rozkład sferycznie konturowany można go użyć do generowania zmiennej losowej o rozkładzie równomiernym na powierzchnii kuli.

Przykład.

m-wymiarowy rozkład normalny opisuje gęstość

Algorytm generowania rozkładu równomiernego na sferze w m wymiarach:

1) generujemy m-wymiarową zmienną losową X o rozkładzie normalnym

2) obliczamy

Rozkład nowej zmiennej X będzie równomierny na sferze Sm.

Page 43: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

43

Rozkład równomierny na sferze Sk i Sk+1

Jeżeli zmienna

ma rozkład równomierny na k-wymiarowej sferze Sk (z rozkładu sferycznie konturowanego),

R jest zmienną o rozkładzie

a s jest losowym znakiem

to (k+1)-wymiarowa zmienna losowa

ma rozkład równomierny na (k+1) wymiarowej sferze.

k określa wymiar przestrzeni

Page 44: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

44

Rozkład równomierny w kuli Kk

Długość wektora wodzącego R zmiennej X jest także zmienną losową i ma ona rozkład

Wystarczy więc wygenerować punkt

leżący na sferze Sk a następnie obliczyć

Zmiena X leży wewnątrz kuli jednostkowej Kk i ma w tym obszarze rozkład równomierny.

Po co rozkład w kuli Kk(0,1)?

Pewne obiekty wielowymiarowe możemy przedstawić w postaci prostych transformacji liniowych współrzędnych.

Taką transformację reprezentuje macierz

Przykład – hiperelipsoidę w Rk otrzymamy transformując Kk(0,1).

Page 45: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

45

Testowanie generatorów liczb pseudolosowych

Ponieważ wszystkie generatory o dowolnym rozkładzie bazują na wykorzystaniu ciągów liczb losowych o rozkładzie równomiernym więc istotne jest badanie tylko generatorów liczb o takim właśnie rozkładzie.

Testowanie generatora jest procesem złożonym:

1) dla ustalonej liczby n, generujemy n kolejnych liczb startując od losowo wybranej liczby początkowej

2) obliczamy wartość statystyki testowej (T) (np. test χ2)

3) obliczamy F(T) czyli dystrybuantę statystyki T, gdy weryfikowana hipoteza jest prawdziwa

kroki 1-3 powtarzamy N-krotnie obliczając statystyki: T1,T2,...,TN.

Jeśli weryfikowana hipoteza jest prawdziwa to

jest ciągiem zmiennych niezależnych o rozkładzie równomiernym. Testowanie generatora kończy się sprawdzeniem tej hipotezy.

Page 46: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

46

Testy zgodności z zadanym rozkładem

Test chi-kwadrat (rozkład ciągły lub dyskretny)

Jest najczęściej stosowanym testem. Badamy w nim hipotezę że generowana zmienna losowa X ma rozkład prawdopodobieństwa o dystrybuancie F.

Jeżeli

to możemy dokonać następującego podziału zbioru wartości zmiennej X

Generujemy ciąg n liczb

Sprawdzamy ile z nich spełnia warunek

ich liczbę oznaczamy ni.

Page 47: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

47

Statystyką testu jest

Dla dużego n statystyka ta ma rozkład c2 o (k-1) stopniach swobody.

Możemy tak dobrać szerokości przedziałów aby otrzymać zależność

wówczas statystyka przyjmuje prostszą postać

Page 48: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

48

Przykład. Test generatora o trójkątnym rozkładzie fgp.

0 0. 02 0. 04 0. 06 0. 08 0. 1

0. 12 0. 14 0. 16 0. 18 0. 2

0. 22

1 2 3 4 5 6 7

pi, fi

x

hi st ogram for t rangl e pdf

expect edobser ved

Test -procedura:

1. Generujemy serię N liczb z rozkładu

2. Grupujmey liczby w k przedziałach

3. Liczymy wartość statystyki testowej χ2

4. Dla zadanego poziomu a sprawdzamy czy χ2 < wartości granicznej

mamy 2 parametrywięc 2 stopnie swobody mniej: (k-1-2)

Page 49: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

49

0

0. 2

0. 4

0. 6

0. 8

1

0 5 10 15 20 25 30 35 40 45 50

t ri angl e pdf sampl es: N= 500

chi2 bi ns: k=10

chi2 sampl es: M= 103

vert i cal bi ns for p=0.05

Cumu

lati

ve d

ensi

ty f

unct

ion

chi2

hi stogram for t rangl e pdf

obser ved- CDFexact - CDF

0

0. 1

0. 2

0. 3

0. 4

0. 5

0. 6

0. 7

0. 8

0. 9

1

5 10 15 20 25 30 35 40 45 50 55

t ri angl e pdf sampl es: N= 500

chi2 bi ns: k=10

chi2 sampl es: M= 103Cu

mula

tive

den

sity

fun

ctio

n

chi2

hi stogram for t rangl e pdf

obser ved- CDFexact - CDF

Test możemy rozszerzyć – test zgodności z rozkładem ciągłym Kołmogorova-Smirnova

Generujemy M próbek o rozkładzie trójkątnym (N liczb w każdej próbce)

Dla każdej próbki obliczamy wartość statystyki testowej c2 i sortujemy je.

Dla każdej wartości obliczamy empiryczną wartość dystrybuanty i jej dokładną wartość

lub grupujemy je tak aby częstości występowania wzrastały o np.: p=0.05

Obliczamy wartości statystyk

Ich wartości porównujemy z wartościami granicznymi dla założonego poziomu ufności, odrzucając lub nie hipotezę że wygenerowany ciąg liczb ma zadany (np. trójkątny) rozkład.

Page 50: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

50

Test OPSO (overlapping-pairs-sparse-occupancy)

Generujemy ciąg liczb

Jeśli z każdej weźmiemy k bitów to możemy utworzyć ciąg liczb całkowitych

z zakresu {0,1,...,2r-1}.

Następnie tworzymy ciąg kolejnych nakładających się par

Jeśli przez Y oznaczymy liczbę takich par

które nie pojawiły się w ciągu (Ii,Ii+1), to ta zmienna ma rozkład normalny N(m,s) – oczywiście dla odpowiednio dużego n.

Przykładowe parametry testu OPSO

b n m s

10 221 141909 290.26

11 222 1542998 638.75

12 223 567639 580.80

Page 51: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

51

Testy zgodności rozkładów statystyk

Jeżeli wygenerowany ciąg zmiennych losowych

Jest ciągiem zmiennych niezależnych to możemy z elementów tego ciągu utworzyć wektory

które też będą zmiennymi losowymi ale o rozkładzie równomiernym w kostce jednostkowej (0,1)m.

Możemy zatem zdefiniować pewną funkcję

określoną w kostce jednostkowej.

W ten sposób tworzymy ciąg nowych zmiennych losowych

o jednakowym rozkładzie i dystrybuancie

Testowanie generatora polega na sprawdzeniu hipotezy że ciąg Y1,Y2,... jest próbką z populacji o dystrybuancie G.

Page 52: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

52

Testy oparte na statystykach pozycyjnych

Dla wektorów losowych w kostce (0,1)m definiujemy funkcje

co generuje nowe zmienne

Nowe zmienne mają następujące rozkłady

Testowanie generatora polega na sprawdzeniu hipotezy o zgodności rozkładów zmiennych U,V,R z powyższym.

Testy przeprowadza się dla niewielkich wartości m=2,3,...,10.

Page 53: Generatory liczb pseudolosowych - home.agh.edu.plhome.agh.edu.pl/~chwiej/mn/generatory_1819.pdf · Modyfikacja tego typu generatora to generator Mersenne Twister (1998) okres generatora

53

Test sum

Definiujemy funkcję

Wygenerowana zmienna losowa Y ma rozkład o gęstości

Dla m=2

Dla m=3

Testowanie generatora polega na weryfikacji hipotezy, że zmienna losowa Y ma rozkład zgodny z gm(y).

Zazwyczaj m nie przekracza 5.