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
).
emma(in.name, nlev, lower, upper, out.name, opt="mn", nd=10, na=5,
weight, C = 20, w1 = 0.7, w2 = 0.4, c1i = 2.5, c1f = 0.5,
c2i = 0.5, c2f = 2.5, b = 5, pr.mut, graph, fn1 = NULL,
fn2 = NULL, fn3 = NULL, fn4 = NULL, nresp)
in.name
, containing the number of factor levels.
in.name
, containing the lower values of the factors.
in.name
, containing the upper values of the factors.
t = 0
.
t > 0
.
weight = 1
if only one response is investigated; if multiple responses are investigated,
the sum of the values in weight
must be 1.
w1 = 0.7
.
w2 = 0.4
.
c1
of the time variant PSO algorithm;
the default is c1i = 2.5
.
c1
of the time variant PSO algorithm;
the default is c1f = 0.5
.
c2
of the time variant PSO algorithm;
the default is c2i = 0.5
.
c2
of the time variant PSO algorithm;
the default is c2f = 2.5
.
b = 5
.
C
containing the probability of mutation
for each time instant.
fn1 = NULL
if the function is unknown (e.g. when designing experiments in
applied problems).
fn2 = NULL
if the function is unknown (e.g. when designing experiments in
applied problems).
fn3 = NULL
if the function is unknown (e.g. when designing experiments in
applied problems).
fn4 = NULL
if the function is unknown (e.g. when designing experiments in
applied problems).
nresp = 1
to plot the first response...
emma
with the components listed below:
xpop
. The rownames uniquely identify the experimental points and are reported
also in xpop
.ypop
. Predicted response values are obtained using a MARS model fitted to
the available data.t=0
).t>0
).weight = 1
; if multiple responses are investigated, the sum of the values in weight
must
be 1.xspace[Gb,]
to
visualise the global best and use yspace[Gb,]
to visualise its measured response value(s).
Gb
identifies the experimental point whose response values are closest to the target; the
target is a set of desirable response values which are automatically selected on the basis of
the measured and predicted response values.xspace[Pb,]
to identify the personal bests and use yspace[Pb,]
to visualise their
measured response values. Among the experimental points associated to one particle, the Pb
identifies the experimental point that is whose response values are closest to the target.xspace[sam.x,]
to visualise the experiments to be performed.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.
Carta D., Villanova L., Costacurta S., Patelli A., Poli I., Vezzu' S., Scopece P., Lisi F., Smith-Miles 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), 6373-6380.
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) 'Multi-objective particle swarm optimization with time variant inertia and acceleration coefficients' Information Sciences, 177, 5033:5049.
#########################
## 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, C-3))
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, C-3))
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)
Run the code above in your browser using DataCamp Workspace