fssf_fr {FSSF} | R Documentation |
Generate fully-sequential minimax designs inside a unit hypercube using a heuristic.
Description
Produces a random fully-sequential design (a nested sequence of designs with points added one at a time) inside a unit hypercube such that the largest distance between any point inside the unit hypercube to its closest design point is as small as possible (Shang and Apley, 2019). The "fr" stands for "forward reflected", since the algorithm uses a modification of the criterion used in the fssf-f algorithm.
Usage
fssf_fr(d, nMax, N=-1, Preference = "minimax", ScaleVector = NULL, Dinit = NULL)
Arguments
d |
The dimension of the design space. |
nMax |
The largest design size required by the user. |
N |
Size of the candidate set used to generate the design points. -1 corresponds to the default setting, and the candidate set size will be calculated as |
Preference |
Choosing |
ScaleVector |
Array of the lengthscale parameters of different inputs. Default is NULL, which corresponds to the |
Dinit |
Numerical Matrix with |
Value
A nMax \times d
matrix with the i^{th}
row corresponding to the i^{th}
design point.
Author(s)
Boyang Shang boyangshang2015@u.northwestern.edu
Daniel W. Apley apley@northwestern.edu
References
Shang, B. and Apley, D.W. (2019), "Large-Scale Fully-Sequential Space-filling Algorithms for Computer Experiments", Journal of Quality Technology (in press). doi:10.1080/00224065.2019.1705207.
Kennard, R.W. and Stone, L.A. (1969). "Computer aided design of experiments". Technometrics 11.1, pp. 137-148.
Examples
##Generate a design using the fssf_fr function.
Design <- fssf_fr(d=2, nMax = 320)
plot(Design[,1], Design[,2])
##Generate a design using the fssf_fr function with scaling vector and no initial design.
d = 2
n = 100
ScaleVector = c(1.0, 20.0)*0.5
Design = fssf_fr(d = d, nMax = n, ScaleVector = ScaleVector)
plot(Design[,1], Design[,2])
##Generate a design using the fssf_fr function with a scaling vector and with an initial design
d = 2
n = 100
Dinit = fssf_fr(d=2, nMax = 40)
ScaleVector = c(1.0, 20.0)*0.5
Design = fssf_fr(d = d, nMax = n, ScaleVector = ScaleVector, Dinit = Dinit)
plot(Design[,1], Design[,2])
points(Dinit[,1], Dinit[,2], col="red")