• Nie Znaleziono Wyników

Generatory liczb pseudolosowych

N/A
N/A
Protected

Academic year: 2021

Share "Generatory liczb pseudolosowych"

Copied!
28
0
0

Pełen tekst

(1)

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 RM b) Dwuwymiarowy rozkład normalny

4.Testowanie generatorów

a) Testy zgodności z rozkładem: , OPSO

b) Testy zgodności z rozkładem statystyk: pozycyjne, test sum c) Testy kombinatoryczne

(2)

2 Generatory o rozkładzie równomiernym

Najprostsze generatory liczb losowych to generatory fizyczne wykorzystujące:

1) szumy układów elektronicznych 2) 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ów

d) Powtarzalność ciągów generowanych liczb generatory

liczb losowych

fizyczne programowe

(komputerowe)

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ągu T0 – 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.)

X

0

; X

1

; X

2

; : : : ; X

n

m = 2

32

U = X

m ) U

i

2 (0; 1]

X

0

; : : : ; X

º¡1

| {z }

Ta

X

º

; X

º+1

; : : : ; X

º+P¡1

| {z }

To

; X

º+P

; : : :

(3)

3 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 b.

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 =3 18 mod 6 =0 14 mod 6 =2 17 mod 6 =5 13 mod 6 =1 16 mod 6 =4 12 mod 6 =0

X

n+1

= (a

1

X

n

+ a

2

X

n¡1

+ : : : +a

k

X

n¡k+1

+ c) mod m

r = (a mod n); a; n; r 2 Z

a ´ r mod n ) r = a ¡ j a n

k n

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 odmiany a) generator multiplikatywny gdy

b) generator mieszany gdy

Maksymalny okres generatora liniowego to (m-1) Generator multiplikatywny

c 6= 0 c = 0

X

0

; X

1

; X

2

; : : : ; X

k

X

i+1

= aX

i¡1

mod m k

i

=

¹ aX

i¡1

m

º

; i ¸ 1 X

1

= aX

0

¡ mk

1

X

2

= a

2

X

0

¡ mk

2

¡ mk

1

a

X

3

= a

3

X

0

¡ mk

3

¡ mk

2

a ¡ mk

1

a

2

: : : : : : : : : : : :

X

n

= a

n

X

0

¡ m(k

n

+ k

n¡1

a + : : : + k

1

a

n¡1

)

(4)

4 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

n

= a

n

X

0

mod m

Xi

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

X

i

= aX

i¡1

mod 11; X

0

= 1

(5)

5 Okres generatora multiplikatywnego

Maksymalny okres generatora multiplikatywnego wynosi

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

Przykład

Wykorzystujemy liczby Marsenne'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

T = min fi : X

i

= X

0

; i > 0 g

a

(m¡1)=p

6= 1 mod m

m = 2

p

¡ 1

a ´ 1 mod 4

a ´ 1 mod p

a = 69069 c = 1 m = 2

32

W przypadku generatora mieszanego maksymalny okres uzyskamy po spełnieniu warunków:

a) liczby c i m nie mają wspólnych dzielników b) jeżeli 4 jest dzielnikiem m to

c) dla każdego dzielnika pierwszego p liczby m

Przykład.

T = 2

31

¡ 2

p = 31 ) m = 2

31

; a = 7

5

U = fU

i

; 1 · i · T g

1

2

31

¡ 1 = 4:657 £ 10

¡10

(6)

6 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.

X

i

= aX

i¡1

mod 11

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

(U

1

; U

2

; : : : ; U

d

); (U

2

; U

3

; : : : ; U

d+1

); : : :

(U

1

; U

2

; : : : ; U

d

); (U

d+1

; U

d+2

; : : : ; U

2d

); : : :

(7)

7 Parametry statystyczne generatora o rozkładzie

równomiernym w (0,1)

Jeśli generowany ciag liczb jest niezależny to wartość oczekiwana (średnia) 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).

¹ = Z

1

0

xdx = x

2

2 j

10

= 1 2

¹

¹ = 1 N

X

N i=1

x

i

¾

2

= Z

1

0

(x ¡ ¹)

2

dx = 1 12

¹

¾ = 1 N

X

N i=1

(x

i

¡ ¹¹)

2

Przykład.

Przeanalizujmy parametry statystyczne L bitowego generatora

Można nim wygenerować 4 ciągi liczb o okresie

Jeden z nich:

Ciąg liczb pseudolosowych

jest permutacją liczb

Liczby znormalizowane

Średnia

Wariancja

X

i+1

= aX

i

mod 2

L

c ´ 3 mod 8; X

0

´ 1; 3; 9; 11 mod 16 X

0

; X

1

; X

2

; : : :

8j + 1; 8j + 3; j = 0; 1; : : : ; 2

L¡3

¡ 1 T = 2

L¡2

U

i

= X

i

2

L

¾

2

= 1

12 ¡ 13 3 ¢ 2

m

¹

¹ = 1

2 ¡ 1

2

L¡1

(8)

8 Funkcja autokorelacji opisuje zależność

elementów ciągu od wyrazów poprzednich.

Definicja

Oraz wzór dla ciągu skończonego

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

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

Dla analizowanego generatora mieszanego oraz dla r=1 współczynnk autokorealcji można oszacować z poniższej relacji

A = 1

a ¡ 6c

am (1 ¡ c m )

B = a

m

R

1

2 [A ¡ B; A + B]

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.

X

i

= (1176X

i¡1

+ 1476X

i¡2

+ 1776X

i¡3

) mod (2

32

¡ 5) X

i

= 2

13

(X

i¡1

+ X

i¡2

+ X

i¡3

) mod (2

32

¡ 5)

X

i

= (1995X

i¡1

+ 1998X

i¡2

+ 2001X

i¡3

) mod (2

35

¡ 849) X

i

= 2

19

(X

i¡1

+ X

i¡2

+ X

i¡3

) mod (2

32

¡ 1629)

b

i

= (a

1

b

i¡1

+ : : : + a

k

b

i¡k

) mod 2 i = k + 1; k + 2; : : :

a

1

; a

2

; : : : ; a

k

2 f0; 1g

b

1

; b

2

; : : : ; b

k

2 f0; 1g R ~

r

= lim

n!1

1 N

N

X

¡1 i=0

X

i

X

i¡r

R

r

= 1

(N ¡ r)¾

2

N

X

¡r i=1

(X

i

¡ ¹)(X

i+r

¡ ¹)

(9)

9 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

a xor b = (a + b) mod 2 a

j1

= a

j2

= : : : = a

jk

= 1

b

i

= b

i¡j1

xor b

i¡j2

xor : : : xor b

i¡jk

b

i

= b

i¡p

xor b

i¡q

; p > q; p; q 2 N

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

(generator Tauswortha)

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.

U

i

=

X

L j=1

2

¡j

b

is+j

= 0:b

is+1

: : : b

is+L

i = 0; 1; 2; : : :

(10)

10 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.

Jego modyfikacja

nie posiada już tej wady.

Okres generatora zależy od operacji. Dla

f

0

= f

1

= 1

f

n

= f

n¡2

+ f

n¡1

¦ = +; ¡; ¤; xor

T = 8 >

> <

> >

:

(2

r

¡ 1)2

L¡1

F (r; s; +) (2

r

¡ 1)2

L¡1

F (r; s; ¡) (2

r

¡ 1)2

L¡3

F (r; s; ¤)

(2

r

¡ 1) F (r; s; xor) m = 2

L

Generator charakteryzuje się dużym okresem ale jest wolniejszy np. względem generatorów

multiplikatywnych co obecnie nie jest już dużą wadą.

Kombinacje generatorów

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ónomiernego będzie wówczas wyrażenie

qqq = (q

1

; q

2

; : : : ; q

n

)

krk =

Ã

n

X

i=1

r

ip

!

1=p

rrr = (r

1

; r

2

; : : : ; r

n

) P fX = ig = r

i

P fY = ig = q

i

i = 1; 2; : : : ; n

±(X) = k(r

1

; r

2

; : : : ; r

n

) ¡ (1=n; 1=n; : : : ; 1=n)k X

i

= X

i¡2

+ X

i¡1

mod m; i ¸ 2

X

i

= X

i¡r

¦ X

i¡s

mod m

i ¸ r; r > s ¸ 1

(11)

11 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 i są liczbami pierwszymi to wtedy nowy ciąg liczb

ma okres równy T1T2.

Generator uniwersalny

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

+; ¡; ¤; xor X ¦ Y

±(X ¦ Y ) · minf±(X); ±(Y )g

X

1

; X

2

; : : : ; X

n

Y

1

; Y

2

; : : : ; Y

n

X

i

¦ Y

j

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

V

i

= V

i¡97

¦ V

i¡33

V

i

2 [0; 1)

x ¦ y = x ¡ y; x ¸ y F (97; 33; ¦)

x ¦ y = x ¡ y + 1; x < y V

1

; V

2

; : : : ; V

97

V

1

= 0:b

1

b

2

: : : b

24

V

2

= 0:b

25

b

26

: : : b

48

y

n

= (y

n¡3

y

n¡2

y

n¡1

) mod 179 z

n

= (52z

n¡1

+ 1) mod 169 b

n

=

½ 0; gdy y

n

z

n

mod 64 < 32

b

n

= 1; w pozostalych przypadkach

U

n

= V

n

¦ c

n

(12)

12 Generatory muszą być zainicjowane

Okres generatora kombinowanego: 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

y

1

; y

2

; y

3

2 f1; 2; : : : ; 178g z

1

2 f0; 1; : : : ; 168g

c

n

= c

n¡1

¦

µ 7654321 16777216

n ¸ 2

c

1

= 362436 16777216 c ¦ d = c ¡ d; c ¸ d c ¦ d = c ¡ d + 362436

16777216 ; c < d c; d 2 [0; 1)

Generator ULTRA – oparty na odejmowaniu z pożyczką

Wykorzystujemy w nim operację

której wynikiem jest

Parametr c jest tzw. bitem przeniesienia. Jego początkowa wartośc wynosi 0.

W generatorze ULTRA przyjęto parametryzację

Elementy ciągu wyznaczamy rekurencyjnie

Generator inicjalizujemy L-bitowymi liczbami

x ª y mod m

½ x ¡ y ¡ c + m x ¡ y ¡ c < 0 ! c = 1 x ¡ y ¡ c x ¡ y ¡ c ¸ 0 ! c = 0

c 2 f0; 1g

m = 2

L

L ¸ 32; r; s; r > s

X

i

= X

i¡r

ª X

i¡s

mod m X

1

= b

L

b

L¡1

: : : b

1

X

2

= b

2L

b

2L¡1

: : : b

L+1

X

r

= : : :

(13)

13 Ciąg bitów

tworzymy ze znaków liczb

które generujemy następująco:

1) Podajemy dwie liczby:

2) Kolejno obliczamy

gdzie: k1, k2 są ustalonymi liczbami.

Operacja

oznacza przesunięcie bitów w vi w prawo i wypełnienie najstarszych k1 bitów zerami.

b

1

; b

2

; : : :

w

1

; w

2

; : : :

u

0

; v

0

2 (0; m)

u

i

= ¸u

i¡1

mod m v

i

= (v

i

>> k

1

) xor v

i

v

i

= (v

i

<< k

2

) xor v

i

w

i

= u

i

xor v

i

v

i

>> k

1

Jeśli

jest liczbą pierwszą to okres generatora jest równy najmniejszej liczbie naturalnej k dla której spełnione jest poniższe równanie

W generatorze ULTRA dla parametrów

Okres generatora wynosi 10346.

Generator jest bardzo szybki. Pozwala generować liczby całkowite: 32, 31, 8, 7 i 1 bitowe.

M = m

r

¡ m

s

+ 1

m

k

mod M = 1

