[Contents] [TitleIndex] [WordIndex

Description

Low Discrepancy Sequences in Scilab

Scilab already provide several random number generators of high quality via the grand function. But, in the context of Monte-Carlo simulations, uniform random numbers may provide a slow convergence of the algorithm. For example in the case of numerical integration, it is known that a low discrepancy sequence can improve convergence speed of the algorithm.

This is why we have developped a module which provide low discrepancy sequences.

The current prototype has the following features :

This module currently provides the following functions:

This component currently provides the following sequences:

The current toolbox contains help pages and unit tests. Several algorithms provided in this tool are ported from the work by John Burkardt [11].

Ideas

In this section, we provide a project related to this topic. We especially detail the expected outputs of this project. We also analyse the tools which might be required. In all cases, a small scientific report at the end of the project will be welcome. We emphasize the benefits of the project for the student. We also detail the software management of the produced source code.

In both cases, the first step of the project will require to update the existing help pages. This will allow the student to get the knowledge of the current system.

Provide a C++ implementation of the sequences.

The "fast" sequences provided in C are not in C++, i.e. are not object-oriented. This has many drawbacks. The first one is that it creates an unconsistency between the API, which is object-oriented, and the underlying code, which is not. Therefore, no more than one fast Sobol sequence can be managed. Another consequence is that parallel simulations will not be manageable easily. The goal of this project is to provide a C++ implementation of these sequences. This will require to design a low discrepancy class and to re-design the existing algorithms. Once done, a consistent set of gateways must be created. That may be based on a token system similar to what has been used in the NISP module [12]. The final step will be to connect the macro-based API to the object-oriented gateways (this is the easy step). At the end of the project, the student will master low discrepancy sequences, which are used in many practical situations in industrial context, finance, etc... The project requires programming skills. This project does not require to modify Scilab and this is why it will be managed via the Scilab forge. The main tool for this project is a C++ compiler.

Other projects related to the same issues are welcome, for example: add more sequences, add more scrambling algorithms, provide a Matlab-like interface.

Bibliography


2022-09-08 09:26