fssf_f {FSSF} | R Documentation |
Generate fully-sequential maximin designs inside a unit hypercube.
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 design points are as far away from each other as possible (Shang and Apley, 2019). The "f" stands for "forward", since the algorithm begins with the smallest design and adds points one at a time.
Usage
fssf_f(d, nMax, N=-1, 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 |
ScaleVector |
Array of the lengthscale parameters of different inputs. Default is NULL, which corresponds to the |
Dinit |
Numerical Matrix with |
Details
The fssf_f
uses a similar idea as proposed by Kennard and Stone(1969); modifications have been made to improve the space-filling performance as well as efficiency.
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_f function with no scaling vector and no initial design.
Design <- fssf_f(d=2, nMax = 320)
plot(Design[,1], Design[,2])
##Generate a design using the fssf_f function with scaling vector and no initial design.
d = 2
n = 100
ScaleVector = c(1.0, 20.0)*0.5
Design = fssf_f(d = d, nMax = n, ScaleVector = ScaleVector)
plot(Design[,1], Design[,2])
##Generate a design using the fssf_f function with a scaling vector and with an initial design
d = 2
n = 100
Dinit = fssf_f(d=2, nMax = 40)
ScaleVector = c(1.0, 20.0)*0.5
Design = fssf_f(d = d, nMax = n, ScaleVector = ScaleVector, Dinit = Dinit)
plot(Design[,1], Design[,2])
points(Dinit[,1], Dinit[,2], col="red")