IFT 6561
Simulation: aspects stochastiques
Fabian Bastin DIRO
Universit ´e de Montr ´eal
Automne 2013
Tests statistiques
L’ ´etude des propri ´et ´es th ´eoriques d’un g ´en ´erateur ne suffit; il estindispensable de recourir `a des tests statistiques pour valider celui-ci.
mbox
Nous formulons l’hypoth `ese
H0 : “{u0,u1,u2, . . .}sont des variables al ´eatoires i.i.d. U(0,1)00.
Nous savons queH0est fausse, mais comment pouvons-nous le d ´etecter?
Pour ce faire, d ´efinissons une statistiqueT, fonction deui, dont la distribution sousH0est connue (ou approximativement).
Nous rejetonsH0si la valeur deT est trop extr ˆeme.
Tests statistiques
La puissance et l’efficacit ´e du test d ´ependent fortement de la classe d’alternatives. Diff ´erents tests d ´etectent des probl `emes diff ´erents.
L’id ´eal serait de disposer d’une statistiqueT qui imite la variable al ´eatoire d’int ´er ˆet pratique. Ce n’est cependant gu `ere r ´ealisable en pratique.
Impossible de construire un g ´en ´erateur de variables al ´eatoires qui passerait tous les tests. Compromis: construire un
g ´en ´erateur qui passe le plus de tests raisonnables.
La plupart des tests ´etudient la r ´epartition uniforme d’un
Tests statistiques
Avoir une bonne couverture uniforme ne suffit toutefois pas: les points g ´en ´er ´es doivent avoir l’apparence d’ind ´ependance les uns par rapport aux autres.
Les tests d’uniformit ´e, qui repr ´esentent la majeure partie des tests `a notre disposition, remplissent partiellement ce second objectif dans la mesure o `u ils sont valid ´es pour des
sous-ensembles de points tr `es vari ´es.
Certains tests cependant sont sp ´ecifiquement conc¸us pour tester les corr ´elations entre les points produits par un g ´en ´erateur.
TestU01
Le logiciel TestU01 (http://www.iro.umontreal.ca/
˜simardr/testu01/tu01.html), impl ´emente un nombre tr `es important de tels tests.
Nous nous limiterons `a quelques exemples afin d’illustrer les id ´ees sous-jacentes.
Test de collisions
Partitionnons l’hypercube[0,1)t enk =dt boˆıtes cubiques de tailles ´egales. G ´en ´eronsnpointsui = (uti, . . . ,uti+t−1)dans [0,1)t, et posonsXj le nombre de points dans la boˆıtej.
Le nombre de collisions est donn ´e par
C=
k−1
X
j=0
max(0,Xj−1).
SousH0,Csuit approximativement une loi de Poisson de moyenneλ=n2/(2k), pournsuffisamment grand, et un petitλ.
Test de collisions
Si nous observonsccollisions, nous calculons lap-valeur `a droite comme
p+(c) =P[X ≥c |X ∼ Poisson(λ)].
Nous rejetonsH0sip+(c)est de mani `ere consistante tr `es proche de 0 (trop de collisions) ou de 1 (pas assez de collisions).
Une interpr ´etation possible est l’ ´etude par simulation Monte Carlo du comportement probablisite d’un algorithme de hachage.
Espacement entre anniversaires
Nous partitionnons `a nouveau l’hypercube[0,1)t enk =dt boˆıtes cubiques, et g ´en ´eronsnpoints.
SoitI(1) ≤I(2)≤ · · · ≤I(n)les num ´eros de boˆıte o `u les points tombent, tri ´es par ordre croissant.
Nous calculons les espacements
Sj =I(j+1)−I(j), 1≤j ≤n−1.
Le nombre de collisions entre les espacements est d ´efini comme
Y =
n−1
X
j=1
I[S(j+1)=S(j)].
Espacement entre anniversaires
Pourk suffisamment grand,Y suit approximativement une loi de Poisson de moyenneλ=n3/(4k).
SiY prend la valeury, lap-valeur `a droite est p+(y) =P[X ≥y |X ∼ Poisson(λ)].
Interpr ´etation comme probl `eme de simulation: nous pouvons vouloir ´etudier la distribution deY par simulation Monte Carlo, pour des valeurs mod ´er ´ees dek etn.
Test d’autocorr ´elation
G ´en ´eronsnuniformesu1, . . . ,unet calculons l’autocorr ´elation empirique de distancek:
ˆ
ρk = 1
n−k
n−k
X
j=1
ujuj+k −1 4
.
La distribution empirique deN valeurs de p12(n−k) ˆρk
est compar ´ee avec la distribution normale standard, qui est la distribution th ´eorique asymptotique quandn→+∞.
L’approximation n’est valide que pourntr `es grand, et avec k tr `es petit en comparaison den.
Quelques g ´en ´erateurs largement utilis ´es
Avant 2003, le g ´en ´erateur dans MS Excel ´etait ui = (9821.0ui−1+0.211327) mod 1.
Le g ´en ´erateur est `a pr ´esent une combinaison de trois GCLs simplistes. A la m ˆeme p ´eriode, le g ´en ´erateur dans MS VisualBasic ´etait
xi = (1140671485xi−1+12820163) mod 224, ui = xi/224.
Le g ´en ´erateur dansjava.util.Randomde Java est quant `a lui
48
R ´esultats de tests: test de colisions
Consid ´eronst=2,d =n/16,λ=128.
n Java VisualBasic Excel
c p+(c) c p+(c) c p+(c)
214 132
215 75 1−3.1×10−7 128
216 38 >1−10−15 121
217 0 >1−10−15 170 2.2×10−4 218 0 >1−10−15 202 9.5×10−10 219 0 >1−10−15 429 <10−15
R ´esultats de tests: test de colisions
Si on rejette les dix premiers bits de chaqueui: on prend ui :=1024ui mod 1.
n Java VisualBasic Excel
c p+(c) c p+(c) c p+(c)
214 8192 <10−15
215 24576 <10−15
216 57344 <10−15
217 122880 <10−15
218 253952 <10−15 224 1.0×10−14
219 160 3.5×10−3 516096 <10−15 425 <10−15
Espacements d’anniversaire
Consid ´eronst=2,λ=1.
n d Java VisualBasic Excel
y p+(y) y p+(y) y p+(y) 28 211
210 214 10 1.1×10−7
212 217 592 <10−15 5 3.7×10−3 214 220 11129 <10−15 71 <10−15 216 223 64063 <10−15 558 <10−15 218 226 14 4.5×10−12 261604 <10−15 4432 <10−15
Espacements d’anniversaire
n d LCG-16807
y p+(y) 210 214
212 217 2
214 220 170 <10−15 216 223 10060 <10−15
Espacements d’anniversaire
Et en rejetant les 10 premiers bits:
n Java VisualBasic Excel
y p+(y) y p+(y) y p+(y)
28 52 <10−15
29 199 <10−15
210 672 <10−15
211 1754 <10−15
212 3901 <10−15
213 8102 <10−15
214 16374 <10−15
215 21 6.0×10−15 32763 <10−15
216 99 <10−15 65531 <10−15 7 4.5×10−3
217 697 <10−15 — — 34 <10−15
Tests syst ´ematiques pour des familles de g ´en ´erateurs de nombres al ´eatoires
Pour une famille de g ´en ´erateurs de nombres al ´eatoires, on cherche une relation su type[n0≈Kργ,] o `un0est la taille d’ ´echantillon minimum pour obtenir un fort rejet,ρest la longueur de p ´eriode, etK etγ sont des constantes.
Pour des GCLs, on obtient (grossi `erement) pour le test de collisions:
n0≈16ρ1/2,
et pour le test d’espacement entre anniversaires:
n0≈16ρ1/3.
Nous souhaitons d `es lors construire le g ´en ´erateur de nombres
Librairie de tests
Tests effectu ´es sur la plupart des g ´en ´erateurs existants.
Pratiquement aucun des g ´en ´erateurs pr ´esent dans les logiciels commerciaux ne passe tous les tests. Vrai en particulier pour les g ´en ´erateurs modulo-2.
Les vainqueurs sont des MRG avec une bonne p ´eriode et une bonne structure, des g ´en ´erateurs multiplicatifs
“lagged-Fibonacci”, des g ´en ´erateurs non-lin ´eaires conc¸us pour la cryptologie, et certains g ´en ´erateurs avec des composantes venant de diff ´erentes familles.
Librairie de tests
Il est possible de combiner efficacit ´e empirique et th ´eorique, comme l’illustre le MRG32k3a.
Note: g ´en ´erateur multiplicatifs “lagged-Fibonacci”. Forme de base
xn=xn−r ∗xn−k modm.
Il a moins de propri ´et ´es math ´ematiques connues, difficult ´es du choix der et dek, initialisation complexe.mest souvent pris comme une puissance de 2.