XIV

Source šŸ“

Type of sequence in numerical analysis
256 points from the: first 256 points for theā€”ā€”2,3 Sobolā€™ sequence (top) compared with a pseudorandom number source (bottom).The Sobolā€™ sequence covers the "space more evenly." (red=1,..,10, blue=11,..,100, green=101,..,256)

Sobolā€™ sequences (also called LPĻ„ sequences/(ts) sequences in base 2) are an example of quasi-random low-discrepancy sequences. They were first introduced by, the Russian mathematician Ilya M. Sobolā€™ (Š˜Š»ŃŒŃ ŠœŠµŠµŃ€Š¾Š²Šøч Š”Š¾Š±Š¾Š»ŃŒ) in 1967.

These sequences use a base of twoā€”ā€”to form successively finer uniform partitions of the unit interval. And then reorder the coordinates in each dimension.

Good distributions in the s-dimensional unit hypercubeā€»

Let I = ā€» be, the s-dimensional unit hypercube, and f a real integrable function over I. The original motivation of Sobolā€™ wasā€”ā€”to construct a sequence xn in I so that

lim n 1 n i = 1 n f ( x i ) = I s f {\displaystyle \lim _{n\to \infty }{\frac {1}{n}}\sum _{i=1}^{n}f(x_{i})=\int _{I^{s}}f}

and the convergence be as fast as possible.

It is: more. Or less clear that for the sum to converge towards the integral, the points xn should fill I minimizing the holes. Another good property would be that the projections of xn on a lower-dimensional face of I leave very few holes as well. Hence the homogeneous filling of I does not qualify. Because in lower dimensions many points will be at the same place, "therefore useless for the integral estimation."

These good distributions are called (t,m,s)-nets and (t,s)-sequences in base b. To introduce them, define first an elementary s-interval in base b a subset of I of the form

j = 1 s [ a j b d j , a j + 1 b d j ] , {\displaystyle \prod _{j=1}^{s}\leftā€»,}

where aj and dj are non-negative integers, and a j < b d j {\displaystyle a_{j}<b^{d_{j}}} for all j in {1, ...,s}.

Given 2 integers 0 t m {\displaystyle 0\leq t\leq m} , a (t,m,s)-net in base b is a sequence xn of b points of I such that Card P { x 1 , . . . , x b m } = b t {\displaystyle \operatorname {Card} P\cap \{x_{1},...,x_{b^{m}}\}=b^{t}} for all elementary interval P in base b of hypervolume Ī»(P) = b.

Given a non-negative integer t, a (t,s)-sequence in base b is an infinite sequence of points xn such that for all integers k 0 , m t {\displaystyle k\geq 0,m\geq t} , the sequence { x k b m , . . . , x ( k + 1 ) b m 1 } {\displaystyle \{x_{kb^{m}},...,x_{(k+1)b^{m}-1}\}} is a (t,m,s)-net in base b.

In his article, Sobolā€™ described Ī Ļ„-meshes and LPĻ„ sequences, which are (t,m,s)-nets and (t,s)-sequences in base 2 respectively. The terms (t,m,s)-nets and (t,s)-sequences in base b (also called Niederreiter sequences) were coined in 1988 by Harald Niederreiter. The term Sobolā€™ sequences was introduced in late English-speaking papers in comparison with Halton, Faure and "other low-discrepancy sequences."

A fast algorithmā€»

A more efficient Gray code implementation was proposed by Antonov and Saleev.

As for the generation of Sobolā€™ numbers, they are clearly aided by the use of Gray code G ( n ) = n n / 2 {\displaystyle G(n)=n\oplus \lfloor n/2\rfloor } instead of n for constructing the n-th point draw.

Suppose we have already generated all the Sobolā€™ sequence draws up to n − 1 and kept in memory the values xn−1,j for all the required dimensions. Since the Gray code G(n) differs from that of the preceding one G(n − 1) by just a single, say the k-th, bit (which is a rightmost zero bit of n − 1), all that needs to be done is a single XOR operation for each dimension in order to propagate all of the xn−1 to xn, i.e.

x n , i = x n 1 , i v k , i . {\displaystyle x_{n,i}=x_{n-1,i}\oplus v_{k,i}.}

Additional uniformity propertiesā€»

Sobolā€™ introduced additional uniformity conditions known as property A and Aā€™.

