SSJ
3.3.1
Stochastic Simulation in Java
|
Implements Latin Hypercube Sampling (LHS) with \(n\) points in the \(s\)-dimensional unit hypercube. More...
Public Member Functions | |
LatinHypercube (int n, int dim) | |
Constructs the structure for a Latin hypercube with n points in dim dimensions. More... | |
void | randomize (RandomStream stream) |
This randomization generates a random LHS point set. More... | |
void | addRandomShift (int fromDim, int toDim, RandomStream stream) |
Random shifts and partial randomizations are irrelevant here, so this method is redefined to be equivalent to randomize (stream) . More... | |
void | randomize (PointSetRandomization rand) |
Randomizes the points using LHS, regardless of what rand is. More... | |
String | toString () |
Public Member Functions inherited from CachedPointSet | |
CachedPointSet (PointSet p, int fromPoint, int toPoint, int fromDim, int toDim) | |
Creates a new PointSet object that contains an array storing the coordinates fromDim (inclusive) to toDim (exclusive) of the points numbered fromPoint (inclusive) to toPoint (exclusive) of p . More... | |
CachedPointSet (PointSet p, int n, int dim) | |
Same as CachedPointSet(p, 0, n, 0, dim). | |
CachedPointSet (PointSet p) | |
Creates a new PointSet object that contains an array storing the points of p . More... | |
PointSetIterator | iterator () |
Constructs and returns a point set iterator which gets the values directly from the array. | |
void | setRandomizeParent (boolean randomizeParent) |
If randomizeParent is true , calls to randomize() will be defered to the parent point set (this is the default); otherwise, the randomize method of the PointSetRandomization instance is invoked with this CachedPointSet instance as its argument. | |
void | addRandomShift (int d1, int d2, RandomStream stream) |
Generates a random shift, adds it to the contained point set, and re-caches the points. More... | |
void | randomize (PointSetRandomization rand) |
Randomizes the underlying point set using rand and re-caches the points. More... | |
void | sortByCoordinate (int j) |
Sorts the cached points by increasing order of coordinate j . More... | |
void | stripCoordinates (int d) |
Removes the first d coordinates of each cached point. More... | |
String | toString () |
double | getCoordinate (int i, int j) |
double [][] | getArray () |
PointSet | getParentPointSet () |
Returns the reference point set that was passed to the constructor. | |
Public Member Functions inherited from PointSet | |
int | getDimension () |
Returns the dimension (number of available coordinates) of the points. More... | |
int | getNumPoints () |
Returns the number of points. More... | |
abstract double | getCoordinate (int i, int j) |
Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\). More... | |
PointSetIterator | iterator () |
Constructs and returns a point set iterator. More... | |
void | randomize (PointSetRandomization rand) |
Randomizes this point set using the given rand . More... | |
void | addRandomShift (int d1, int d2, RandomStream stream) |
By default, this method generates a random shift in the protected double[] array shift , to be used eventually for a random shift modulo 1. More... | |
void | addRandomShift (RandomStream stream) |
Same as addRandomShift(0, dim, stream), where dim is the dimension of the point set. More... | |
void | addRandomShift (int d1, int d2) |
Refreshes the random shift (generates new uniform values for the random shift coordinates) for coordinates d1 to d2-1 , using the saved shiftStream . | |
void | addRandomShift () |
Same as addRandomShift(0, dim), where dim is the dimension of the point set. | |
void | clearRandomShift () |
Erases the current random shift, if any. | |
String | toString () |
Formats a string that contains information about the point set. More... | |
String | formatPoints () |
Same as invoking formatPoints(n, d) with \(n\) and \(d\) equal to the number of points and the dimension of this object, respectively. More... | |
String | formatPoints (int n, int d) |
Formats a string that displays the same information as returned by toString, together with the first \(d\) coordinates of the first \(n\) points. More... | |
String | formatPoints (PointSetIterator iter) |
Same as invoking formatPoints(iter, n, d) with \(n\) and \(d\) equal to the number of points and the dimension, respectively. More... | |
String | formatPoints (PointSetIterator iter, int n, int d) |
Same as invoking formatPoints(n, d), but prints the points by calling iter repeatedly. More... | |
String | formatPointsBase (int b) |
Similar to formatPoints(), but the points coordinates are printed in base \(b\). More... | |
String | formatPointsBase (int n, int d, int b) |
Similar to formatPoints(n, d), but the points coordinates are printed in base \(b\). More... | |
String | formatPointsBase (PointSetIterator iter, int b) |
Similar to formatPoints(iter), but the points coordinates are printed in base \(b\). More... | |
String | formatPointsBase (PointSetIterator iter, int n, int d, int b) |
Similar to formatPoints(iter, n, d), but the points coordinates are printed in base \(b\). More... | |
String | formatPointsNumbered () |
Same as invoking formatPointsNumbered(n, d) with \(n\) and \(d\) equal to the number of points and the dimension, respectively. More... | |
String | formatPointsNumbered (int n, int d) |
Same as invoking formatPoints(n,d), except that the points are numbered. More... | |
Protected Attributes | |
double | delta |
Protected Attributes inherited from CachedPointSet | |
PointSet | P |
double | x [][] |
Protected Attributes inherited from PointSet | |
double | EpsilonHalf = 1.0 / Num.TWOEXP[55] |
To avoid 0 for nextCoordinate when random shifting, we add this to each coordinate. | |
int | dim = 0 |
Dimension of the points. | |
int | numPoints = 0 |
Number of points. | |
int | dimShift = 0 |
Current dimension of the shift. More... | |
int | capacityShift = 0 |
Number of array elements in the shift vector, always >= dimShift. | |
double [] | shift |
This is the shift vector as a double[] array, which contains the current random shift in case we apply a random shift modulo 1. More... | |
RandomStream | shiftStream |
Stream used to generate the random shifts. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from CachedPointSet | |
void | fillCache (int fromDim, int dim) |
Caches the points, skipping fromDim coordinates and taking the next dim ones. | |
Static Protected Attributes inherited from PointSet | |
static final int | MAXBITS = 31 |
Since Java has no unsigned type, the 32nd bit cannot be used efficiently, so we have only 31 bits. More... | |
Package Functions inherited from CachedPointSet | |
public< T > void | sort (MultiDimSort< T > sort) |
Sorts the cached points (only) with the given umontreal.ssj.util.MultiDimSort sorting algorithm sort . More... | |
Package Attributes inherited from CachedPointSet | |
int | fromPoint = 0 |
int | fromDim = 0 |
boolean | randomizeParent = true |
Implements Latin Hypercube Sampling (LHS) with \(n\) points in the \(s\)-dimensional unit hypercube.
Each axis of the hypercube is divided into \(n\) intervals of length \(1/n\). The randomized point set has the property that for each coordinate \(j\), there is exactly one point with coordinate \(j\) in each interval on length \(1/n\).
To generate the points, for each coordinate \(j\) we generate a random permutation \(\pi_j\) of the \(n\) intervals. Then, for point \(i\), we generate coordinate \(j\) randomly uniformly in the interval number \(\pi_j(i)\). The points are enumerated by order of their first coordinate.
LatinHypercube | ( | int | n, |
int | dim | ||
) |
Constructs the structure for a Latin hypercube with n
points in dim
dimensions.
n | number of points |
dim | dimension of the points set |
void addRandomShift | ( | int | fromDim, |
int | toDim, | ||
RandomStream | stream | ||
) |
Random shifts and partial randomizations are irrelevant here, so this method is redefined to be equivalent to randomize (stream)
.
The parameters fromDim
and toDim
are not used.
void randomize | ( | RandomStream | stream | ) |
This randomization generates a random LHS point set.
The points are sorted by their first coordinate. The LHS points are defined only after this method has been called.
stream | Random stream to generate the permutations and the random points in the intervals |
void randomize | ( | PointSetRandomization | rand | ) |
Randomizes the points using LHS, regardless of what rand
is.
Equivalent to randomize (rand.getStream)
.