SSJ
3.3.1
Stochastic Simulation in Java
|
This class implements methods to search for the best lattices of rank 1, defined as follows [219] . More...
Public Member Functions | |
Searcher (Discrepancy disc, boolean primeN) | |
The number of points \(n\), the dimension \(s\), and possibly the \(s\) weight factors \(\gamma_j\) must be given in disc . More... | |
double | exhaust (int s) |
Exhaustive search to find the lattice with the best (the smallest) discrepancy in dimension \(s\). More... | |
double | exhaustPrime (int s) |
Similar to exhaust(s), except that only values of \(a_j\) relatively prime to \(n\) are considered. | |
double | random (int s, int k) |
Random search to find the lattice with the best (the smallest) discrepancy in dimension \(s\). More... | |
double | randomPrime (int s, int k) |
Similar to random(s, k), except that only values of \(a_j\) relatively prime to \(n\) are considered. | |
double | getBestVal () |
Returns the best value of the discrepancy found in the last search. | |
int [] | getBestAs () |
Returns the generator of the lattice which gave the best value of the discrepancy in the last search. More... | |
void | initGen (int seed) |
Initializes the random number generator used in random searches with the starting seed seed . More... | |
Protected Member Functions | |
void | print (int[] y, int s) |
Protected Attributes | |
Discrepancy | disc |
PointSet | lat |
double [] | gamma |
double | bestVal |
int [] | bestAs |
boolean | primeN = false |
boolean | power2F = false |
Static Protected Attributes | |
static RandomStream | gen = new LFSR113() |
This class implements methods to search for the best lattices of rank 1, defined as follows [219] .
Given a positive integer \(n\) and a \(s\)-dimensional integer vector \((a_0,…,a_{s-1})\), where \(0 \le a_j < n\) for each \(j\), the points are defined by
\[ \mathbf{u}_i = (i/n)(a_0, a_1, …, a_{s-1}) \bmod1 \]
for \(i=0,…,n-1\). Here we always choose \(a_0=1\).
The discrepancy object in the Searcher
constructor must fix the number of points \(n\), the maximal dimension \(s\) of the lattice and possibly, the weight factors \(\gamma_j\). Then the search program will examine different lattices with \(n\), \(s\) and \(\gamma_j\) fixed in order to find the best amongst those examined. Searches may be exhaustive or random.
One may consider only a subset of the possible lattices according to some criterion. Some of these restricted searches are implemented in classes derived from Searcher
.
Searcher | ( | Discrepancy | disc, |
boolean | primeN | ||
) |
The number of points \(n\), the dimension \(s\), and possibly the \(s\) weight factors \(\gamma_j\) must be given in disc
.
The \(n\) points of each lattice will be generated in the search. The flag primeN
indicates whether \(n\) is a prime number (true
) or not (false
). This is used in the *Prime
methods.
double exhaust | ( | int | s | ) |
Exhaustive search to find the lattice with the best (the smallest) discrepancy in dimension \(s\).
The search runs over all values of the generator \(a_j = 1, 2, …, (n-1)\) and over all dimensions up to \(s\) inclusively. The first component \(a_0\) of the generator is always set to 1. The method returns the best value of the discrepancy found in dimension \(s\).
int [] getBestAs | ( | ) |
Returns the generator of the lattice which gave the best value of the discrepancy in the last search.
The components of this generator are returned as \(a_j\), for \(j = 0, 1, …, (s-1)\).
void initGen | ( | int | seed | ) |
Initializes the random number generator used in random searches with the starting seed seed
.
If this method is not called, a default seed will be used.
double random | ( | int | s, |
int | k | ||
) |
Random search to find the lattice with the best (the smallest) discrepancy in dimension \(s\).
At most \(k\) random ( \(s\)-dimensional) generators \(\mathbf{a}\) are examined. Each random component \(a_j\) takes values over the integers \(1, 2, …, (n-1)\). The first component \(a_0\) is always set to 1. The method returns the best value of the discrepancy found in dimension \(s\).