|
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).
1.8.14