Uniform: Uniform Design from a Resolvable BIBD

View source: R/Uniform.R

UniformR Documentation

Uniform Design from a Resolvable BIBD

Description

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.

Usage

Uniform(mat)

Arguments

mat

The matrix of the RBIBD (rows are blocks), e.g. the RBIB component returned by Resolvable.

Details

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.

Value

A list with components:

n

Number of experiments (runs) of the uniform design.

F

Number of factors (one per parallel class).

UD

The design: an n x F matrix of levels.

classes

A list giving, for each factor, the row indices of mat forming that parallel class.

Author(s)

Mohamed Laib, Abla Boudraa and Zebida Gheribi-Aoulmi

References

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.

Examples

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)

PGM2 documentation built on Aug. 27, 2026, 9:07 a.m.