Learn R Programming

EmiR: Evolutionary minimizer for R

Classical minimization methods, like gradient descent or quasi-Newton techniques,have been proved to struggle in dealing with optimization problems with a high-dimensional search space or subject to complex nonlinear constraints. In last decade, the interest on metaheuristic nature inspired algorithms has been growing steadily, due to their flexibility and effectiveness. EmiR is a package for R which implements several methauristic algorithms for optimization problems:

  • Artificial Bee Colony Algorithm;
  • Bat Algorithm;
  • Cuckoo Search;
  • Genetic Algorithm;
  • Gravitationl Search Algorithm;
  • Grey Wolf Optimization;
  • Harmony Search;
  • Improved Harmony Search;
  • Moth-flame Optimization;
  • Particle Swarm Optimization;
  • Simulated Annealing;
  • Whale Optimization Algorithm.

Unlike other available tools, EmiR can be used not only for unconstrained problems, but also for problems subjected to inequality constraints and for integer or mixed-integer problems.

How to cite

If you use EmiR, please cite the following work:

Pagano, D. and Sostero, L., «EmiR: Evolutionary Minimization for R», SoftwareX 18, 101083 (2022), doi: 10.1016/j.softx.2022.101083.

Example of usage

miele_cantrell <- function(x) {
  x1 <- x[1]
  x2 <- x[2]
  x3 <- x[3]
  x4 <- x[4]
  value <- (exp(-x1) - x2)^4 + 100*(x2 - x3)^6 + (tan(x3 - x4))^4 + x1^8
  return(value)
}

p1 <- parameter("x1", -2, 2, FALSE)
p2 <- parameter("x2", -2, 2, FALSE)
p3 <- parameter("x3", -2, 2, FALSE)
p4 <- parameter("x4", -2, 2, FALSE)

conf_algo <- config_bat(iterations = 200, population_size = 100)
results <- minimize(algorithm_id = "BAT", 
                    obj_func = miele_cantrell, 
                    parameters = list(p1, p2, p3, p4),
                    config = conf_algo)
print(results)

Copy Link

Version

Install

install.packages('EmiR')

Monthly Downloads

298

Version

1.0.4

License

GPL-3

Maintainer

Lorenzo Sostero

Last Published

December 9th, 2022

Functions in EmiR (1.0.4)

config_gwo

Configuration object for the Grey Wolf Optimizer Algorithm
config_mfo

Configuration object for the Moth-flame Optimization Algorithm
config_woa

Configuration object for the Whale Optimization Algorithm
config_gsa

Configuration object for the Gravitational Search Algorithm
config_sa

Configuration object for the Simulated Annealing Algorithm
config_cs

Configuration object for the Cuckoo Search Algorithm
config_ihs

Configuration object for the Improved Harmony Search Algorithm
config_hs

Configuration object for the Harmony Search Algorithm
config_ps

Configuration object for the Particle Swarm Algorithm
config_ga

Configuration object for the Genetic Algorithm
griewank_func

Griewank Function
freudenstein_roth_func

Freudenstein Roth Function
list_of_functions

Return the list of pre-defined functions in EmiR
constrained_function

Constrained function for minimization
get_population

Get population positions
miele_cantrell_func

Miele Cantrell Function
styblinski_tang_func

Styblinski-Tang Function
constraint

Constraint for minimization
rosenbrock_func

Rosenbrock Function
schwefel_func

Schwefel Function
minimize

Minimize an Objective Function
parameter

Parameter for minimization
rastrigin_func

Rastrigin Function
plot_population

Plot the population position
list_of_algorithms

Return the list of algorithms in EmiR
parameters

Set of parameters for minimization
plot_history

Plot minimization history
config_abc

Configuration object for the Artificial Bee Colony Algorithm
colville_func

Colville Function
config_bat

Configuration object for the Bat Algorithm
ackley_func

Ackley Function
config_algo

Configuration object for algorithms
bohachevsky_func

Bohachevsky Function
animate_population

Animation of population motion
G01InitPop

Data set for example G01
OptimizationResults

EmiR optimization results
MinimizerOpts

EmiR optimization options