Description Usage Arguments Details Value Author(s) References Examples
EMMA designs the experiments using a procedure based on the Particle Swarm Optimization (PSO)
algorithm. Firstly, EMMA selects a set of initial experimental points (see emmat0
) that
define the initial position of the particles; subsequently, for a given number of iterations,
the particles are moved and new experimental points are selected (see emmatn
).
1 2 3 4 
in.name 
A vector containing the names of the input variables (factors). 
nlev 
A numeric vector of the same length as 
lower 
A numeric vector of the same length as 
upper 
A numeric vector of the same length as 
out.name 
A vector containing the name(s) of the output/response variable(s). 
opt 
A character vector of the same length as the number of responses, indicating for each response function, if the response must be minimized ('mn') or maximized ('mx'). 
nd 
Number of experimental points to be selected when 
na 
A numeric value indicating the number of experimental points to be selected when 
weight 
A numerical vector of the same length as the number of responses, reflecting the relevance of each response.
Use 
C 
A numeric value indicating the maximum number of iterations. 
w1 
The first numeric value used to calculate the inertia weight parameter of the time variant PSO algorithm;
the default is 
w2 
The second numeric value used to calculate the inertia weight parameter of the time variant PSO algorithm;
The default is 
c1i 
The first numeric value used to calculate the acceleration coefficient 
c1f 
The second numeric value used to calculate the acceleration coefficient 
c2i 
The first numeric value used to calculate the acceleration coefficient 
c2f 
The second numeric value used to calculate the acceleration coefficient 
b 
A numeric value, used in the mutation operator, that determines the degree of dependence of the mutation
on the iteration number; the default is 
pr.mut 
A numeric vector of the same length as the number of iterations 
graph 
Logical; if 'yes', a plot of the MARS model is produced. A plot is produced only if the model contains more than one explanatory variable. 
fn1 
The first function to be optimised. Use 
fn2 
The second function to be optimised. Use 
fn3 
The third function to be optimised. Use 
fn4 
The forth function to be optimised. Use 
nresp 
The response to be plotted. Use 
To select
the new experimental points to be investigated, the following steps are
iterated. A MARS model is fitted to the collected data so that an approximated function is obtained for
each response; these approximated functions are used to predict the response values at the noninvestigated
experimental points. Each point in the experimental region E
(xspace
) is now associated with a vector of
response values that has been either measured or estimated. The best
(measured or estimated) value of each response is selected and used to identify the target.
Subsequently, for each experimental point in E
, the scalar distance between the response values and
the target is computed and the solution that is closest to the target is selected. If such solution
has not been tested yet (see emmacheck
), the experiment needs to be performed and its response values
are measured. The target is then updated, as well as the scalar distances of all the experimental points from the target.
The scalar distances are used to identify the good performing experimental points. The experimental point whose
response values are closest to the target is referred to as the global best. Similarly, a personal best is identified
for each particle by considering the experimental points visited by that particle and selecting that point featuring
the response values that are closest to the target. Finally, the particles velocity and position are updated and a new
set of experimental points is identified.
The parameters w1
and w2
are used to calculate the inertia weight w
of the PSO algorithm,
namely the parameter that controls the influence of the previous particle velocity on the present velocity.
High values of w
favour a global search, whereas lower values of w
encourage a local search.
In EMMA the inertia weight is allowed to decrease linearly with iteration from w1
to w2
thus
favouring the exploration initially and the exploitation subsequently. The parameters c1i
and c1f
are used to calculate the cognitive acceleration coefficient c1
of the PSO algorithm, whereas the
parameters c2i
and c2f
are used to calculate the social acceleration coefficient c2
of
the PSO algorithm.Higher values of c1
ensure larger deviation of the particle in the search space
(exploration), while higher values of c2
signify the convergence to the current global best (exploitation).
In EMMA c1
is allowed to decrease from c1i
to c1f
and c2
is allowed to increase from
c2i
to c2f
. See Tripathi et al. (2007) for more details.
An object of class emma
with the components listed below:
xpop 
Experimental points investigated. 
ypop 
Response values observed at the experimental points investigated. 
xspace 
Experimental region. It is given by all the possible combinations of the factors' levels
and contains 
yspace 
Response values that have been either observed or predicted. Observed response values
are stored also in 
opt 
Indicates if each single function is either minimized ('mn') or maximized ('mx'). 
nd 
Number of experimental points selected initially ( 
na 
Number of experimental points selected in subsequent iterations ( 
tested 
IDs of the tested experimental points. 
time 
Current time instant of the EMMA procedure. 
weight 
Relative importance of each response. If only one response is investigated, then

Gb 
ID of the best experimental point investigated (global best). Use 
Pb 
ID of the best experimental point investigated by each particle (personal best). Use

Gb.arch 
Archive of the global bests identified. Because the global best changes as new experimental points are investigated, an archive is maintained. 
Pb.arch 
Archive of the personal bests identified. Because the personal bests change as new experimental points are investigated, an archive is maintained. 
v 
Velocities used to update the particles position. The position of a particle is uniquely determined by the predictors' values; it also defines the experiment to be performed. At each step of EMMA, the position of a particle is updated by adding a numerical value (velocity) to the current value of each single predictor. 
sam.x 
IDs of the experiments that have been selected in the current iteration of the procedure.
Use 
add 
Logical. If '0' indicates that an additional experimental point needs to be investigated; if '1' indicates that an additional experimental point is not required. 
Laura Villanova, Kate SmithMiles and Rob J Hyndman
Villanova L., Falcaro P., Carta D., Poli I., Hyndman R., SmithMiles K. (2010) 'Functionalization of Microarray Devices: Process Optimization Using a Multiobjective PSO and Multiresponse MARS Modelling', IEEE CEC 2010, DOI: 10.1109/CEC.2010.5586165
Carta D., Villanova L., Costacurta S., Patelli A., Poli I., Vezzu' S., Scopece P., Lisi F., SmithMiles K., Hyndman R. J., Hill A. J., Falcaro P. (2011) 'Method for Optimizing Coating Properties Based on an Evolutionary Algorithm Approach', Analytical Chemistry 83 (16), 63736380.
Friedman J. H. (1991) 'Multivariate adaptive regression splines' (with discussion), The Annals of Statistics 19, 1:141.
Tripathi P. K., Bandyopadhyay S., Pal S. K. (2007) 'Multiobjective particle swarm optimization with time variant inertia and acceleration coefficients' Information Sciences, 177, 5033:5049.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32  #########################
## 1 response variable ##
#########################
in.name < c("x1","x2")
nlev < c(20, 20)
lower < c(2.048, 2.048)
upper < c(2.048, 2.048)
out.name < "y"
weight < 1
C < 10
pr.mut < c(0.1, 0.07, 0.04, rep(0.01, C3))
emma(in.name, nlev, lower, upper, out.name, opt = "mn", nd = 10, na = 5,
weight, C , w1 = 0.7, w2 = 0.4, c1i = 2.5, c1f = 0.5, c2i = 0.5,
c2f = 2.5, b = 5, pr.mut, graph = "yes", fn1 = ackley)
##########################
## 2 response variables ##
##########################
in.name < c("x1", "x2")
nlev < c(20, 20)
lower < c(3, 3)
upper < c(3, 3)
out.name < c("y1", "y2")
weight < c(0.2, 0.8)
C < 10
pr.mut < c(0.1, 0.07, 0.04, rep(0.01, C3))
emma(in.name, nlev, lower, upper, out.name, opt = c("mn", "mx"), nd = 10,
na = 5, weight, C , w1 = 0.7, w2 = 0.4, c1i = 2.5, c1f = 0.5,
c2i = 0.5, c2f = 2.5, b = 5, pr.mut, graph = "yes", fn1 = ackley,
fn2 = peaks, nresp = 2)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.