256 points from the first 256 points of the 2,3 Halton sequence (top) compared with a pseudorandom number source (bottom). The Halton sequence covers the space more evenly. (red=1,..,10, blue=11,..,100, green=101,..,256)

In statistics, Halton sequences are sequences used to generate points in space for numerical methods such as Monte Carlo simulations. Although these sequences are deterministic, they are of low discrepancy, that is, appear to be random for many purposes. They were first introduced in 1960 and are an example of a quasi-random number sequence. They generalize the one-dimensional van der Corput sequences.

Example of Halton sequence used to generate points in (0, 1) × (0, 1) in R2

edit
Illustration of the first 8 points of the 2,3 Halton sequence

The Halton sequence is constructed according to a deterministic method that uses coprime numbers as its bases. As a simple example, let's take one dimension of the two-dimensional Halton sequence to be based on 2 and the other dimension on 3. To generate the sequence for 2, we start by dividing the interval (0,1) in half, then in fourths, eighths, etc., which generates

12,
14, 34,
18, 58, 38, 78,
116, 916,...

Equivalently, the nth number of this sequence is the number n written in binary representation, inverted, and written after the decimal point. This is true for any base. As an example, to find the sixth element of the above sequence, we'd write 6 = 1*22 + 1*21 + 0*20 = 1102, which can be inverted and placed after the decimal point to give 0.0112 = 0*2-1 + 1*2-2 + 1*2-3 = 38. So the sequence above is the same as

0.12, 0.012, 0.112, 0.0012, 0.1012, 0.0112, 0.1112, 0.00012, 0.10012,...

To generate the sequence for 3 for the other dimension, we divide the interval (0,1) in thirds, then ninths, twenty-sevenths, etc., which generates

13, 23, 19, 49, 79, 29, 59, 89, 127,...

When we pair them up, we get a sequence of points in a unit square:

(12, 13), (14, 23), (34, 19), (18, 49), (58, 79), (38, 29), (78, 59), (116, 89), (916, 127).

Even though standard Halton sequences perform very well in low dimensions, correlation problems have been noted between sequences generated from higher primes. For example, if we started with the primes 17 and 19, the first 16 pairs of points: (117, 119), (217, 219), (317, 319) ... (1617, 1619) would have perfect linear correlation. To avoid this, it is common to drop the first 20 entries, or some other predetermined quantity depending on the primes chosen. Several other methods have also been proposed. One of the most prominent solutions is the scrambled Halton sequence, which uses permutations of the coefficients used in the construction of the standard sequence. Another solution is the leaped Halton, which skips points in the standard sequence. Using, e.g., only each 409th point (also other prime numbers not used in the Halton core sequence are possible), can achieve significant improvements.[1]

Implementation

edit

In pseudocode:

algorithm Halton-Sequence is
    inputs: index 
            base 
    output: result 

    
    

    while  do
        
        
        

    return 

An alternative implementation that produces subsequent numbers of a Halton sequence for base b is given in the following generator function (in Python).[2] This algorithm uses only integer numbers internally, which makes it robust against round-off errors.

def halton_sequence(b):
    """Generator function for Halton sequence."""
    n, d = 0, 1
    while True:
        x = d - n
        if x == 1:
            n = 1
            d *= b
        else:
            y = d // b
            while x <= y:
                y //= b
            n = (b + 1) * y - x
        yield n / d

See also

edit

References

edit
  1. ^ Kocis and Whiten, 1997
  2. ^ Berblinger, Michael; Schlier, Christoph (1991). "Monte Carlo integration with quasi-random numbers: some experience". Computer Physics Communications. 66 (2–3): 157–166. Bibcode:1991CoPhC..66..157B. doi:10.1016/0010-4655(91)90064-R. ISSN 0010-4655.

📚 Artikel Terkait di Wikipedia

Low-discrepancy sequence

convergence. Examples below are the van der Corput sequence, the Halton sequences, and the Sobol’ sequences. One general limitation is that construction methods

Halton

up Halton or halton in Wiktionary, the free dictionary. Halton may refer to: Borough of Halton, Cheshire Halton (UK Parliament constituency) Halton, Runcorn

Quasi-Monte Carlo method

low-discrepancy sequence such as the Halton sequence, the Sobol sequence, or the Faure sequence, whereas Monte Carlo uses a pseudorandom sequence. The advantage

Temporal anti-aliasing

vertically. The jitter changes each frame, following a pattern (such as a Halton sequence) so that every point in the image is sampled evenly over time. Old

Van der Corput sequence

low-discrepancy sequences – Type of mathematical sequencePages displaying short descriptions of redirect targets Halton sequence – Type of numeric sequence used

List of number theory topics

function Low-discrepancy sequence Illustration of a low-discrepancy sequence Constructions of low-discrepancy sequences Halton sequences Geometry of numbers

List of statistics articles

circle distribution Half-logistic distribution Half-normal distribution Halton sequence Hamburger moment problem Hannan–Quinn information criterion Harris

Sobol sequence

in late English-speaking papers in comparison with Halton, Faure and other low-discrepancy sequences. A more efficient Gray code implementation was proposed