od_RC {OptimalDesign} | R Documentation |
Efficient exact design using the RC heuristic
Description
Computes an efficient exact design under multiple linear resource constraints using the RC heuristic.
Usage
od_RC(Fx, b, A = NULL, w0 = NULL, bin = FALSE, Phi.app = NULL, crit = "D",
h=NULL, w1 = NULL, rest.max = Inf, t.max = 120,
echo = TRUE, track=TRUE)
Arguments
Fx |
the |
b , A |
the vector of length |
w0 |
a non-negative vector of length |
bin |
Should each design point be used at most once? |
Phi.app |
the optimal value of the corresponding approximate (relaxed) problem. If |
crit |
the optimality criterion. Possible values are |
h |
a non-zero vector of length |
w1 |
an |
rest.max |
the maximum allowed number of restarts of the method. |
t.max |
the time limit for the computation. |
echo |
Print the call of the function? |
track |
Trace the computation? |
Details
This is an implementation of the algorithm proposed by Harman et al. (2016); see the references. The inequalities A%*%w<=b
, w0<=w
with the specific properties mentioned above, form the so-called resource constraints. They encompass many practical restrictions on the design, and lead to a bounded set of feasible solutions.
The information matrix of w1
should preferably have the reciprocal condition number of at least 1e-5
. Note that the floor of an optimal approximate design (computed for instance using od_MISOCP
) is often a good initial design. Alternatively, the initial design can be the result of another optimal design procedure, such as od_AQUA
. Even if no initial design is provided, the model should be non-singular in the sense that there exists an exact design w
with a well conditioned information matrix, satisfying all constraints. If this requirement is not satisfied, the computation may fail, or it may produce a deficient design.
The procedure always returns a permissible design, but in some cases, especially if t.max
is too small, the resulting design can be inefficient. The performance depends on the problem and on the hardware used, but in most cases the function can compute a nearly-optimal exact design for a problem with a few hundreds design points and tens of constraints within minutes of computing time. Because this is a heuristic method, we advise the user to verify the quality of the resulting design by comparing it to the result of an alternative method (such as od_AQUA
and od_MISOCP
) and/or by computing its efficiency relative to the corresponding optimal approximate design.
In the very special (but frequently used) case of the single constraint on the experimental size, it is generally more efficient to use the function od_KL
.
Value
A list with the following components:
call |
The call of the function. |
w.best |
The resulting exact design. |
supp |
The indices of the support of |
w.supp |
The weights of |
M.best |
The information matrix of |
Phi.best |
The criterion value of |
eff.best |
A lower bound on the efficiency of |
n.rest |
The number of restarts performed. |
t.act |
The actual time of the computation. |
Author(s)
Radoslav Harman, Alena Bachrata, Lenka Filova
References
Harman R, Bachrata A, Filova L (2016): Heuristic construction of exact experimental designs under multiple resource constraints, Applied Stochastic Models in Business and Industry, Volume 32, pp. 3-17
See Also
Examples
## Not run:
# A D-efficient exact design for a quadratic model with 2 factors
# constrained by the total time and the total cost of the experiment.
# The cost of a single trial in (x1, x2) is 10 + x1 + 2*x2
# The limit on the total cost is 1000
# (we do not know the number of trials in advance)
form.quad <- ~x1 + x2 + I(x1^2) + I(x2^2) + I(x1 * x2)
Fx <- Fx_cube(form.quad, lower = c(0, 0), upper = c(10, 10), n.levels = c(11, 11))
n <- nrow(Fx); A <- matrix(0, nrow = 1, ncol = n)
for(i in 1:n) A[1, i] <- 5 + Fx[i, 2] + 2*Fx[i, 3]
w <- od_RC(Fx, 1000, A, bin = TRUE, t.max = 8)$w.best
od_plot(Fx, w, Fx[, 2:3], dd.size = 3)
## End(Not run)