Creates a latin Hypercube Design (LHD) with user-specified dimension and number of design points. LHDs are created repeatedly created at random. For each each LHD, the minimal pair-wise distance between design points is computed. The design with the maximum of that minimal value is chosen.
designLHD(x = NULL, lower, upper, control = list())
optional matrix x, rows for points, columns for dimensions. This can contain one or more points which are part of the design, but specified by the user. These points are added to the design,
and are taken into account when calculating the pair-wise distances. They do not count for the design size. E.g., if x
has two rows, control$replicates
is one and control$size
is ten, the returned design will have
12 points (12 rows). The first two rows will be identical to x
. Only the remaining ten rows are guaranteed to be a valid LHD.
vector with lower boundary of the design variables (in case of categorical parameters, please map the respective factor to a set of contiguous integers, e.g., with lower = 1 and upper = number of levels)
vector with upper boundary of the design variables (in case of categorical parameters, please map the respective factor to a set of contiguous integers, e.g., with lower = 1 and upper = number of levels)
list of controls:
size
number of design points
retries
number of retries during design creation
types
this specifies the data type for each design parameter, as a vector of either "numeric","integer","factor". (here, this only affects rounding)
inequalityConstraint
inequality constraint function, smaller zero for infeasible points. Used to replace infeasible points with random points.
replicates
integer for replications of each design point. E.g., if replications is two, every design point will occur twice in the resulting matrix.
matrix design
- design
has length(lower)
columns and (size + nrow(x))*control$replicates
rows.
All values should be within lower <= design <= upper
# NOT RUN {
set.seed(1) #set RNG seed to make examples reproducible
design <- designLHD(,1,2) #simple, 1-D case
design
design <- designLHD(,1,2,control=list(replicates=3)) #with replications
design
design <- designLHD(,c(-1,-2,1,0),c(1,4,9,1),
control=list(size=5, retries=100, types=c("numeric","integer","factor","factor")))
design
x <- designLHD(,c(1,-10),c(2,10),control=list(size=5,retries=100))
x2 <- designLHD(x,c(1,-10),c(2,10),control=list(size=5,retries=100))
plot(x2)
points(x, pch=19)
# }
Run the code above in your browser using DataLab