Maximin distance level expansion similar to Xiao and Xu is implemented, using an optimization algorithm that is less demanding than the TA algorithm of Xiao and Xu
MDLEs(
oa,
ell,
noptim.rounds = 1,
optimize = TRUE,
noptim.oa = 1,
dmethod = "manhattan",
p = 50
)
matrix or data.frame that contains an ingoing symmetric OA. Levels must be denoted as 0 to s-1 or as 1 to s.
the multiplier for each number of levels
the number of optimization rounds; optimization may take very long, therefore the default is 1, although more rounds are beneficial.
logical: if FALSE
, suppress optimization of expansion levels
integer: number of optimization rounds applied to initial oa itself before starting expansion
distance method for phi_p
, "manhattan" (default) or "euclidean"
p for phi_p
(the larger, the closer to maximin distance)
A matrix of class MDLE
with attributes
the phi_p value that was achieved
MDLE
logical: same as the input parameter
the call that produced the matrix
matrix of lists of length s
with elements from 0 to ell
-1;
matrix element (i,j) contains the sequence of replacements used in function DcFromDp
for constructing the level expansion of the ith level in the jth column
The ingoing oa is possibly optimized for space-filling, using function phi_optimize
with noptim.oa
optimization rounds. The expansions themselves are again optimized for improving phi_p,
using an algorithm which is a variant of Weng (2014), instead of the more powerful but also much more demanding
algorithm proposed by Xiao and Xu.
dim(aus <- MDLEs(DoE.base::L16.4.5, 2, noptim.rounds = 1))
#> Optimization round 1 of 1 started
#> [1] 16 5
permpicks <- attr(aus, "permpick")
## for people interested in internal workings:
## the code below produces the same matrix as MDLEs
SOAs:::DcFromDp(L16.4.5-1, 4,2, lapply(1:5, function(obj) permpicks[,obj]))
#> A B C D E
#> 1 0 0 1 0 1
#> 2 1 3 2 3 2
#> 3 0 4 5 5 4
#> 4 1 7 6 7 6
#> 5 2 0 3 5 7
#> 6 3 2 0 6 5
#> 7 3 4 7 1 3
#> 8 2 7 5 2 1
#> 9 5 1 4 7 2
#> 10 4 2 6 4 0
#> 11 4 5 1 2 7
#> 12 5 6 3 0 4
#> 13 6 1 7 3 5
#> 14 7 3 4 1 6
#> 15 6 5 2 6 0
#> 16 7 6 0 4 3
#> attr(,"origin")
#> [1] "Kuhfeld collection"
#> attr(,"class")
#> [1] "oa" "matrix"