maximinLHD: Generate a maximin Latin-hypercube design (LHD)

maximinLHDR Documentation

Generate a maximin Latin-hypercube design (LHD)

Description

This function generates a LHD with large maximin distance.

Usage

maximinLHD(
  n,
  p,
  design = NULL,
  power = 2 * p,
  max.sa.iter = 1e+06,
  temp = 0,
  decay = 0.95,
  no.update.iter.max = 100,
  num.passes = 10,
  max.det.iter = 1e+06,
  method = "full",
  scaled = TRUE
)

Arguments

n

design size.

p

design dimension.

design

an initial LHD. If design=NULL, a random LHD is generated.

power

the power used in the maximin objective function.

max.sa.iter

maximum number of swapping involved in the simulated annealing (SA) algorithm.

temp

initial temperature of the simulated annealing algorithm. If temp=0, it will be automatically determined.

decay

the temperature decay rate of simulated annealing.

no.update.iter.max

the maximum number of iterations where there is no update to the global optimum before SA stops.

num.passes

the maximum number of passes of the whole design matrix if deterministic swapping is used.

max.det.iter

maximum number of swapping involved in the deterministic swapping algorithm.

method

choice of "deterministic", "sa", or "full". If the method="full", the design is first optimized by SA and then deterministic swapping.

scaled

whether the design is scaled to unit hypercube. If scaled=FALSE, the design is represented by integer numbers from 1 to design size. Leave it as TRUE when no initial design is provided.

Details

maximinLHD generates a LHD or optimize an existing LHD to achieve large maximin distance by optimizing the reciprocal distance (see maximin.crit). The optimization details can be found in customLHD.

Value

design

final design points.

total.iter

total number of swaps in the optimization.

criterion

final optimized criterion.

crit.hist

criterion history during the optimization process.

Examples

# We show three different ways to use this function.
n = 20
p = 3
D.random = randomLHD(n, p)
# optimize over a random LHD by SA
D = maximinLHD(n, p, D.random, method='sa')
# optimize over a random LHD by deterministic swapping
D = maximinLHD(n, p, D.random, method='deterministic')
# Directly generate an optimized LHD for maximin criterion which goes
# through the above two optimization stages.
D = maximinLHD(n, p)


SFDesign documentation built on June 22, 2025, 1:06 a.m.