<< lowdisc_fauresuggest Favorable Parameters lowdisc_niederbase >>

Low Discrepancy >> Low Discrepancy > Favorable Parameters > lowdisc_haltonsuggest

lowdisc_haltonsuggest

Returns favorable parameters for Halton sequence.

Calling Sequence

[nsim,skip,leap] = lowdisc_haltonsuggest ( dim , nsimmin )

Parameters

dim :

a floating point integer, the spatial dimension.

nsimmin :

a floating point integer, the minimum required number of simulations. Default nsimmin = 1.

nsim :

a floating point integer, the number of simulations to perform, with nsim >= nsimmin.

skip :

a floating point integer, the number of initial elements to skip in the sequence.

leap :

a floating point integer, the number of elements to ignore each time an element is generated.

Description

This routine provides favorable parameters to be used with a Halton sequence. There are very few suggestions to use with this sequence.

We return nsim = nsimmin. We return skip = 0.

For dimension less or equal to 999, the leap value is p-1, where p is the (dim+1)-th prime number. If not we return leap = 0.

Note

In versions up to v0.4, we used settings suggested in : "Computational investigations of low-discrepancy sequences", Kocis, L. and Whiten, W. J. 1997. ACM Trans. Math. Softw. 23, 2 (Jun. 1997), 266-294. Especially p. 274. This leaded to leap=409 for dimensions less than 400. In this case, large hyper-rectangles were unfilled by the sequence, so that the sequence was no uniform anymore. If dimension is smaller than 400, we return leap = 409.

Other authors have suggested to consider the number of simulations as a product of the bases. See "On the Optimal Halton Sequence", Chi, Mascagni and Warknock, Mathematics and Computers in Simulation 70 (2005) 9?21. In low dimensions, we could use "nsim = prod ( prmat ( 1 : n ) )" where n is the number of dimensions and prmat is a matrix of primes, as computed from "prmat = lowdisc_primes100 ( )". The problem is that this function grows extremely fast, and becomes unusable for n greater than 10.

Examples

// See the suggestions in dimension 4.
dim = 8;
nsimmin = 1000;
[nsim,skip,leap] = lowdisc_haltonsuggest ( dim , nsimmin )
// In dimension 500, we do not have any leap to suggest
dim = 500;
nsimmin = 1000;
[nsim,skip,leap] = lowdisc_haltonsuggest ( dim , nsimmin )

// Use the Halton sequence in dimension 4.
dim = 4;
nsimmin = 1000;
[nsim,skip,leap] = lowdisc_haltonsuggest ( dim , nsimmin );
lds = lowdisc_new("halton");
lds = lowdisc_configure(lds,"-dimension",dim);
lds = lowdisc_configure(lds,"-skip",skip);
lds = lowdisc_configure(lds,"-leap",leap);
lds = lowdisc_startup (lds);
[lds,computed]=lowdisc_next(lds,nsim);
lds = lowdisc_destroy(lds);

// See the number of simulations as the product of the
// primes used in the Halton sequence.
// It is assumed that leap = 0, skip = 0.
prmat = number_primes100 ( );
for n = 1 : 15
disp([n prod(1:n)])
end

Authors

Bibliography

qrandset, Leap property, http://www.mathworks.fr/fr/help/stats/qrandset.leap.html


Report an issue
<< lowdisc_fauresuggest Favorable Parameters lowdisc_niederbase >>