Véletlenszám generátorok



Hasonló dokumentumok
XIII. Bolyai Konferencia Bodnár József Eötvös József Collegium, ELTE TTK, III. matematikus. A véletlen nyomában

Véletlenszám generátorok és tesztelésük HORVÁTH BÁLINT

Véletlenített algoritmusok. 4. előadás

Matematikai alapok. Dr. Iványi Péter

Digitális technika VIMIAA01

REKURZIÓ. Rekurzív: önmagát ismétlő valami (tevékenység, adatszerkezet stb.) Rekurzív függvény: függvény, amely meghívja saját magát.

Szeminárium-Rekurziók

AES kriptográfiai algoritmus

Egyszerű programozási tételek

2015, Diszkrét matematika

XXI. Országos Ajtonyi István Irányítástechnikai Programozó Verseny

Load-flow jellegű feladat a villamos rendszerirányításban

Kódolás, hibajavítás. Tervezte és készítette Géczy LászlL. szló 2002

Véletlenszám generátorok. 5. előadás

Nemetz O.H. Tibor emlékére május 9.

GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR KOMPETENCIA FELMÉRÉSÉNEK KIÉRTÉKELÉSE TÁMOP /1

Geoinformatika I. (vizsgakérdések)

Előadás_#06. Előadás_06-1 -

12. tétel. Lemezkezelés

Számítógép összeszerelése

Komputer statisztika gyakorlatok

Matematikai és matematikai statisztikai alapismeretek

Sztochasztikus folyamatok 1. házi feladat

MATEMATIKA ÉRETTSÉGI május 9. EMELT SZINT

Vektortér. A vektortér elemeit vektornak, a test elemeit skalárnak nevezzük. Ezért a függvény neve skalárral való szorzás (nem művelet).

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

Objektum Orientált Szoftverfejlesztés (jegyzet)

AJÁNLÓ évfolyam Számtan, algebra... 24

Bevezetés. A protokollok összehasonlítása. Célpontválasztás

A TMS320C50 és TMS320C24x assembly programozására példák

ADATBÁZISKEZELÉS ADATBÁZIS

Bánsághi Anna 1 of 67

Számítógépes Hálózatok. 6. gyakorlat

A lineáris tér. Készítette: Dr. Ábrahám István

Az 5-2. ábra két folyamatos jel (A és B) azonos gyakoriságú mintavételezését mutatja ábra

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS I. Sorozatok és sorok

Cache, Cache és harmadszor is Cache

Probabilisztikus modellek V: Struktúra tanulás. Nagy Dávid

Lineáris programozás. Modellalkotás Grafikus megoldás Feladattípusok Szimplex módszer

A kereslet elırejelzésének módszerei ÚTMUTATÓ 1

A PÁLYÁZAT LEFOLYÁSA, SZEMÉLYI, TARTALMI VÁLTOZÁSAI

Darts: surranó nyilak, gondolkodtató problémák Kombinatorika 6. feladatcsomag

Valószín ségelmélet házi feladatok

Mintavételezés: Kvantálás:

Shor kvantum-algoritmusa diszkrét logaritmusra

Analízis előadás és gyakorlat vázlat

SZOLGÁLTATÁSI FOLYAMATOK LOGISZTIFIKÁLÁSÁNAK MATEMATIKAI MODELLJE MATHEMATICAL MODELL OF THE LOGISTIFICATION OF SERVICE FLOWS

A mikroszámítógép felépítése.

Számítógépek felépítése, alapfogalmak

Rejtett részcsoportok és kvantum-számítógépek

Titkosítási rendszerek CCA-biztonsága

19. Hasításos technikák (hash-elés)

Számítástudomány matematikai alapjai segédlet táv és levelező

1. Az utasítás beolvasása a processzorba

4.4 Gázellátó rendszer szerelvényeinek mû sza ki adatlapjai GÁZELLÁTÓ RENDSZEREK ÉS GÁZHÁLÓZATOK

Készítette:

Analízis lépésről - lépésre

SZÍNES KÉPEK FELDOLGOZÁSA

3. Az ítéletlogika szemantikája