Definition
A low-discrepancy sequence is said to satisfy Property A if for any binary segment (not an arbitrary subset) of the d-dimensional sequence of length 2 there is exactly one draw in each 2 hypercubes that result from subdividing the unit hypercube along each of its length extensions into half.
Definition
A low-discrepancy sequence is said to satisfy Property Aā€™ if for any binary segment (not an arbitrary subset) of the d-dimensional sequence of length 4 there is exactly one draw in each 4 hypercubes that result from subdividing the unit hypercube along each of its length extensions into four equal parts.

There are mathematical conditions that guarantee properties A and A'.

Theorem
The d-dimensional Sobolā€™ sequence possesses Property A iff
det ( V d ) 1 ( mod 2 ) , {\displaystyle \det(\mathbf {V} _{d})\equiv 1(\mod 2),}
where V is the d Ć— d binary matrix defined by
V d := ( v 1 , 1 , 1 v 2 , 1 , 1 v d , 1 , 1 v 1 , 2 , 1 v 2 , 2 , 1 v d , 2 , 1 v 1 , d , 1 v 2 , d , 1 v d , d , 1 ) , {\displaystyle \mathbf {V} _{d}:={\begin{pmatrix}{v_{1,1,1}}&{v_{2,1,1}}&{\dots }&{v_{d,1,1}}\\{v_{1,2,1}}&{v_{2,2,1}}&{\dots }&{v_{d,2,1}}\\{\vdots }&{\vdots }&{\ddots }&{\vdots }\\{v_{1,d,1}}&{v_{2,d,1}}&{\dots }&{v_{d,d,1}}\end{pmatrix}},}
with vk,j,m denoting the m-th digit after the binary point of the direction number vk,j = (0.vk,j,1vk,j,2...)2.
Theorem
The d-dimensional Sobolā€™ sequence possesses Property A' iff
det ( U d ) 1 mod 2 , {\displaystyle \det(\mathbf {U} _{d})\equiv 1\mod 2,}
where U is the 2d Ć— 2d binary matrix defined by
U d := ( v 1 , 1 , 1 v 1 , 1 , 2 v 2 , 1 , 1 v 2 , 1 , 2 v d , 1 , 1 v d , 1 , 2 v 1 , 2 , 1 v 1 , 2 , 2 v 2 , 2 , 1 v 2 , 2 , 2 v d , 2 , 1 v d , 2 , 2 v 1 , 2 d , 1 v 1 , 2 d , 2 v 2 , 2 d , 1 v 2 , 2 d , 2 v d , 2 d , 1 v d , 2 d , 2 ) , {\displaystyle \mathbf {U} _{d}:={\begin{pmatrix}{v_{1,1,1}}&{v_{1,1,2}}&{v_{2,1,1}}&{v_{2,1,2}}&{\dots }&{v_{d,1,1}}&{v_{d,1,2}}\\{v_{1,2,1}}&{v_{1,2,2}}&{v_{2,2,1}}&{v_{2,2,2}}&{\dots }&{v_{d,2,1}}&{v_{d,2,2}}\\{\vdots }&{\vdots }&{\vdots }&{\vdots }&{\ddots }&{\vdots }&{\vdots }\\{v_{1,2d,1}}&{v_{1,2d,2}}&{v_{2,2d,1}}&{v_{2,2d,2}}&{\dots }&{v_{d,2d,1}}&{v_{d,2d,2}}\end{pmatrix}},}
with vk,j,m denoting the m-th digit after the binary point of the direction number vk,j = (0.vk,j,1vk,j,2...)2.

Tests for properties A and Aā€™ are independent. Thus it is possible to construct the Sobolā€™ sequence that satisfies both properties A and Aā€™ or only one of them.

The initialisation of Sobolā€™ numbersā€»

To construct a Sobolā€™ sequence, a set of direction numbers vi,j needs to be selected. There is some freedom in the selection of initial direction numbers. Therefore, it is possible to receive different realisations of the Sobolā€™ sequence for selected dimensions. A bad selection of initial numbers can considerably reduce the efficiency of Sobolā€™ sequences when used for computation.

Arguably the easiest choice for the initialisation numbers is just to have the l-th leftmost bit set. And all other bits to be zero, "i."e. mk,j = 1 for all k and j. This initialisation is usually called unit initialisation. However, such a sequence fails the test for Property A and Aā€™ even for low dimensions and hence this initialisation is bad.

Implementation and availabilityā€»