L = 32 r = 37 s = 24

¸ = 69069

(14)

14 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.

Generator nielinowy Eichenauera-Lehna

gdzie: m jest liczbą pierwszą

Odwrotność modulo liczymy następująco

Uzyskujemy w ten sposób ciąg liczb

o rozkładzie równomiernym.

c = 0 ) c

¡1

mod m = 0

c 6= 0 ) c ¢ (c

¡1

mod m) = 1 c

¡1

= c

m¡2

mod m

X

i

2 f0; 1; : : : ; m ¡ 1g

U

i

= X

i

m 2 [0; 1)

Generator 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

a 2 f1; 2; : : : ; mg

m

2

¡ 1

z

m2¡1

= 1 mod (z

2

¡ bz ¡ a) X

i+1

= (aX

i¡1

+ b) mod m; i = 0; 1; : : :

X

i

= (a(i + i

0

) + b)

¡1

mod m; i = 0; 1; : : :

(15)

15 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):

Przykład.

Rozkład wykładniczy

F : R ! R

x!¡1

lim F (x) = 0

x

lim

!1

F (x) = 1

F (x) = Z

x

¡1

f (t)dt

F (x) =

½ 1 ¡ e

¡¸x

x ¸ 0 0 x < 0

Rozkład normalny

F (x) = Z

x

¡1

1

¾ p

2¼ exp µ

¡ (t ¡ ¹)

2

2

¶ dt

Rys. Dystrybuanta rozkładu normalnego.

f (x) = e

¡¸x

(16)

16 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

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

X = F

¡1

(U )

P fX · xg = P fF

¡1

(U ) · xg

= P fU · F (x)g

= F (x)

U

1

; U

2

; : : : ; U

n

2 (0; 1)

X

1

; X

2

; : : : ; X

n

2 (¡1; 1)

X

1

; X

2

; : : : ; X

n

p

k

= P fX = kg; k = 0; 1; 2; : : :

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

korzystając ze wzoru

Odwracanie dystrybuanty sprawia duże trudności numeryczne.

Przykład.

Odwracanie dystrybuanty dla rozkładu normalnego

gdzie: L(t) i M(t) są wielomianami stopnia 4 zmiennej t.

Zaletą tej metody jest to, że do wygenerowania jednej nowej zmiennej losowej Xn potrzeba tylko jednej zmiennej pierwotnej Un.

U

1

; U

2

; : : : ; U

n

2 (0; 1)

X

n

= min (

k : U

n

· X

k

i=0

p

i

)

; n = 1; 2; : : :

©

¡1

(u) =

½ g(u) 10

¡20

< u < 0:5

¡g(1 ¡ u) 0:5 · u · 1 ¡ 10

¡20

g(u) = t ¡ L(t)

M (t) ; t = p

¡2ln u

(17)

17 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.

Oznaczenia

- pole powierzchnii zbioru C (miara Lebesgue'a): l2(C) - zbór A

Ponieważ f(x) jest gęstością prawdopodobieństwa, więc

U

1

2 [a; b] U

2

2 [0; d]

U

2

· f(U

1

) ) X = U

1

A = f(x; u) : a · x · b; 0 · u · f(x)g

l

2

(A) = 1

(18)

18 Pole powierzchnii prostokąta (a,b)x(0,d)

Przy tych założeniach możemy stwierdzić że dowolnie wybrany punkt  ma rozkład

równomierny na zbiorze

jeżeli dla podzbiorów C tego zbioru zachodzi

Tw. Jeśli (X1,U1), (X2,U2),... jest ciągiem punktów losowych o rozkładzie

równomiernym w prostokącie (a,b)x(0,d) oraz (Xi,Ui) będzie pierwszym punktem

wpadajacym do zbioru A to punkt ten ma rozkład równomierny w A.

Dowód. Rozważamy podzbiór B zbioru A

l

2

((a; b) £ (0; d)) = (b ¡ a)d

D ½ R

2

P f! 2 Cg = l

2

(C) l

2

(D)

P f(X; U) 2 Bg = X

1

i=1

P f(X

1

; U

1

) = 2 A; : : : ; (X

i¡1

; U

i¡1

) = 2 A; (X

i

; U

i

) 2 Bg

= X

1

i=1

µ

1 ¡ l

2

(A) (b ¡ a)d

i¡1

l

2

(B)

(b ¡ a)d = l

2

(B) l

2

(A)

Tw. Jeżeli U ma rozkład równomierny w [0,1] a X ma rozkład o gęstości f(x) oraz X i U są niezależne, to punkt losowy (X,Uf(X)) ma rozkład równomierny w zbiorze A.

Powyższe rozważania można uogólnić na większą liczbę wymiarów.

Ponadto zamiast stałej d ograniczającej f(x) od góry można wprowadzić funkcję ograniczającą cg(x), wówczas warunkiem akceptacji jest

gdzie: c jest stałą, a g(x) rozkładem zbliżonym do f(x).

Zabieg taki opłaca się wykonać wówczas gdy

wyznaczenie ciągu liczb o gęstości g(x) jest łatwe i szybkie. Funkcję g(x) nazywamy wtedy rozkładem dominującym.

Jak dobrać stałą c?

cg(X)U · f(X); X 2 [a; b]; U 2 [0; 1]

c = sup

x

f (x) g(x) P fU cg(X) · f (X)g = Z

Rk

g(x)d

k

x

Z

f (x)=cg(x) 0

du = f (x)

cg(x)

(19)

19 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ę zastępuje się sumą

f (x) =

Z

1

¡1

g

t

(x)h(t)dt

f (x) = X

1

i=1

p

i

g

i

(x) = X

K

i=1

p

i

g

i

(x)

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. Algorytm generacji ciagu zmiennej X jest wówczas następujący:

1) Losujemy zmienną losową

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.

p

i

= Z

Ai

f (x)dx

g

i

(x) = 111

Ai

f (x) p

i

I 2 f1; 2; : : : ; Kg

g

i

(x) = 111

Ai

f (x) p

i

p

i

¸ 0;

X

K i

p

i

= 1

(20)

20 Rozkład dyskretny

a) metoda odwracania dystrybuanty W rozkładzie dyskretnym mamy określone prawdopodobieństwo wylosowania danej liczby

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

dopóki warunek jest spełniony

b) W przeciwym wypadku akceptujemy X 4) Kroki 1-3 wykonujemy aż do uzyskania odpowiednio licznego ciągu X1,X2,X3,...

P fX = kg = p

k

; k = 0; 1; 2; : : : ; M

X

M k=0

p

k

= 1

U > S

X = X + 1; S = S + p

x

b) Metoda równomiernego rozbicia przedziału 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

µ i ¡ 1

K + 1 ; i K + 1

; i = 1; 2; : : : ; K + 1

[(K + 1)U + 1]

P fX = kg = p

k

; k = 0; 1; 2; : : : ; K

q

¡1

= 0

g

i

= max

½

j : q

j

< i K + 1

¾

; i = 1; 2; : : : ; K + 1 q

i

=

X

i j=0

p

j

; i = 0; 1; : : : ; K

(21)

21 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.

X = [(K + 1)U + 1]

X = X ¡ 1 q

X¡1

> U X = g

X

+ 1

q

X¡1

< U

q

X¡1

> U

Generatory o rozkładach wielowymiarowych Zadanie można sformułować następująco:

Należy wygenerować ciąg wielowymiarowych zmiennych 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 (Km(0,1)) . Algorytm.

Losujemy m zmiennych niezależnych o rozkładzie równomiernym w (-1,1) i konstruujemy zmienną wielowymiarową

Zmienną akceptujemy jeśli

X

X X = (X

1

; X

2

; : : : ; X

m

)

f (x

1

; x

2

; : : : ; x

m

)

U U U = (U

1

; U

2

; : : : ; U

m

)

kUk

2

· 1

(22)

22 Prawdopodobieństwo akceptacji zmiennej jest

równe ilorazowi objętości kuli i opisanej na niej kostki [-1,1]m

Ś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.

N

m

= 1 p

m

p

m

= ¼

m=2

2

m

¡(m=2 + 1)

m pm Nm

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

Rozkład równomierny na sferze

Jeżeli m-wymiarowa zmienna losowa

ma rozkład równomierny na sferze

oraz macierz Amxm jest macierzą ortonormalną tj. macierzą obrotu w przestrzeni Rm to zmienna losowa AX ma

również rozkład równomierny na tej sferze.

m-wymiarowa zmienna

ma rozkład sferycznie konturowany jeżeli jej gęstość prawdopodobieństwa

zależy tylko od

X X X = (X

1

; X

2

; : : : ; X

m

)

S

m

= 8 <

: (x

1

; : : : ; x

m

) : X

m j=1

x

2j

= 1 9 =

;

Z Z Z = (Z

1

; Z

2

; : : : ; Z

m

)

g

Z

(z

1

; z

2

; : : : ; z

m

)

kzk

2

= X

m j=1

z

j2

(23)

23 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ść

Dla macierzy ortonormalnej zachodzi

więc AZ ma identyczny rozkład.

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

1) Generujemy m-wymiarową zmienną losową Z o rozkładzie normalnym

2) Obliczamy

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

g

Z

(z

1

; : : : ; z

m

) = 1

(2¼)

m=2

exp µ

¡ 1

2 kzk

2

kAZ Z Z k

2

= kZ Z Z k

2

X

X X = Z Z Z kZ Z Z k

Rozkład równomierny na sferze Sm Tw. Jeżeli zmienna

ma rozkład równomierny na k-wymiarowej sferze Sk, R jest zmienną o rozkładzie

a s jest losowym znakiem

to (k+1)-wymiarowa zmienna losowa

ma rozkład równomierny w (k+1) wymiarowej kuli.

Rozkład równomierny na Kuli Km

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

Z Z Z = (Z

1

; Z

2

; : : : ; Z

k

)

h(r) =

(

pcrk¡1

1¡r2

; 0 · r · 1 0 r = 2 [0; 1]

P fs = 1g = P fs = ¡1g = 1 2

X X X = (RZ

1

; RZ

2

; : : : ; RZ

k

; s p

1 ¡ R

2

)

h(r) = mr

m¡1

; 0 · r · 1

(24)

24 Wystarczy więc wygenerować punkt

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

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

Dwuwymiarowy rozkład normalny (metoda Boxa-Mullera)

Jeżeli dwie niezależne zmienne losowe U1 i U2 mają rozkład równomierny w przedziale [0,1] to zmienne losowe

również są niezależne a prawdopodobieństwo ich otrzymania opisuje rozkład normalny o

parametrach

Z Z Z = (Z

1

; Z

2

; : : : ; Z

m

)

X

X X = (RZ

1

; RZ

2

; : : : ; RZ

m

)

¹ = 0

¾ = 1 X

1

= p

¡2ln(U

1

)cos(2¼U

2

) X

2

= p

¡2ln(U

1

)sin(2¼U

2

)

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 kolejny ch liczb startując od losowo wybranej liczby początkowej 2)Obliczamy wartość statystyki testowej (T)

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

4) 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.

F (T

1

); F (T

2

); F (T

3

); : : : ; F (T

N

)

(25)

25 Testy zgodności z rozkładem równomiernym

U(0,1)

Test chi-kwadrat

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 n liczb

Sprawdzamy ile z nich spełnia warunek

Ich liczbę oznaczamy ni.

F (a) = 0 F (b) = 1

a < a

1

< a

2

< : : : < a

k

= b

p

i

= P fa

i¡1

< X · a

i

g; i = 1; 2; : : :

X

1

; X

2

; : : : ; X

n

a

i¡1

< X · a

i

Statystyką testu jest

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

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

wówczas statystyka przyjmuje prostszą postać

Â

2k¡1

= X

k

i=1

(n

i

¡ np

i

)

2

np

i

p

