| Uniform | R Documentation |
Builds a symmetric uniform design (UD) from a resolvable balanced incomplete block design, following the correspondence of Fang et al.: the blocks are partitioned into parallel classes, each class becomes a factor (column), and the level of a treatment on a factor is the index of the block of that class containing it.
Uniform(mat)
mat |
The matrix of the RBIBD (rows are blocks), e.g. the
|
The resolution is found by exact-cover search with
backtracking, so the result does not depend on the order of the rows of
mat: any row permutation yields the same design up to a
permutation of the factors and a relabelling of levels. Earlier
versions used a first-fit greedy extraction, which could fail on a
valid resolvable design presented in an unfavourable row order.
If mat admits no resolution, or the search budget is exhausted,
an informative error is raised rather than a partial design returned.
Works for any order p (the parallel-class extraction is purely
combinatorial). For the RBIBD residual to a block of the BIBD of
PG(m, p), the result is a uniform design with p^m runs and p
levels per factor.
A list with components:
nNumber of experiments (runs) of the uniform design.
FNumber of factors (one per parallel class).
UDThe design: an n x F matrix of levels.
classesA list giving, for each factor, the row indices
of mat forming that parallel class.
Mohamed Laib, Abla Boudraa and Zebida Gheribi-Aoulmi
K.T. Fang, X. Lu, Y. Tang and J. Yin (2004). Constructions of uniform designs by using resolvable packings and coverings. Discrete Mathematics, 274, 25–40.
K.T. Fang, G.N. Ge, M.Q. Liu and H. Qin (2004). Construction of uniform designs via super-simple resolvable t-designs. Utilitas Mathematica, 66, 15–32.
X <- BIB(3) # BIBD (15, 7, 3) from PG(3, 2)
Y <- Resolvable(1, X$BIB) # RBIBD (8, 14, 7, 4, 3)
Uniform(Y$RBIB)$UD # U(8, 2^7)
Z <- BIB(2, p = 3) # BIBD (13, 4, 1) from PG(2, 3)
W <- Resolvable(1, Z$BIB) # RBIBD (9, 12, 4, 3, 1)
Uniform(W$RBIB)$UD # U(9, 3^4)
# the result does not depend on the order of the blocks
set.seed(1)
P <- Y$RBIB[sample(nrow(Y$RBIB)), ]
dim(Uniform(P)$UD)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.