9.5. pyopus.misc.ghalton
— Generalized Halton sequence generator
- class ghalton.GeneralizedHalton(dim[, seed] | config)
Creates a generalized Halton generator. It takes at least one argument, either the dimensionality, or a configuration. When the dimensionality is given, an optional argument can be used to seed for the random permutations created. The configuration is a series of permutations each of n_i numbers, where n_i is the n_i’th prime number. In that last case, the dimensionality is infered from the number of sublists given.
- Parameters:
dim (integer) – Dimensionality of the points to create
seed (integer) – Seed to create the permutations
config (list of lists of integers) – List of permutations to scramble the halton digits
- get(n)
Retreive the n next points from this sequence. Each point is a
list
containing each value for each coordinates and the points are returned in alist
of n elements even if n is 1.- reset()
Reset the generator to its initial state, i.e. before it generated the first point.
- seed([config])
Seed the generator with a new seed or configuration. Seeding a generator automatically call
reset()
.- Parameters:
config (
None
, integer, or list of lists of integers) – The config to seed the sequencer
- class ghalton.Halton(dim)
Creates a Halton generator of dimensionality dim. This is similar to creating a
GeneralizedHalton
sequence with the identity permutations.- get(n)
Retreive the n next points from this sequence. Each point is a
list
containing each value for each coordinates and the points are returned in alist
of n elements even if n is 1.- reset()
Reset the generator to its initial state, i.e. before it generated the first point.
- ghalton.EA_PERMS
Permutations described in [DeRainville2012] for the 100 first dimensions of the Generalized Halton sequence.
- ghalton.PRIMES
Prime numbers lower than 10000.
F.-M. De Rainville, C. Gagné, O. Teytaud, D. Laurendeau. Evolutionary optimization of low-discrepancy sequences. ACM Trans. Model. Comput. Simul., 22(2):1-25, 2012.
This module was written by Francois-Michel De Rainville (version 0.2.0) and released under GNU LGPL.