Title: Maturski rad iz modelovanja u fizici: Generatori pseudo
1Maturski rad iz modelovanja u fiziciGeneratori
pseudo slucajnih brojeva
- Mentor
- Jugoslav Karamarkovic Strahinja Bonic
2Slucajne promenljive
- Slucajna promenljiva je velicina koja na
numericki nacin opisuje ishod nekog eksperimenta
(ogleda) sa slucajnim ishodom. - Slucajne promenljive se dele na diskretne i
kontinualne. Ako je skup ishoda ogleda konacan
ili prebrojivo beskonacan onda je u pitanju
diskretna, a ako je neprebrojivo beskonacan u
pitanju je kontinualna slucajna promenljiva.
3Slucajne promenljive
- Posmatrajmo kontinualnu slucajnu promenljivu x
koja može da uzme bilo koju vrednost iz intervala
(x1,x2). - Ako postoji funkcija g(x) definisana na intervalu
(x1,x2) takva da g(x1)dx predstavlja verovatnocu
da slucajna promenljiva uzme vrednost u
interva-lu (x1, x1dx) onda se funkcija g(x)
naziva funkcija gustine raspodele.
4Slucajni brojevi
- Definicija Slucajna promenljiva Z sa uniformnom
raspodelom na intervalu (0,1) naziva se slucajan
broj. - funkcija gustine f(z) 0 zlt0
- 1 0ltzlt1
- 0 zgt0
5Slucajni brojevi
- Uopšteno govoreci, postoje tri nacina za
generisanje slucajnih brojeva - 1) tablice - mana tablica je ogranicena dužina i
glomaznost - 2) slucajni procesi u prirodi (poput šuma u
elektronskoj spravi) - 3) kompjuterski generisani "pseudo-slucajni"
brojevi
6Pseudoslucajni brojevi
- Pseudoslucajni brojevi su oni koji se dobijaju po
nekoj formuli ili algoritmu i koji imitiraju
vrednosti slucajne promen-ljive Z sa uniformnom
raspodelom na intervalu (0,1) u smislu da
zadovoljavaju niz testova koje zadovoljavaju i
slucajni brojevi.
7Pseudoslucajni brojevi
- Da bi se ubrzao proces generisanja, napisani su
kompjuterski softveri za dobijanje nizova
slucajnih brojeva. Medutim, kako je kompjuter
deterministicka mašina, sam koncept "slucajnog"
na njega je neprimenljiv.
8Pseudoslucajni brojevi
- Ovi softveri zapravo samo simuliraju nizove
slucajnih brojeva, obzirom da je niz koji se
dobija potpuno odreden relativno malim brojem
zadatih pocetnih vrednosti i nakon nekog broja
elemenata pocinje periodicno da se ponavlja.
9Pseudoslucajni brojevi
- Na osnovu metoda koji koriste, ovi softveri mogu
se podeliti na - Linear congruential generator - linearni
generator slucajnih brojeva - Lagged Fibonacci generator koristi se formula
slicna onoj za dobijanje Fibonacijevog niza - Linear shift register generator - brojevi se ne
dobijaju aritmetickim vec logickim operacijama.
10Pseudoslucajni brojevi
- Mnogo kvalitetniji nizovi se dobijaju kada na
racunaru postoji neki modul koji daje slucajne
brojeve prikupljene iz istinski stohastickih
dogadaja koji se dogadaju na mikronivou. Neka od
mogucih rešenja su data ispod - 1) hardverske mogucnosti
- sistemski sat
- korišcenje audio ulaza na zvucnoj kartici
- merenje vremena izmedu klikova mišem ili pracenje
kretanja kursora - 2) upotreba privremenih podataka
11Pseudoslucajni brojevi
- Primena generatora slucajnih brojeva može se
podeliti na dve grupe - kriptografija (šifrovanje)
- racunarska simulacija (opisivanje realnog
dogadaja uz pomoc brojeva)
12Pseudoslucajni brojeviMetod sredina kvadrata
(Nojman)
- Zk0,w1,w2,...w2m
- Zk20, u1,u2,...u4m
- Zk10, um1,um2,...u3m
(0.3762)2 0.1415264 0.1526
13Pseudoslucajni brojeviDecimale broja p
- p/100.314159...
- Primer k0.0003 (10000k3 (od trece znacajne
cifre broja p/10)) - 0.314159265358 979323846264338327950288...
- Z00,w1,w2,...w100.4159265358
- Z10,w11,w12,...w200.9793238462
- Z20,w21,w22,...w300.6433832795
14Pseudoslucajni brojeviGenerator ,,Wolfram
Mathematica
- Programski paket ,,Wolfram Mathematica, kao i
mnogi drugi programi danas, koriste generator
,,Mersenne twister koji su 1997. godine
isprogramirali Makoto Matsumoto i Takuji
Nishimura. Generator se bazira na matricnoj
linearnoj rekurenciji nad binarnim poljem.
15Testovi (pseudo)slucajnih brojeva
- Test uniformnosti (bin test)
- Test korelacije (test dupleta, tripleta,
kvadripleta,...) - Test srednjih vrednosti kvadrata, kubova...
16Testovi (pseudo)slucajnih brojeva
- Za razlicite ulazne podatke generisana su po 3
niza za svaki od prethodno navedenih generatora - Vrši se uporedivanje sva 3 generatora pomocu 3
razlicita testa. Testovi se rade za svaki od 3
niza navedenih generatora - Za test dupleta i test uniformnosti generisani su
nizovi od po 10000 brojeva, a za test srednjih
vrenosti kvadrata po 1000 brojeva
17Test dupleta
- Zamislimo kvadrat stranice a1 i podelimo ga na
npr. P 20x20400 jednakih delova (celija). - Uocimo jednu celiju. Verovatnoca da se generacija
slucajnog para (z1,z2) poklopi sa tom celijom
jednaka je 1/P. Ako se opit ponavlja NkP puta,
verovatnoca da ce celija ostati nepogodena
jednaka je - p(1-1/P)kPexp(-k)
18Test dupleta
- a ocekivani broj nepogodenih celija je
- Pexp(-k)
- Test prati broj nepogodenih celija i uporeduje ga
sa teorijskom vrednošcu.
19Test dupleta
- Loš genrator tipa 1
- Teži da što pre popuni sva polja pa se može
pretpostaviti da u sledecem koraku par nece
popuniti neko od vec popunjenih polja - Loš generator tipa 2
- Vrlo sporo popunjava prazna polja jer se parovi
grupisu oko odredenih polja (koordinata) pa se u
sledecem koraku može predvideti par u nekom od
tih polja
20Test dupleta
21Test dupleta
22Test dupleta
23Test dupleta
24Test dupleta
- Što se tice metoda sredina kvadrata, on daje
dobre vrednosti samo u pocetku i to samo za neke
ulazne vrednosti. U naredna tri grafika vidi se
da ovaj metod daje dobre rezultate za prvih 50
parova, dok za vise od 500 parova pokazuje velika
odstupanja. Ostala dva generatora daju jako dobre
rezultate.
25Test srednje vrednosti kvadrata
- Izracunava se srednja vrednost kvadrata za prvih
10 clanova (Xsr10 (Z1... Z10 - )/10), pa zatim za 20 (Xsr20), pa za 30...
- Pokazuje se da kod beskonaco dugih nizova
slucajnih brojeva (sa uniformnom raspodelom)
važi - Xsr 81/30.333
26Test srednje vrednosti kvadrata
27Test srednje vrednosti kvadrata
28Test srednje vrednosti kvadrata
29Test srednje vrednosti kvadrata
- Sa prethodnih grafika se vidi da sva tri
generatora daju dobre rezultate, s tim što metod
sredina kvadrata pokazuje izvesna odstupanja od
teorijske vrednosti.
30Test uniformnosti
- Test uniformnosti (bin test) Interval (0,1) se
podeli na m jednakih podintervala i pro-verava da
li je verovatnoca pojavljivanja slucajnog broja u
svakom podintervalu 1/m. - U našem slucaju je m10
31Test uniformnosti
32Test uniformnosti
33Test uniformnosti
34Test uniformnosti
- Sa prethodnih grafika se vidi da p-generator i
Mathematica daju dobre rezultate, dok metod
sredina kvadrata pokazuje izvesna odstupanja.
35Provera generatora pseudo-slucajnih brojeva
- Jednodimenzionalna slucajna šetnja
- Cestica se nalazi u koordinatnom pocetku x-ose.
Ona može da se krece jedinicnim koracima levo
(xi-1) i desno (xi1). Pre svakog koraka
verovatnoca kretanja u desno je p, a verovatnoca
kretanja u levo q (q1-p). Slucajna promenljiva X
definiše se kao položaj cestice nakon n koraka - Xx1x2...xn
36Provera generatora pseudo-slucajnih brojeva
- Pretpostavimo sada da je pq0.5. Intuitivno je
jasno da je E(X)0. Potražimo D(X) - Onda je sn(1/2)
37Provera generatora pseudo-slucajnih brojeva
- Kako shvatiti ovaj rezultat?
- Ako posmatramo m cestica, svaka od cestica ce se
posle definisanog broja koraka (n) naci u nekoj
tacki xi koja ne mora biti nula ngtxigt-n
(i1,m). Medutim, ako izvršimo usrednjavanje po
svim cesticama, imacemo
38Provera generatora pseudo-slucajnih brojeva
39Provera generatora pseudo-slucajnih brojeva
- Modelovanje jednodimenzionalne slucajne šetnje
pomocu generatora se vrši na sledeci nacin - 1) Ako se slucajni broj Zi nalazi u intervalu
(0.0,0.5) cestici se dodeljuje korak xi -1 - 2) Ako se slucajni broj Zi nalazi u intervalu
(0.5,1.0) cestici se dodeljuje korak xi 1
40Provera generatora pseudo-slucajnih brojeva
- Za modelovanje je korišcen generator programskog
paketa ,,Wolfram Mathematica i p-generator. Na
graficima su prikazani rezultati matematickog
ocekivanja i disperzije za slucaj od
m10,20,50,100 cestica u n100 koraka, prvo za
Mathematicu, a onda za p-generator, naizmenicno
41Provera generatora pseudo-slucajnih brojeva
42Provera generatora pseudo-slucajnih brojeva
43Provera generatora pseudo-slucajnih brojeva
44Provera generatora pseudo-slucajnih brojeva
45Provera generatora pseudo-slucajnih brojeva
46Provera generatora pseudo-slucajnih brojeva
47Provera generatora pseudo-slucajnih brojeva
48Provera generatora pseudo-slucajnih brojeva
49Provera generatora pseudo-slucajnih brojeva
50Provera generatora pseudo-slucajnih brojeva
51Provera generatora pseudo-slucajnih brojeva
52Provera generatora pseudo-slucajnih brojeva
53Provera generatora pseudo-slucajnih brojeva
54Provera generatora pseudo-slucajnih brojeva
55Provera generatora pseudo-slucajnih brojeva
56Provera generatora pseudo-slucajnih brojeva
57Zakljucak
- Na osnovu rezultata svih prethodnih testova, kao
i modelovanja jednodimenzionalne slucajne šetnje
možemo reci da je generator programskog paketa
,,Wolfram Mathematica opravdao svoja ocekivanja.
Von Neumann-ov generator je pokazao svoje
slabosti, ali ipak ostaje neuporedivo brži i
jednostavniji od ostala dva.
58Zakljucak
- Jako dobre rezultate je pokazao i p-generator,
što je još jedan dokaz da decimale broja p ne
pokazuju skoro nikakvu pravilnost, tj. broj p je
iracionalan. Ipak, bez obzira na sva
istraživanja, otvoreno pitanje o ovom broju koje
najviše pritiska jeste da li je p ,,normalan broj.
59Zakljucak
- Definicija ,,normalnog broja bi bila sledeca
- Broj je ,,normalan u osnovi b ako za svaki
prirodan broj m i za svaki niz cifara s dužine m
važi - gde N(n,s) predstavlja broj pojavljivanja niza
cifara s u prvih n cifara datog broja (u osnovi
b). Broj je apsolutno normalan (ili samo
normalan) ako je normalan u svim prirodnim
osnovama.
60Zakljucak
- Dakle, danas ovo predstavlja otvoren problem i
jedan od najistraživanijih (ako ne i
najistraživaniji) vezanih za broj p, tj. da li je
p normalan broj (ili, specijalan slucaj, da li je
normalan u bazi 10). Dokle su matematicari stigli
sa ovim pitanjem? Pa, ne baš daleko - još uvek
nije poznato cak ni to da li se sve cifre
javljaju beskonacan broj puta!