draft
play

Draft 1 On the Lattice Structure of MIXMAX Random Number - PowerPoint PPT Presentation

Draft 1 On the Lattice Structure of MIXMAX Random Number Generators Pierre LEcuyer Joint work with Paul Wambergue, Erwan Bourceret, and Marc-Antoine Savard MCQMC, Rennes, July 2018 Draft 2 MIXMAX Generators [Akopov, Savvidy, et al.


  1. Draft 1 On the Lattice Structure of MIXMAX Random Number Generators Pierre L’Ecuyer Joint work with Paul Wambergue, Erwan Bourceret, and Marc-Antoine Savard MCQMC, Rennes, July 2018

  2. Draft 2 MIXMAX Generators [Akopov, Savvidy, et al. (1991)] Output vector u i ∈ R k follow the recurrence u i = Au i − 1 mod 1 where u 0 ∈ [0 , 1) k and A is a k × k matrix such that: (1) det ( A ) = 1, so the linear transformation preserves volume; (2) the eigenvalues λ 1 , . . . , λ k of A are away from the unit circle. Then, for appropriate A , distance between trajectories that start from very close will diverge exponentially fast, as Θ( e hi ) in i steps, where h is the entropy: k � h = I [ | λ j | > 1] · log | λ j | . j =1 For almost all (irrational) u 0 , the trajectory is aperiodic and space-filling in [0 , 1) k .

  3. Draft 3 Original MIXMAX proposal:   1 1 1 1 · · · 1 1 1 2 1 1 · · · 1 1     1 3 + d 2 1 · · · 1 1   A = A ( k , d ) = .   1 4 3 2 · · · 1 1   .  ...  .   .   1 k k − 1 k − 2 · · · 3 2 Savvidy (2015) provides lower bounds on h that depend only on k for A = A ( k , d ), and shows that h is large, e.g., much larger than for the AWC and SWB generators of Marsaglia and Zaman (1991). However, all of this is for irrational state vectors u i , which cannot be implemented exactly.

  4. Draft 4 The authors proposed to approximate the irrational recurrence by a rational one as follows. Take a large prime m and define x i = Ax i − 1 mod m in which x i = ( x i , 0 , . . . , x i , k − 1 ) t ∈ Z k m and u i = ( u i , 0 , . . . , u i , k − 1 ) = x i / m ∈ [0 , 1) k . This is a matrix LCG (Niederreiter 1986); gives a periodic recurrence! If det( A ) = 1, the maximal period is ( m k − 1) / ( m − 1), i.e., m − 1 times shorter than general matrix LCGs. Savvidy provides parameters ( k , d ) giving period ρ = ( m k − 1) / ( m − 1) for m = 2 61 − 1 with k from 8 to 3150. Even for k = 8, this already gives ρ ≈ 2 427 . Long enough period! He also provides an efficient implementation that uses only 2 k additions and one multiplication by d to compute the next vector x i at each step. Fast! MIXMAX became popular recently. Part of the ROOT library used at CERN, Geneva. In July 2016, I was at CERN, in a workshop devoted to the MIXMAX. Fred James was telling us: “We have a proof that this RNG passes all statistical tests; this is fantastic.” I was not fully convinced.

  5. Draft 5 Other variants, with more parameters and flexibility MIXMAX-( m , k , d , c ) and MIXMAX-( m , k , d , c , b ):   1 1 1 1 · · · 1 1 1 2 1 1 · · · 1 1     1 c + 2 + d 2 1 · · · 1 1     A = A ( k , d , c ) = 1 2 c + 2 c + 2 2 · · · 1 1     1 3 c + 2 2 c + 2 c + 2 · · · 1 1     · · ·   1 ( k − 2) c + 2 ( k − 3) c + 2 ( k − 4) c + 2 · · · c + 2 2   1 1 1 1 · · · 1 1 1 2 1 1 · · · 1 1     1 3 c + d + b 2 1 · · · 1 1     A = A ( k , d , c , b ) = 1 4 c + b 3 c + b 2 · · · 1 1     1 5 c + b 4 c + b 3 c + b · · · 1 1     · · ·   1 kc + b ( k − 1) c + b ( k − 2) c + b · · · 3 c + b 2

  6. Draft 6 Lattice structure of matrix LCGs Define successive output values of matrix LCGs as follows: = ( u 0 , u 1 , . . . , u k − 1 ) u 0 u 1 = ( u k , u k +1 , . . . , u 2 k − 1 ) u 2 = ( u 2 k , u 2 k +1 , . . . , u 3 k − 1 ) , etc. For any fixed s > 0, let Ψ s = { ( u 0 , u 1 , . . . , u s − 1 ) ∈ [0 , 1) s | x 0 ∈ Z k m } , the set of vectors of s successive values obtained from all possible initial states. We want this set to cover [0 , 1) s very evenly. More general: for any finite set I = { i 1 , . . . , i s } where 0 ≤ i 1 < · · · < i s , let Ψ s ( I ) = { ( u i 1 , . . . , u i s ) ∈ [0 , 1) s | x 0 ∈ Z k m } . Want this set to cover [0 , 1) s very evenly for all I in some large family, e.g., i s ≤ i ∗ and s ≤ s ∗ .

  7. Draft 7 Lattice structure It is known that for each I , Ψ s ( I ) = L s ( I ) ∩ [0 , 1) s where L s ( I ) is a lattice in R s . It means that all the points are in equidistant hyperplanes at distance d s ( I ) = 1 /ℓ s ( I ) apart, where ℓ s ( I ) = length of shortest vector in dual lattice. Let d ∗ s ( n ) be the best (smallest) distance for a known lattice with density n = min( m k , m s ) in s dimensions. Normalized measure: S s ( I ) = d ∗ s ( n ) / d s ( I ) ∈ (0 , 1]. Want it close to 1. Example of worst-case figure of merit: For s ′ > 0, let M s ′ = I ⊆{ 1 ,..., s ′ } S s ( I ) . min If s ′ is very large, there are so many subsets that some of them must be bad. But for s ′ not too large, most MRGs and matrix LCGs have a good M s ′ .

  8. Draft 8 Example: MRG of order k Multiple recursive generators (MRG): = ( a 1 x i − 1 + · · · + a k x i − k ) mod m , u i = x i / m . x i Equivalent to matrix LCG with k   0 1 · · · 0 . . ... . .   . . A =     0 0 · · · 1   a k a k − 1 · · · a 1 For k = 7 and m = 2 63 − 52425 (a prime), we searched random parameters a = ( a 1 , . . . , a k ) that gave full period ρ = m k − 1 ≈ 2 441 , and computed M 10 for each. Within our limited time budget, we obtained 7041 such vectors and the values of M 10 ranged from 0.53858 (the best) to 0.14970 (the worst). Thus, values of M 10 smaller than say 0.1 are very rare.

  9. Draft 9 How to compute ℓ s ( I ) ? A t / m ( A ν − 1 ) t / m ([ A ν ] r ) t / m  I / m · · ·  0 I 0     ... V =       I   0 I and  m · I  0 0 − A I    .  ... . W =   .     − A ν − 1 I   − [ A ν ] r 0 I The rows of V form a basis of L s and the rows of W form a basis of the dual lattice L ∗ s . For a basis of L s ( I ), select the appropriate colums of V , and invert this basis modulo 1 to get a basis for L ∗ s ( I ). Then compute the length ℓ s ( I ) of a shortest nonzero vector in L ∗ s ( I ), using BB.

  10. Draft 10 Lattice structure of MIXMAX ( m , k , d ) m · I 0 0 0 · · ·    − 1 − 1 − 1 − 1  · · ·     − 1 − 2 − 1 − 1   · · ·   − 1 − 3 − d − 2 − 1   · · ·   I 0 0 · · ·   − 1 − 4 − 3 − 1  · · ·      · · ·   W =   − 1 − ( k − 1) − 2 . − k  · · ·      − A 2   0 I   . .   .   .  ...  .   .     − [ A ν ] r 0 I   The other MIXMAX are similar, with a slightly different − A .

  11. Draft 11 Any integer linear combination of rows of W belongs to the dual lattice L ∗ s . In particular, if k ≥ 2, for all the MIXMAX variants, we have w k +1 = ( − 1 , − 1 , − 1 , . . . , − 1 , 1 , 0 , . . . , 0) w k +2 = ( − 1 , − 2 , − 1 , . . . , − 1 , 0 , 1 , . . . , 0) ↑ coordinate k + 1 so w = w k +1 − w k +2 = (0 , 1 , 0 , . . . , 0 , 1 , − 1 , 0 , . . . , 0) ∈ L ∗ s for s ≥ k + 2 . ↑ coordinate k + 1 √ This vector has Euclidean length 3. Its presence implies that the successive output values satisfy ( u 1 + u k − u k +1 ) mod 1 = 0. That is, u 1 + u k − u k +1 = 0 or 1, because 0 ≤ u i < 1 for all i . √ So when I := { 1 , k , k + 1 } ⊆ I ′ , Ψ 3 ( I ′ ) is covered by only two planes, 1 / 3 apart.

  12. Draft 12 An example with k = 8 MIXMAX-( m , k , d , c ) from Savvidy (2017), with m = 2 61 − 1, k = 8, d = 0, and c = 2 53 + 1. Then, whenever { 1 , 8 , 9 } = I ⊆ I ′ , the points of Ψ 3 ( I ′ ) are in only two parallel planes. This gives S s ( I ) = 6 . 69 × 10 − 19 for this I , and then M s ′ ≤ 6 . 69 × 10 − 19 for all s ′ ≥ k + 2. We applied the following empirical statistical tests to this generator. Collision test: Generate n points in s dimensions, using all coordinates of output vectors. Partition the cube [0 , 1) s in d s cubic cells. Count the number C of collisions (a point falling in an occupied cell). C should be approx. Poisson with mean λ = n 2 / (2 d s ). Repeat N times and count the total number of collisions, then the p -value. With s = 16, d = 8, n = 4 × 10 7 , N = 10, we get p ≈ 6 × 10 − 206 . We expect about 28 collisions and we get 314. If we take only the first three values of each block and s = 6, with d = 128, same n and N , we get p < 10 − 300 . We expect about 1,818 collisions and we get 116,218. Birthday spacings test: With s = 16, d = 16, n = 3 × 10 7 , N = 10, we get p < 10 − 300 .

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend