digital_net
Uses digital net points to sample variables
Specification
Alias: sobol_sequence
Arguments: None
Default: No digital net sampling
Child Keywords:
Required/Optional |
Description of Group |
Dakota Keyword |
Dakota Keyword Description |
---|---|---|---|
Optional |
Do not shift this digital net |
||
Optional |
Do not scramble this digital net |
||
Optional |
Specify format of integers in the generating matrices |
||
Optional |
log2 of the maximum number of points in the digital net |
||
Optional |
Bit depth of the generating matrices |
||
Optional |
Number of rows in the affine scramble matrices |
||
Optional |
Specify the generating matrices of this digital net |
||
Optional |
Ordering of the points of this digital net |
Description
The digital_net
keyword invokes digital net sampling as the means of
drawing samples of uncertain variables according to their probability
distributions [DP10]. The Sobol sequence is a particularly
famous example of a digital net [Sobol67]. When this keyword is provided, it must be accompanied by the keyword low_discrepancy
.
Digital nets and sequences were introduced by Niederreiter, building upon earlier work by Sobol and Faure [Nie87]. In the digital construction scheme, a sequence in \(d\) dimensions generates points \(\boldsymbol{t}^{(i)} = (t_{i, 0}, t_{i, 1}, \ldots, t_{i, d})\), where the \(j\)th component \(t_{i, j}\) is constructed as follows:
Write \(i\) in its base-\(b\) representation, i.e.,
Compute the matrix-vector product
where all additions and multiplications are performed in base \(b\).
Set the \(j\)th component of the \(i\)th points to
The matrices \(C_j\), \(j=1, 2, \ldots, d\) are known as generating matrices.
The performance of the digital net points depends on the choice of the generating matrices. Dakota provides two predefined sets of generating matrices:
joe_kuo
(default): generates up to 232 points in up to 250 dimensions [JK08]sobol_order_2
: generates up to 232 points in up to 1024 dimensions [CHMS20]
If this is not sufficient, you can provide a custom set of generating matrices
either as an inline
argument, or using an external file
.
Custom generating matrices can be found online at [Kuob], [Nuy].
In this case, the user must specify the log2
of the maximum number of points in the
sequence using the keyword m_max
, as well as the bit depth of the generating matrices t_max
.
By default, the digital points will be shifted using a digital shift vector. If \(\Delta\) is a
vector of standard uniform random numbers, then we compute \(\boldsymbol{t}^{(i)} \otimes \Delta\), where
\(\otimes\) is the element-wise \(b\)-ary addition operator, see [DP10].
If this is not the desired behavior, specify the keyword no_digital_shift
(warning: this means that the first, untransformed, point in the sequence will be
\(\boldsymbol{t}^{(0)} = (0, 0, \ldots, 0)\) – this may or may not be the desired behavior [Owe20].)
Ideally, the digital net should preserve the structure of the points after randomization.
This can be achieved by scrambling the digital net. Scrambling can also improve the rate of convergence
of a method that uses these scrambled points to compute the mean of the model response.
Owen’s scrambling [Owe98] is the most well-known scrambling technique. A particular variant
is linear matrix scrambling, which is implemented in Dakota [Matouvsek98]. To disable scrambling of the points, use the keyword no_scrambling
.
The default behavior is to return points using Gray code ordering such that the digital net
becomes a digital sequence with good performance for an arbitrary number of points \(N\).
The Gray code ordering has an additional advantage in that there exists an iterative procedure
to generate the successive points of the sequence, see gray_code
.
Use the keyword ordering
to choose the ordering of the point set.
Notes
A computer implementation of a Sobol sequence generator in Fortran 77 was given by Bratley and Fox [BF88] as Algorithm 659. This implementation allowed points of up to 40 dimensions. It was extended by Joe and Kuo to allow up to 1111 dimensions in [JK03] and up to 21201 dimensions in [JK08]. In the Dakota implementation of the algorithm outlined above, we use the iterative construction from Antonov and Saleev [AS79].
Examples
environment
tabular_data
tabular_data_file = 'samples.dat'
freeform
method
sampling
samples 128
sample_type
low_discrepancy
digital_net # this is the default option
variables
uniform_uncertain = 2
lower_bounds 0.0 0.0
upper_bounds 1.0 1.0
interface
analysis_drivers = 'genz'
analysis_components = 'cp1'
direct
responses
response_functions = 1
no_gradients
no_hessians