23
Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Postupci i algoritmi generiranja (pseudo)slučajnih brojeva Projekt iz predmeta Slučajni procesi u sustavima Davor Ćosić Borislav Đurđinovski Bojan Gašpar Denis Jakuš Gordan Markuš 10. siječanj 2012.

Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Embed Size (px)

DESCRIPTION

Postupci i algoritmi generiranja (pseudo)slučajnih brojeva. Projekt iz predmeta Slučajni procesi u sustavima Davor Ćosić Borislav Đurđinovski Bojan Gašpar Denis Jakuš Gordan Markuš 10. siječanj 2012. Generatori pseudo(slučajnih) brojeva. Uređaj generator istinskih slučajnih brojeva - PowerPoint PPT Presentation

Citation preview

Page 1: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Sveučilište u ZagrebuFakultet elektrotehnike i računarstva

Postupci i algoritmi generiranja(pseudo)slučajnih brojeva

Projekt iz predmeta Slučajni procesi u sustavima

Davor Ćosić Borislav Đurđinovski

Bojan GašparDenis Jakuš

Gordan Markuš10. siječanj 2012.

Page 2: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Generatori pseudo(slučajnih) brojeva

Uređaj generator istinskih slučajnih brojeva fenomeni iz fizičkog svijeta

Termički šum otpornika ili diode Radioaktivni raspad čestica Nestabilnost frekvencije slobodnog oscilatora Zvuk iz mikrofona ili slika iz kamere

Algoritam generator pseudoslučajnih brojeva deterministička priroda računala → prefiks pseudo

Izlaz → statistički potpuno nezavisne i nepredvidljive vrijednosti u obliku brojevnog niza

Page 3: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

PRNG algoritmi

Primjer

Page 4: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

PRNG algoritmi Lehmerov LCG

Multiplikativni linearni kongruentni algoritam Rekurzivna relacija:

m → prost broj (modul) a → cijeli broj iz intervala 2,3,...,m −1 (množitelj) Park-Miller

a = 16807 = 75 m = 231 −1

(a) paralelno vanjsko magnetsko polje (b) okomito vanjsko magnetsko polje

(c) ovisnost otpora o kutu

Page 5: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

PRNG algoritmi Mersenneov uvijač

Period generatora je Mersseneov broj Matrica linearnih ponavljanja nad konačnim binarnim

poljem Uvijen generaliziran povratni posmačni registar

(engl. kratica TGFSR) Rekurzivna relacija:

Uvijena transformacija A ZAHTJEV: 2nw−r −1 je Mersenneov broj

Period doseže teorijsku gornju granicu 2nw−r −1 Ekvidistribucija u n dimenzija

Page 6: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

PRNG algoritmi Mersenneov uvijač

w: veličina riječi (broj bitova) n: stupanj ponavljanja m: srednja riječ ili broj paralelnih odjeljenja 1 ≤ m ≤ n r: broj bitova donje maske bitova 0 ≤ r ≤ w −1 a: koeficijent matrice uvijanja b,c: TGFSR(R) bitovne maske s,t: TGFSR(R) posmaci bitova u,l: dodatni posmaci bitova

Page 7: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

PRNG algoritmi Mersenneov uvijač

Uvijena transformacija A

Iw −1 jedinična matrica dimenzija (w−1) × (w−1)

Page 8: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

PRNG algoritmi Mersenneov uvijač inačica MT19937

Period generatora: 219937 −1 (w,n,m,r) = (32,624,397,31) a = 9908B0DF16 u = 11 (s,b) = (7, 9D2C568016 ) (t,c) = (15, EFC6000016 ) l = 18

Page 9: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Pokazatelji slučajnosti Očekivanje

Idealni generator: E[X] = 0.5 Varijanca

Idealni generator: σ2 ≈ 0.0833

Entropija Mjera nepredvidljivosti slučajne varijable

Page 10: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Histogram

Test izvršen nad 100 000 uzoraka

Page 11: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Autokorelacija

Autokorelacijska ploha Park-Millerova generatora

Page 12: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Autokorelacija

Autokorelacijska ploha Mersenneova uvijača

Page 13: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Hi-kvadrat test

Neparametarski test Testiramo nultu hipotezu → uzorak ima određenu

(teorijsku) razdiobu

Jedan ishod → k razreda n ishoda ps vjerojatnost da ishod pada u razred s Ys stvarna vrijednost ishoda koji su ušli u razred s

Page 14: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Hi-kvadrat test

Statistička vrijednost V uspoređuje se s onim danim u tablici

ν = k −1 (stupanj slobode) Vrijednosti χ2 distribucije isključivo ovise o stupnju slobode, a ne o

broju ishoda i njihovoj vjerojatnosti testiranja uniformnosti → p između p = 25% i p = 75%

Page 15: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Hi-kvadrat test

Test je izvršen 4 puta n = 10000 slučajnih brojeva, smještenih u k = 31 razred

Page 16: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Kolmogorov-Smirnov test

Neparametarski test Usporedbi funkcija kumulativne raspodjele (CDF) Empirijska vs. Teorijska

Statističke vrijednosti K+n i K−

n (devijacije)

Page 17: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Kolmogorov-Smirnov test

Uzimamo maksimalnu devijaciju Usporedba vrijednosti → nivo značajnosti testa (α) Distribucije su indentične uz navedeni nivo značajnosti

Test je izvršen za dvadeset različitih funkcija distribucije

Page 18: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Kolmogorov-Smirnov test

α = 99% za Mersenneov uvijač α = 95% za Park-Millerov generator

Page 19: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Testovi slučajnosti Kolmogorov-Smirnov test

Page 20: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

TRNG sklopovlje Princip rada

Lavinski šum tranzistora Reverzno polariziran PN spoj emiter-baza

PIC mikrokontroler Analizu izvora šuma Serijsko slanje slučajnih podataka

Page 21: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

TRNG sklopovlje Princip rada

PIC 16F648A mikrokontroler → komparator Signal → brze promjene razine između 1V i 2V te šiljci do

3V

Šiljak → prekid Broj šiljaka neparan → logička jedinica Broj šiljaka paran → logička nula

Sklopka za način rada Slučajni bajtovi ASCII znakovi ’1’ i ’0’

Sklopka za XOR masku XOR nad izlaznim podacima koristeći alternirajući niz jedinica i nula

(counter)

Page 22: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Primjena Statističko uzorkovanje Razne računalne simulacije

Monte Carlo debugging

Kriptografija generiranje lozinki

Kockanje Preslušavanje muzike

shuffle Ostala područja gdje je poželjan nepredvidiv

rezultat

Page 23: Postupci i algoritmi generiranja (pseudo)slučajnih brojeva

Kraj

"The generation of random numbers is too important to be left to chance.“

− Robert R. Coveyou, Oak Ridge National Laboratory