MSSearch {multiDoE} | R Documentation |
Local search algorithm for high quality design generation
Description
The MSSearch
function can be used to obtain an optimal
multi-stratum experimental design considering one or more optimality criteria,
up to a maximum of six criteria simultaneously.
This function implements the procedure MS-Opt proposed by Sambo, Borrotti,
Mylona e Gilmour (2016) as an extension of the Coordinate-Exchange (CE)
algorithm for constructing approximately optimal designs. This innovative
procedure is able to handle all possible multi-stratum experimental structures
and, instead of minimizing a single objective function as in the original CE
algorithm, it seeks to minimize the following scalarization of the objective
functions for all considered criteria:
f_W = \sum_{c \in C}{\alpha_c f_c(d; \eta)=\overline{\alpha} \cdot \overline{f}},
with
\sum_{c \in C} \alpha_c = 1,
where C
is the set of criteria to be minimized, f_c
is the
objective function for the c
criterion and \overline{\alpha}
is
the vector that controls the relative weights of the objective functions.
Usage
MSSearch(msopt, alpha, ...)
Arguments
msopt |
A list as returned by the |
alpha |
A vector of weights, whose elements must sum to one.
|
... |
optional arguments (see Details). |
Details
MSSearch
by default does not apply any normalization to the
individual objective functions f_c
before the calculation of f_w is
performed. However, it is possible to subject the vector of objective functions
\overline{f}
to the following transformation:
\overline{f}_{norm} = \frac{\overline{f} - CritTR}{CritSC},
by specifying CritTR
and CritSC
vectors as additional parameters,
as described below.
Additional arguments can be specified as follows:
-
'Start', sol
: A string and a matrix, used in pair. They provide a starting solution (or an initial design) to the algorithm. By default the initial solution is randomly generated following the SampleDesign() procedure described in Sambo, Borrotti, Mylona and Gilmour (2016). -
'Restarts', r
: A string and an integer, used in pair. Whenr=1
, the default value, the procedure implemented inMSSearch
results in a local search algorithm that optimizes the objective functionf_W
starting from one initial design in the design space. These parameters allows to restart the algorithmr
times. If no initial design is passed a different starting solution is generated for each iteration, letting the probability to find a global minimum be higher.Mssearch
returns the solution that minimizesf_W
across all ther
iterations. -
'Normalize', c(CritTR, CritSC)
: A string and a vector, used in pair. By specifying theCritTR
andCritSC
vectors, the user can establish the normalization factors to be applied to each objective function before evaluatingf_W
.CritTR
andCritSC
are vectors of length equal to the number of criteria, whose default elements are 0 and 1 respectively.
Value
MSSearch
returns a list, whose elements are:
optsol
: A design matrix. The best solution found.optscore
: A vector containing the criteria scores foroptsol
.feval
: An integer representing the number of score function evaluations (number off_W
evaluations over all iterations).trend
: A vector of lengthr
. Thei
-th element is the value that minimizesf_W
for thei
-th iteration.
References
M. Borrotti and F. Sambo and K. Mylona and S. Gilmour. A multi-objective coordinate-exchange two-phase local search algorithm for multi-stratum experiments. Statistics & Computing, 2016.
Examples
library(multiDoE)
## To check the number of digits to be printed.
backup_options <- options()
options(digits = 10)
## Definition of parameters for experimental setup
facts <- list(1, 2:5)
units <- list(21, 2)
level <- 3
etas <- list(1)
model2 <- "quadratic"
## Single-objective optimization
criteria_S <- c('I')
msopt_S <- MSOpt(facts, units, level, etas, criteria_S, model2)
mssearch_S <- MSSearch(msopt_S, alpha = 1, "Restarts", 100)
## Multi-objective optimization
criteria_M <- c('Id', 'Ds', 'As')
msopt_M <- MSOpt(facts, units, level, etas, criteria_M, model2)
mssearch_M <- MSSearch(msopt_M, alpha = c(1/2, 1/4, 1/4), "Restarts", 100)
options(backup_options)
## To reduce the computational cost of MSSearch function, you may reduce the number of restarts.