Procedure: Generate a lattice design

Description and Background

A lattice design is one of a number of non-random space-filling designs suitable for defining a set of points in the simulator input space for creating a training sample.

The \(n\) point lattice in \(p\) dimensions is generated by a positive integer generator set \(g=(g_1,\ldots,g_p)\). See the “Additional Comments” below for discussion of the choice of generators.

Inputs

  • Number of dimensions \(p\)
  • Number of runs desired \(n\)
  • Set of positive integer generators \(g_1,\ldots,g_p\)

Outputs

  • Lattice design \(D = \{x_1, x_2, \ldots, x_n\}\)

Procedure

For \(j=0,\ldots,n-1\), generate lattice points as

\[x_{j+1}=\left(\frac{j}{n}g_1{\rm mod} 1,\ldots,\frac{j}{n}g_d{\rm mod} 1\right).\]

Note that the operator “mod 1” here has the effect of returning the fractional part of each number. For instance, if \(j=7, n=50\) and \(g_1 = 13\), then

\[\frac{j}{n}g_1 = 1.82\]

and so

\[\frac{j}{n}g_1 {\rm mod} 1=0.82.\]

Additional Comments

A potential problem with lattice designs is the difficulty in finding suitable generators for a lattice. A condition for generators is that \(g_1,\ldots,g_d\) and \(n\) should form a set of relatively prime numbers. However, this seems to be a necessary but not sufficient condition to obtain a lattice that fills the design space well.

References

Bates, R.A., Riccomagno, E., Schwabe, R., Wynn, H. (1998). The use of lattices in the design of high-dimensional experiments. IMS Lecture Notes, 34, 26-35.

Sloan, I.H., Joe, S. (1994). Lattice methods for multiple integration. Clarendon Press, Oxford.

Matlab code for generating lattice designs is available from Ron Bates (disclaimer).