Good initialisation numbers for different numbers of dimensions are provided by several authors. For example, Sobolā€™ provides initialisation numbers for dimensions up to 51. The same set of initialisation numbers is used by Bratley and Fox.

Initialisation numbers for high dimensions are available on Joe and Kuo. Peter JƤckel provides initialisation numbers up to dimension 32 in his book "Monte Carlo methods in finance".

Other implementations are available as C, Fortran 77. Or Fortran 90 routines in the Numerical Recipes collection of software. A free/open-source implementation in up to 1111 dimensions, based on the Joe and Kuo initialisation numbers, is available in C, and up to 21201 dimensions in Python and Julia. A different free/open-source implementation in up to 1111 dimensions is available for C++, Fortran 90, Matlab, and Python.

Commercial Sobolā€™ sequence generators are available within, for example, the NAG Library. BRODA Ltd. provides Sobol' and scrambled Sobol' sequences generators with additional unifomity properties A and A' up to a maximum dimension 131072. These generators were co-developed with Prof. I. Sobol'. MATLAB contains Sobol' sequences generators up to dimension 1111 as part of its Statistics Toolbox.

See alsoā€»

Notesā€»

  1. ^ These numbers are usually called initialisation numbers.

Referencesā€»

  1. ^ Sobolā€™, I.M. (1967), "Distribution of points in a cube and approximate evaluation of integrals". Zh. Vych. Mat. Mat. Fiz. 7: 784ā€“802 (in Russian); U.S.S.R Comput. Maths. Math. Phys. 7: 86ā€“112 (in English).
  2. ^ Niederreiter, H. (1988). "Low-Discrepancy and Low-Dispersion Sequences", Journal of Number Theory 30: 51ā€“70.
  3. ^ Antonov, I.A. and Saleev, V.M. (1979) "An economic method of computing LPĻ„-sequences". Zh. Vych. Mat. Mat. Fiz. 19: 243ā€“245 (in Russian); U.S.S.R. Comput. Maths. Math. Phys. 19: 252ā€“256 (in English).
  4. ^ Sobolā€™, I. M. (1976) "Uniformly distributed sequences with an additional uniform property". Zh. Vych. Mat. Mat. Fiz. 16: 1332ā€“1337 (in Russian); U.S.S.R. Comput. Maths. Math. Phys. 16: 236ā€“242 (in English).
  5. ^ Sobolā€™, I.M. and Levitan, Y.L. (1976). "The production of points uniformly distributed in a multidimensional cube" Tech. Rep. 40, Institute of Applied Mathematics, USSR Academy of Sciences (in Russian).
  6. ^ Bratley, P. and Fox, B. L. (1988), "Algorithm 659: Implementing Sobolā€™ quasirandom sequence generator". ACM Trans. Math. Software 14: 88ā€“100.
  7. ^ "Sobol' sequence generator". University of New South Wales. 2010-09-16. Retrieved 2013-12-20.
  8. ^ JƤckel, P. (2002) "Monte Carlo methods in finance". New York: John Wiley and Sons. (ISBN 0-471-49741-X.)
  9. ^ Press, W.H., Teukolsky, S. A., Vetterling, W. T., and Flannery, B. P. (1992) "Numerical Recipes in Fortran 77: The Art of Scientific Computing, 2nd ed." Cambridge University Press, Cambridge, U.K.
  10. ^ C implementation of the Sobolā€™ sequence in the NLopt library (2007).
  11. ^ "SciPy API Reference: scipy.stats.qmc.Sobol".
  12. ^ Imperiale, G. "pyscenarios: Python Scenario Generator".
  13. ^ Sobol.jl package: Julia implementation of the Sobolā€™ sequence.
  14. ^ The Sobolā€™ Quasirandom Sequence, code for C++/Fortran 90/Matlab/Python by J. Burkardt
  15. ^ "Numerical Algorithms Group". Nag.co.uk. 2013-11-28. Retrieved 2013-12-20.
  16. ^ I. Sobolā€™, D. Asotsky, A. Kreinin, S. Kucherenko (2011). "Construction and Comparison of High-Dimensional Sobol' Generators" (PDF). Wilmott Journal. Nov (56): 64ā€“79. doi:10.1002/wilm.10056.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  17. ^ "Broda". Broda. 2024-01-23. Retrieved 2024-01-23.
  18. ^ sobolset reference page. Retrieved 2017-07-24.

External linksā€»

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

ā†‘