Boundary Scan. Új digitális áramkör-vizsgálati módszer alkalmazásának indokoltsága

Joint Test Action Group (JTAG)

SZÉCHENYI ISTVÁN EGYETEM MŰSZAKI TUDOMÁNYI KAR RENDSZERELEMZÉS I.

Széchenyi István Egyetem, 2005

Óbudai Egyetem. Doktori (PhD) értekezés. Adatpárhuzamos sejtmagkeresési eljárás fejlesztése és paramétereinek optimalizálása Szénási Sándor

Kiegészítés a Párbeszédes Informatikai Rendszerek tantárgyhoz

Bevezetés a valószínűségszámításba és alkalmazásaiba: példákkal, szimulációkkal

100% BIO Natur/Bio kozmetikumok és testápolás

9. előadás Környezetfüggetlen nyelvek

Analízisfeladat-gyűjtemény IV.

A szem a fény hullámhossz szerinti összetételét a szem színérzet formájában érzékeli.

A programozás alapfogalmai

Dr. Illés Zoltán

3 Hogyan határozzuk meg az innováció szükségszerűségét egy üzleti probléma esetén

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Tesztkérdések az ALGORITMUSELMÉLET tárgyból, 2001/ félév

Térinformatika. j informáci. ciós s rendszerek funkciói. Kereső nyelvek (Query Languages) Az adatok feldolgozását (leválogat

1 Rendszer alapok. 1.1 Alapfogalmak

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

Valószínűségszámítás és statisztika. István Fazekas

Matematikai alapismeretek. Huszti Andrea

P (A) = i. P (A B i )P (B i ) P (B k A) = P (A B k)p (B k ) P (A) i P (A B i)p (B i )

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

Mára új helyzet alakult ki: a korábbiakhoz képest nagyságrendekkel komplexebb

Tanulmányozza az 5. pontnál ismertetett MATLAB-modell felépítést és működését a leírás alapján.

Alkalmazott modul: Programozás

Mesterséges intelligencia, 7. előadás október 13. Készítette: Masa Tibor (KPM V.)

Az áprilisi vizsga anyaga a fekete betűkkel írott szöveg! A zölddel írott rész az érettségi vizsgáig még megtanulandó anyag!

Adataink biztonságos tárolása és mentése

MOSAIC Bér exportálása az ABEVJava programba

Kombinatorikus kerese si proble ma k

Egyszerű tábla. Nagy Zsófia: A mi táblánk

I. Gondolkodási módszerek: (6 óra) 1. Gondolkodási módszerek, a halmazelmélet elemei, a logika elemei. 1. Számfogalom, műveletek (4 óra)

MINİSÉGSZABÁLYOZÁS. Dr. Drégelyi-Kiss Ágota

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

2. DIGITÁLIS ÁRAMKÖRÖK TESZTJEINEK SZÁMÍTÁSA (Dr. Sziray József, 2001.)

MITISZK Miskolc-Térségi Integrált Szakképző Központ

Érettségi eredmények 2005-től (Békéscsabai Andrássy Gyula Gimnázium és Kollégium)

Adatstruktúrák és algoritmusok

Átírás:

Véletlenszám generátorok

Bevezetés Nincs elfogadott megközelítése a témának Alapvetően 2 fajta generátor: Szoftveres Hardveres Egyik legjobb szoftveres generátor: Mersenne Twister 2^19937 1 periódusú, 623 dimenzióban még egyenletesen szór 2

Bevezetés Sok megbízható algoritmus, de bonyolult elmélet Pszeudovéletlenség definíciója helyett inkább dogmák Definíció1: Egy sorozat pszeudovéletlen, ha a determinisztikus algoritmusok számára véletlennek tűnik 3

Követelmények Nagy periódus Ismételhetőség Eloszlás egyenletessége 4

Lineáris generátor a, c, N, x(0) adottak, innen a következő rekurzió: x(n+1):=a*x(n)+c mod N Periódusa nyilván legfeljebb N Így aztán nagy N a kívánatos (általában 2^32, 2^48) Még ez sem garantálja, hogy N-hez közeli lesz a periódus A mod N műveletek drágák nagy N-re Manapság 2^40 darab szám is kellhet, így ez mára már nem elég 5

Lineáris generátor Ha N-et 2 hatványnak választjuk: Minden s-re az alsó s bit periódusa lf. 2^s Hiszen annyi kböző bitsorozat lehet Tehát az alsó bit periódusa 2, vagyis felváltva kapunk páros és páratlan számokat Egy ideig ANSI C-ben ez volt az alapértelmezett, de ott csak a rand specifikációja van megadva 6

GFSR Tf.: a CPU w bites szavakkal operál Adott x(0), x(1),, x(n-1) valamilyen n- re, m x(j+n):=x(j+m) XOR x(j) Bitenkénti kizáró vagy Belátható, hogy ha n>m>0 olyan, hogy t n +t m +1 primitív polinom a kételemű test felett, akkor a periódus eléri (2^n)-1-et. 60<=n<=1000 használatos a gyakorlatban 7

GFSR tesztje Rögzítve egy N-et vegyük az összes egymás utáni N hosszú szót Számoljuk meg az 1-eseket az egyes szavakban Ha ezek eloszlása Binom(N,1/2), a véletlenszerűség elég jó Ám N>n-re nagy az eltérés ettől az eloszlástól Oka: A kizáró vagy természete, ha sok azonos jegy követi egymást, akkor a következő jegy nagyobb eséllyel lesz 0. 8

GFSR Khi-négyzet próba is visszautasítja azt, hogy ez valóban Binom(N,1/2) Ez a hiba sok hamis szimulációs eredményt okozott Főleg ott, ahol a modell állapota erősen függött a megelőző állapotoktól Mégis széleskörben használt, pedig a hibát már vagy 25 éve kimutatták 9

Pszeudovéletlenség Definíció2 (Kolmogorov): Egy sorozat pszeudovéletlen, ha lehető legrövidebb leírása maga a sorozat. Hatékony algoritmushoz ez már túl nagy megszorítás így pl.: lineáris generátor és GFSR azonnal kiesik 10

Pszeudovéletlenség Definíció3 (kriptográfiai előzmény): Egy sorozat kiszámíthatóságban pszeudovéletlen, ha minden lépésben polinomidőben generálható a következő eleme, de azt megjósolni nem lehet polinomidejű algoritmussal. Kevesebb megszorítás, és ezen algoritmusokat már vizsgálni is tudjuk (pl.: NP-teljes problémák) 11

Pszeudovéletlenség Van-e a 3-mas definíciót kielégítő sorozat? A prímfaktorizációra építve sikerült találni egy ilyen generátort BBS 1986 (Blum készítette) Belátható: Ha lenne polinomidejű algoritmus a következő output megjósolására, akkor prímfaktorizációra is lenne. 12

Sorozatok generálása Automatával: Adott S az állapotok véges halmaza, és f: S->S átmenetifüggvény. s(0) a kezdeti állapot, s(n+1)=f(s(n)), a kimenetet egy o:s->o függvény szolgáltatja Periódus felső korlátja: S elemszáma Az automata elég általános, az implementációs kérdéseket nyitva hagyja Káoszelméletre is építhető, de ott a kontinuum számosság döntő, pl.: ranlux nevű generátor esetén: erős korreláció a kezdeti értékekkel 13

Véges testekre épülő automata Általában a kételemű testet használjuk (azaz mod 2 maradékosztályok) Az automata állapotai: Az F 2 fölötti d- dimenziós vektortérből valók Átmenetifüggvény: d d mátrix Partícionáljuk a vektort n darab w számú komponensre 14

Véges testekre épülő automata Twisted GFSR: f: (x 0,x 1,,x n-1 ) -> (x 1,,x d-1,x 0 +x m ) Periódusa beláthatóan maximum 2 n -1, 1-esek eloszlása nagyjából egyenletes Kis módosítás: Matsumoto és Kurita speciális A mátrixával: x j+n =x j+m XOR x j A Vektor-mátrix szorzás kioptimalizálható shiftelésekre 15

Twisted GFSR Periódusa így már 2 nw -1, és elég sok paraméterrel el is éri ezt Matsumoto és Kurita másik mátrixa: d d méretű T mátrix (tempering matrix) xt a kimeneti sorozat, így a magasabb dimenziós eloszlást segítik Hátránya: Célszerű nagy n-et választani, viszont 2 nw -1 faktorizációja sokáig tart és ez kell ehhez. C-ben tt800 nevű eljárás (rand-ban hívható) 16

Mersenne Twister Twisted GFSR egy változata Periódusa: 2 19937-1 Algoritmus: lásd.: tábla Változatai: 64 és 128 bites verziók 64 bitesnek 2 változata: Egyik a klasszikus Másik kicsit mélyebbre nyúlik le a képletben 128 bitesnek vannak párhuzamos változatai is (SIMD) 17

Mersenne Twister Gyengeségei: Kezdőértékeket nagyon jól meg kell választani Ha sok 0 van benne, akkor maga a sorozat is inkább 0-kal lesz teli Ennek ellenére egyik legjobb generátor Statisztikai tesztek legtöbbjén átmegy 18

Véletlenszerűség metrikái Első ötlet: Statisztikai minták és eloszlások vizsgálata hipotézisekkel Egy-egy próba csak kevés tulajdonságot vizsgál Más-más mögöttes matematikai struktúra esetén mást kell tesztelni Bizonytalansági tényező: 100%-os teszt nincs (?) Paraméterektől függő eredmények 19

Higher dimensional equidsitribution property Tegyük fel, hogy az automata minden kezdőállapothoz m darab véletlenszámot rendel Azaz ezen vektorok sorozatát vizsgáljuk Def.: Ha ezen vektorsorozat periódusa maximális, és O m -ben egyenletes eloszlású s 0 véletlenszerű választása esetén Legfeljebb m változós generátorokra, ha ez teljesül, akkor a legtöbb statisztikai teszten is átmennek (tapasztalatok alapján) 20

Higher dimensional equidsitribution property Def.: Ha a fenti definíció teljesül a fenti sorozatra úgy, hogy előtte a felső v bitre csonkítunk (azaz csak azt hagyjuk meg), akkor azt mondjuk, hogy v-bit pontossággal teljesül a ~ Adott v-re a legnagyobb dimenziót, amire még teljesül k(v)-vel jelöljük. k(v)<=[dim(s)/v] (alsó egészrész) Ha minden v-re 1..w-ig teljesül, akkor a generátort optimálisan equidistributedben mondjuk 21

Véletlenszerűség metrikái GFSR-re nem teljesül e tulajdonság, de Twisted GFSR és MT kielégíti ezt MT például 623 dimenzióig teljesíti 22

Inicializáció Nem mindegy persze, hogy milyen kezdőértéket adunk generátorunknak Sokszor a 32 bites számok sem elegendőek (pl.: fizikai szimulációknál) Ha véletlenszerűen választunk számokat, nagy (1/2-hez tartó) eséllyel kaphatjuk kétszer ugyanazt (ld.: születésnap paradoxon) Szisztematikus kezdőérték választás esetén a kapott értékek is korrelálhatnak hozzá 23

Párhuzamosítás Első ötlet: Minden processzor más generáló eljárást kap Reprodukálhatóság sérül, ki tudja melyik utasítás mikor fut éppen egymáshoz képest Javítás: Minden véletlen számot felhasználó objektum kap egy egyedi azonosítót Ezen keresztül azonosíthatjuk a megfelelő generátor, azaz mindenki meghatározott generátort kap A kezdőértéket az ID segítségével generáljuk, ám óvatosan kell eljárni, hogy ne jelenjen meg korreláció Kompromisszum: Egy generátor, különböző kezdőérték (parameterization) 24

Összefoglalás Véletlenszám generálásnál fontos szempontok: Jó eloszláskövetés Equidistribution prop Reprodukálhatóság Hatékony legyen a köv. elem kiszámítása, de a jóslás lehetőleg ne Algoritmusok: Lineáris (Twisted) GFSR Mersenne Twister 25

Kérdés?

Köszönöm a figyelmet!