i

= 1 k

Â

2k¡1

= k n

X

k i=1

n

2i

¡ n

(26)

26 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() – oczywiście dla

odpowiednio dużego n.

Przykładowe parametry testu OPSO

X

1

; X

2

; : : : ; X

n

I

1

; I

2

; : : : ; I

n

(I

1

; I

2

); (I

2

; I

3

); : : : ; (I

n¡1

; I

n

)

f(i; j) : i; j = 0; 1; : : : ; 2

b

¡ 1g

b n  

10 2

21

141909 290.26 11 2

22

1542998 638.75 12 2

23

567639 580.80

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.

X

1

; X

2

; : : : ; X

n

(X

1

; X

2

; : : : ; X

m

); (X

m+1

; X

m+2

; : : : ; X

2m

); : : :

y = h(x

1

; x

2

; : : : ; x

m

)

Y

j

= h(X

(j¡1)m+1

; X

(j¡1)m+2

; : : : ; X

jm

) j = 1; 2; : : :

G(y) = P fY

j

· yg

(27)

27 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.

u = max fx

1

; x

2

; : : : ; x

m

g v = min fx

1

; x

2

; : : : ; x

m

g r = u ¡ v

U; V; R

P fU

j

· ug = u

m

; 0 · u · 1

P fV

j

· vg = 1 ¡ (1 ¡ v)

m

; 0 · v · 1

P fR

j

· rg = mr

m¡1

¡ (m ¡ 1)r

m

; 0 · r · 1

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.

y = x

1

+ x

2

+ : : : + x

m

g

2

(y) =

½ y 0 · y · 1 2 ¡ y 1 < y · 2

g

3

(y) = 8 <

:

y2

2

0 · y · 1

1

2

(y

2

¡ 3(y ¡ 1)

2

) 1 < y · 2

1

2

(y

2

¡ 3((y ¡ 1)

2

+ 3(y ¡ 2)

2

)) 2 < y · 3

(28)

28 Testy kombinatoryczne

Pozwalają sprawdzić czy dostarczane przez generator liczby są niezależnymi zmiennymi losowymi.

W testach tych sprawdza się hipotezę że

wielowymiarowa zmienna losowa utworzona z ciągu liczb

ma rozkład o dystrybuancie

Do tej grupy testów zaliczają się np: test pokerowy, test kolekcjonera, test kolizji, test permuatcji.

H(x

1

; x

2

; : : : ; x

n

) = F (x

1

)F (x

2

) : : : F (x

n

)

(X

1

; X

2

; : : : ; X

n

)

Cytaty

Powiązane dokumenty

Stąd wynika, że rozwartość trójkątowa zbioru E jest nie większa od rozwartości trójkątowej odcinka L... Последовательность alf

Pokaż przebieg algorytmów wyszukiwania sekwencyjnego (indeks) oraz bez powtórzeń (kolejne przedziały) przy wyszukiwaniu wartości równej liczbie o indeksie równym

czy gęstość losowanych punktów jest stała w

Korzystając z odpowiednich tabel statystycznych proszę sprawdzić czy nasza hipoteza jest prawdziwa na poziomie istotności α = 0.05 (α jest prawdopodobieństwem pierwszego ro-

W sprawozdaniu proszę zamieścić histogram pokazujący wartości n i /n dla każdego z podprze- działów, na tym samym rysunku proszę także zamieścić przebieg funkcji

Które z wªasno±ci relacji równowa»no±ci i racjonalnej preferencji maj¡ relacje z zadania 1?. Je±li która± z tych relacji jest równowa»no±ci¡, poda¢ jej

dr hab. Mieczysław Jessa, prof.. Generatory ciągów liczbowych w kryptografii ... Klasyfikacja generatorów ciągów liczbowych ... Generatory liczb pseudolosowych ... Generatory

Zasadniczo chodzi tylko o dodawanie, bo pozostałe działania sprowadzają się do dodawania (odejmowanie to dodawanie liczb różnych znaków np.. W przypadku liczb rzeczywistych