Skip to content

Additional low-discrepancy sequences for (hyper)cubic integration #322

Description

@Samuel-Vangu

Following #241 (lattice rules) -- since that's already moving forward in #293 --
I wanted to propose a few complementary low-discrepancy constructions that
aren't covered by lattice rules alone:

  • Sobol' sequences -- digital net construction, widely used, extensible in
    n (unlike lattice rules, which need n fixed in advance for a given
    generating vector).
  • Halton sequences -- radical-inverse construction, also extensible,
    simpler to construct than Sobol' but with somewhat worse discrepancy in
    higher dimensions.
  • (Randomized) Latin Hypercube Sampling -- not itself a low-discrepancy
    sequence in the classical sense, but a well-established variance-reduction
    alternative to plain Monte Carlo (Stein, 1987; McKay, Beckman & Conover,
    1979), often used alongside QMC methods for the same integration problems.
  • Korobov lattice rules -- as far as I can tell, Add lattice rules for (hyper)cubic grid integration #293 implements the
    general CBC-constructed lattice rules (via the Kuo/UNSW tabulated vectors).
    Korobov lattices are a restricted special case (generating vector
    z(a) = (1, a, a^2, ..., a^{d-1}) mod n, a single integer parameter a),
    which trades a smaller search space for near-instant table lookup and much
    smaller storage -- a lighter-weight complement to the general CBC lattice
    rather than a duplicate of it.

I've implemented all four of these from scratch already: Halton, Korobov
lattice rules, and randomized LHS for QMCPy
(merged), and Halton and rank-1 lattice sequences for
torchquad (open PR).

To keep review manageable, I'd plan to open a separate PR per sequence
rather than one large PR.

Would this be of interest? Happy to start whenever convenient, and to adjust
scope/order based on what's most useful for the library.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions