Skip to content

Low Discrepancy Sequences for MonteCarlo and VEGAS #140

@FHof

Description

@FHof

Feature

Desired Behavior / Functionality

Low discrepancy sequences could be used as an optional replacement for random number generation for MonteCarlo and VEGAS.
With certain integrands, this could lead to a higher average accuracy.

What Needs to Be Done

  • Add a class similar to the RNG class to generate numbers with a low discrepancy sequence instead of a PRNG. An instance of it can be passed as rng argument to VEGAS and MonteCarlo.
    This class could use, for example, PyTorch's and TensorFlow's sobol sequences: https://www.tensorflow.org/api_docs/python/tf/math/sobol_sample, https://pytorch.org/docs/stable/generated/torch.quasirandom.SobolEngine.html
  • Add a function to the number generator classes which samples points and use it for MonteCarlo and VEGAS instead of uniform. In comparison to uniform, the output of this function always corresponds to points in a space, where conceptually a distance function is defined.
  • Change MonteCarlo.get_jit_compiled_integrate so that it works with the number generator class for low discrepancy sequences.

How Can It Be Tested

It can be tested with additional tests in the torchquad/tests folder.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions