1 / 31

Monte-Carlo meetodid 2. loeng

Monte-Carlo meetodid 2. loeng. Pseudojuhuslike arvude generaatorid. Eelmine loeng. Lineaarne kongruentne generaator. Pseudojuhuslikud arvud vahemikus 0..1 saadakse valemiga:. Lineaarse kongruentse generaatori abil on võimalik saada maksimaalselt m erinevat pseudojuhuslikku arvu:.

fahim
Télécharger la présentation

Monte-Carlo meetodid 2. loeng

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Monte-Carlo meetodid2. loeng Pseudojuhuslike arvude generaatorid

  2. Eelmine loeng Lineaarne kongruentne generaator Pseudojuhuslikud arvud vahemikus 0..1 saadakse valemiga: Lineaarse kongruentse generaatori abil on võimalik saada maksimaalselt m erinevat pseudojuhuslikku arvu:

  3. Soovitused (Handbook of Monte-Carlo Methods, D.P.Kroese; T. Taimre; Z. I. Botev): m>261 ≈2*1018 Ei tohiks kasutada generaatoreid, mille m on esitatav kujul 2p Näiteid MinSTD a=75 b=0 m=231-1 SAS (UNIFORM) a=397204094 b=0 m=231-1 Visual Basic (ver 6 ja varasem): a=1140671485 b=12820163 m=224 MMIX (Knuth) a=6364136223846793005 b=1442695040888963407 m=264 Maple: a=427419669081, b=0, m=1012-11 Pierre L'Ecuyer:a=243267374564284687042667403923350539132 b=0, m=2128-159 .... Vaata: http://random.mat.sbg.ac.at/results/karl/server/node5.html

  4. Kuidas saaks paremini?? • Kombineeritud LKG-d Whichman-Hill Periood (m1-1)*(m2-1)*(m3-1)/4 ≈ 6,95*1012 Ekvivalentne LKG-ga: a=16555425264690 b=0 m=27817185604309

  5. Kasutame pikemat ajalugu? Multiple-Recursive Generators (MRG) Pseudojuhuslikud arvud vahemikus 0..1 saadakse valemiga:

  6. Lagged Fibbonacci (LF) generaatorid xi = (xi-p + xi-q) mod m Näide: Knuth-Taocp-2002 xi = (xi-37 + xi-100) mod 230 Periood ~2129

  7. Lagged Fibbonacci (LF) generaatorid xi = (xi-p + xi-q) mod m “-” või “×” või “+” või “+” Näide 1: RAN3 xi = (xi-55 - xi-24) mod m (m=232?) Näide 2: R250 xi = xi-250 XOR xi-103 Periood: 2250-1

  8. Või nende kombinatsioonid Periood ligikaudu 3*1057 Nimi: MRG32k3a

  9. xi = (xi-p XOR xi-q) mod m xi = (xi-p XOR xi-q A) mod m xi = (xi-p XOR g(xi-q, xi-q-1)A ) mod m Mersenne-Twister Periood: 219937-1 R-is funktsioonis runif vaikimisi kasutatav generator.

  10. Salakirjade jaoks... • Blum-Blum-Shub generaator kus m=p*q, kus p ja q on suured raskestiaimatavad algarvud, mille jääk jagamisel 4-ga on 3 (nn Blum’i algarvud), näiteks: p = 1267650600228229401496703981519 q = 1267650600228229401496704318359 Igal iteratsioonil kasutatakse kõige väiksema biti väärtust – millistest pannakse kokku kasutatav pseudojuhuslik arv.

  11. (Pseudo)juhuslike arvude generaatori testimine Esmane pilk “juhuslikele” arvudele. Vaatame punkte (ui+1; ui) või (xi+1; xi). Kas punktid tunduvad ühikruutu katvat juhuslikult? 0.226 0.693 0.604 0.921 0.184 0.968 ..... (0.226; 0.693) (0.693; 0.604) (0.604; 0.921) ....

  12. Näiteks...

  13. Veidi parem generaator (Visual Basic)

  14. Veidi parem generaator (Visual Basic)

  15. Lõpuks ilmub “mittejuhuslikus” ikka nähtavale...

  16. Spektraaltest

  17. Paraleelsete sirgete vaheline kaugus: Y=ax+c1 Y=ax+c2 Kaugus= Abs(c2-c1)/sqrt(1+a2)

  18. Sirged ise: Variant 1 Variant 2 y=ax+b ... y=ax+b-m y=ax+b-m*2 y=ax+b-m*3 ....

  19. d=0.3162, 0.1162, 0.0790, 0.0632 S=0.1839, 0.5003, 0.7357, 0.9196 Dim = 2 dmin = sqrt(4/3) / sqrt(m) Dim = 3 dmin = 21/3m(-1/3) ....

  20. Kas on tegemist ühtlase jaotusega? Kui X~U(0,1) siis EX = 0,5 DX = 1/12

  21. Kolmogorov-Smirnovi test

  22. Kolmogorov-Smirnovi test Valim 0,12 0,22 0,23 0,25 0,45 0,46 0,60 0,80

  23. Kolmogorov-Smirnovi test Valim 0,12 0,22 0,23 0,25 0,45 0,46 0,60 0,80 D=0,29

  24. Kriitilised väärtused:

  25. Või p-väärtus R-is: > ks.test(x, punif) One-sample Kolmogorov-Smirnov test data: x D = 0.29, p-value = 0.4314 alternative hypothesis: two-sided Teoreetiline jaotusfunktsioon (R-i funktsioon, mis arvutab jaotusfunktsiooni väärtuseid) Valim (genereeritud juhuslikud suurused)

  26. Hii-ruut test I

More Related