IFT 6561
Simulation et mod `eles
Fabian Bastin DIRO
Universit ´e de Montr ´eal
Automne 2013
Fabian Bastin IFT6561
Structure de r ´eseau
Consid ´erons le sous-ensemble de[0,1]t construit `a partir des diff ´erents ´etats initiaux possibles du g ´en ´erateur.
Ψt ={u= (u0, . . . ,ut−1) = (g(s0), . . . ,g(st−1)), s0∈ S}.
Un crit `ere majeur est queΨt doit recouvrir[0,1]t tr `es uniform ´ement, et ce pour “tout”t.
Par g ´en ´eralisation, nous chercherons ´egalement `a mesurer l’uniformit ´e deΨI ={(ui1, . . . ,uit)|s0∈ S}pour une classe choisie d’ensembles d’indices de formeI={i1,i2,· · · ,it}. La r ´ecurrence lin ´eaire `a la base d’un MRG a comme cons ´equence majeure de produire une structure pour l’ensembleΨt.
Fabian Bastin IFT6561
Structure de r ´eseau
Soit(x0, . . . ,xk−1)dans{0,1, . . . ,m−1}k, et la base canonique deRk:
{ei, i=1, . . . ,k},
Si(x0, . . . ,xk−1) =e1= (1,0, . . . ,0), la r ´ecurrence du MRG donne
(x1, . . . ,xk) = (0, . . . ,ak),
(x2, . . . ,xk,xk+1) = (0, . . . ,ak,a1ak modm), (x3, . . . ,xk+2) = (0, . . . ,(a21+a2)ak modm), . . . Si(x0, . . . ,xk−1) =e2= (0,1, . . . ,0), alors
(x1, . . . ,xk) = (1,0, . . . ,ak−1),
(x2, . . . ,xk,xk+1) = (0, . . . ,ak−1,(a1ak−1+ak) modm),
(x3, . . . ,xk+2) = (0, . . . , (a21ak−1+a1ak+a2ak−1) modm), . . .
Fabian Bastin IFT6561
Structure de r ´eseau
Nous pouvons continuer de la sorte jusqu’ `a consid ´erer (x0, . . . ,xk−1) =ek = (0, . . . ,0,1), ce qui produit
(x1, . . . ,xk) = (0, . . . ,1,a1),
(x2, . . . ,xk,xk+1) = (0, . . . ,1,a1,(a21+a2) mod m), . . . . Or tout vecteur(xn, . . . ,xn+t−1)qui ob ´eit `a la r ´ecurrence, pour t≥k, est une combinaison lin ´eaire `a coefficients entiers de ces k vecteurs de base.
Pour le voir, notonsxi,0,xi,1,xi,2, . . .la suite obtenue `a partir du vecteur de baseei. Un ´etat initial(x0, . . . ,xk−1) = (z1, . . . ,zk) peut s’ ´ecrire commez1e1+· · ·+zkek et produit la suite
z1(x1,0,x1,1, . . .) +· · ·+zk(xk,0,xk,1, . . .) modm, et r ´eciproquement.
Fabian Bastin IFT6561
Structure de r ´eseau
La r ´eduction modulomse fait en soustrayant des vecteursmei. Ainsi, pourt ≥k,(x0,x1, . . . ,xt−1)suit la r ´ecurrence si et seulement s’il s’agit d’une combinaison lin ´eaire `a coefficients entiers de
(1,0, . . . ,0,x1,k, . . . ,x1,t−1) ...
(0,0, . . . ,1,xk,k, . . . ,xk,t−1) (0,0, . . . ,0,m, . . . ,0)
...
(0,0, . . . ,0,0, . . . ,m).
Fabian Bastin IFT6561
Structure de r ´eseau
En divisant parm, on obtient que(u0, . . . ,ut−1)∈[0,1)t est dansΨt si et seulement si c’est une combinaison lin ´eaire (sur les entiers) de
v1 = (1,0, . . . ,0,x1,k, . . . ,x1,t−1)T/m ... ...
vk = (0,0, . . . ,1,xk,k, . . . ,xk,t−1)T/m vk+1 = (0,0, . . . ,0,1, . . . ,0)T
... ...
vt = (0,0, . . . ,0,0, . . . ,1)T.
Fabian Bastin IFT6561
Structure de r ´eseau
Si
Lt = (
v =
t
X
i=1
zivi | zi ∈ Z )
est le r ´eseau ayant ces vecteurs pour base, alors Ψt =Lt ∩[0,1)t.
Fabian Bastin IFT6561
m = 101, a = 12; v
1= (1, 12)/101, v
2= (0, 1)
0 1
un 0
1
un+1
. .
. .
.
. .
.
. . .
.
.
. .
.
. .
.
.
. .
. . .
. .
. .
. .
.
.
. .
. . .
. .
. .
.
. .
.
. .
. .
.
. .
.
. .
. .
. .
.
. .
.
.
. .
.
.
. .
. .
.
. .
. . . .
.
.
. .
.
. .
. .
.
. .
. .
. .
. . .
. .
...
.................................... .
..
..
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
Fabian Bastin IFT6561
LCG with m = 101 and a = 7
0 1
un 0
1
un+1
. .
. .
.
. .
.
. .
. . .
. .
.
.
.
.
. .
.
. .
. .
. .
.
. .
.
. .
.
. .
. .
.
. .
.
. .
. .
. .
.
.
. .
. .
. . .
. .
. .
. .
.
.
. .
.
. . .
.
. .
. .
. .
.
.
. .
. .
.
. .
. .
.
.
. .
. .
. . .
. .
Fabian Bastin IFT6561
LCG with m = 101 and a = 51
0 1
un 0
1
un+1
.
.
. .
.
. .
.
. .
.
.
.
. .
. .
. .
.
.
. .
.
. .
.
. .
. . .
. .
.
.
.
. .
. .
. .
. .
.
. . ..
.
. .
.
. .
.
. .
. .
. .
.
. .
. .
. .
.
.
.
. .
. .
.
.
. .
. .
.
.
. .
.
. .
. .
. .
. .
. . .. .
Fabian Bastin IFT6561
LCG with m = 101 and a = 51
Pourt>k, il y amt vecteurs dont les coordonn ´ees sont des multiples de 1/m, mais seulementmk sont dansΨt (il n’y a que mk ´etats initiaux possible), soit une proportion de 1/mt−k. Cette structure de r ´eseau implique que les points deΨt sont distribu ´es suivant un sch ´ema tr `es r ´egulier.
Par exemple, chaque point deLt a un plus proche voisin `a la m ˆeme distance et dans la m ˆeme direction que n’importe quel autre point, et il y a des familles d’hyperplans parall `eles
´equidistants qui couvrent tous les points.
Fabian Bastin IFT6561
Structure de r ´eseau
Au regard de cette structure particuli `ere, des mani `eres naturelles de mesurer l’uniformit ´e de ce genre d’ensemble de pointsΨt incluent:
1 la distance d’un point `a son plus proche voisin, qui est aussi la distance de l’origine au point le plus proche, ou de mani `ere ´equivalente le vecteur non-nul le plus court dans Lt;
2 La distance entre les deux hyperplans les plus ´eloign ´es qui couvrent une r ´egion ne contenant aucun point deLt;
3 le nombre minimum d’hyperplan ´equidistants parall `eles qui peuvent couvrir tous les points deΨt.
Fabian Bastin IFT6561
Distance au plus proche voisin
Pour obtenir la premi `ere mesure, nous devons calculer le plus court vecteur non nul dans un r ´eseau de basev1, . . . ,vt:
Minimiserkvk22=
t
X
i=1 t
X
j=1
zivTi vjzj
sous les contraintes quez1, . . . ,zt soient entiers et non tous nuls.
Il s’agit par cons ´equent d’un probl ´eme d’optimisation
quadratique en nombres entiers, lequel est difficile `a r ´esoudre.
Fabian Bastin IFT6561
Distance entre les hyperplans
Pour traiter les deux autres mesures propos ´ees, nous avons tout d’abord besoin de d ´efinir le r ´eseau dual, d ´enot ´eL∗t, comme suit:
L∗t ={h∈ Rt :h·v ∈ Z pour toutv ∈Lt}.
Pour chaque vecteurh∈L∗t et chaque entierz, l’ensemble {v ∈ Rt :hTv =z}est un hyperplan orthogonal `ah. Quandz parcourt tous les entiers, nous obtenons d `es lors une famille d’hyperplans parall `eles qui couvrent tous les pointsv deLt, car hTv ∈ Z pourv ∈Lt.
La distance entre deux hyperplans est la distance entre l’hyperplan d ´efini avecz =1 et celui d ´efini avecz =0, i.e., `a l’origine, puisque ce dernier contient l’origine.
Fabian Bastin IFT6561
Distance entre les hyperplans
Il est possible de montrer que cette distance vaut 1/khk2. Si`t est la longueur du plus court vecteurhnon nul dansL∗t, alors la distance entre les hyperplans pour la famille o `u ils sont le plus
´eloign ´es est 1/`t. Par cons ´equent, nous cherchons `a maximiser`t.
Un petit nombre d’hyperplans parall `eles couvrant tous les points deψt peut ˆetre trouv ´e en calculant le vecteur non-nul le plus court dansL∗t en utilisant la normeL1au lieu de la norme euclidienne.
Fabian Bastin IFT6561
Indices lacunaires
Plut ˆot de que consid ´erer des indices cons ´ecutifs, nous pouvons consid ´erer n’importe quel ensemble det index (distincts) I={i1,i2,· · ·,it}. Dans ce cas, nous avons
ΨI = {(ui1, . . . ,uit)|s0= (x0, . . . ,xk−1)∈ Zmk},
= LI∩[0,1)t,
1/`I = distance entre les hyperplans dansLI.
Note:Zm ={0,1,2, . . . ,m−1}.
Fabian Bastin IFT6561
Mesures d’uniformit ´e
Des bornes sup ´erieures de la forme`t ≤`∗t(n)pour un r ´eseau g ´en ´eral de densit ´endansRt existent.
Nous pouvons d `es lors standardiser`t par`t/`∗t(mk)pour avoir une mesure dans[0,1], ce qui permet d’obtenir la figure de m ´erite g ´en ´erale:
MJ =min
I∈J `I/`∗|I|(mk)
o `uJ est une famille d’ensemblesI={i1,i2,· · ·,it}.
La recherche de g ´en ´erateurs potentiellement int ´eressants passe alors par le calul num ´erique des param `etres qui maximisent cette mesure.
Fabian Bastin IFT6561
Autres bornes
Sii∈Ilorsqueak−i 6=0 (aveca0=−1), alors
`2I ≤1+a21+· · ·+a2k.
Il faut donc que cette somme soit grande!
Preuve partielle.
Consid ´eronsI={0, . . . ,t−1}et soit h= (−ak, . . . ,−a1,1,0, . . . ,0)T.
Siv = (v0,v1, . . . ,vt−1)T ∈Lt, alorsvk = (a1vk−1+· · ·+akv0) mod 1.
Ainsi,hTv doit ˆetre un entier, i.e.,h∈L∗t. Donc`2t ≤ khk22=1+a21+· · ·+a2k. Se g ´en ´eralise au cas de`I.
Fabian Bastin IFT6561
Exemple: Lagged-Fibonacci
xn= (±xn−r ±xn−k) modm.
PourI={0,k−r,k}, on a 1/`I ≥1/√
3≈.577.
Les vecteurs(un,un+k−r,un+k)sont tous contenus dans deux plans!
Fabian Bastin IFT6561
Fonction random de la glibc
L’exemple `a ´eviter. . .
Le g ´en ´erateur commence par inialiser un tableau de 34 nombres sur le principe du g ´en ´erateur Standard Minimal:
1 x0=s;xi=16807∗xi−1 mod 231−1 (pouri =1, . . . ,30);
2 xi =xi−31 (pouri=31, . . . ,33) .
Pouri≥34, l’algorithme suit l’algorithme de Lagged-Fibonacci, avecm=231:
xi = (xi−3+xi−31) mod 231.
Enfin, la fonction ignore les 344 premiers nombres et supprime le bit de poids faible:
oi =xi+344>>1.
Fabian Bastin IFT6561
Fonction random de la glibc: observations
Le g ´en ´erateur r ´esume ce qu’il convient de ne pas faire:
1 le g ´en ´erateur Standard Minimal est d ´epass ´e;
2 les vecteursxi,xi+28,xi+31 sont contenus dans deux plans;
3 la lin ´earit ´e n’est pas compl ´etement supprim ´ee en enlevant le bit de poids faible, vu que pouri≥34,
oi =oi−31+oi−3 mod 231ouoi =oi−31+oi−3+1 mod 231, et on conserve la majeure partie des inconv ´enients li ´es `a m=231.
Fabian Bastin IFT6561
RANDU (IBM)
xn+1=65539xn mod 231
Fabian Bastin IFT6561