This is an implementation of Karaboga (2005) ABC optimization algorithm. It was developed upon the basic version programmed in C and distributed at the algorithm’s official website (see the references).
Any evident (precision) error should be blamed to the package author (not to the algorithm itself).
library(ABCoptim)
# Function to optimize. Min at (pi,pi)
fun <- function(x) {
-cos(x[1])*cos(x[2])*exp(-((x[1] - pi)^2 + (x[2] - pi)^2))
}
# Since it is stochastic, we need to set a seed to get the same
# results.
set.seed(123)
# Finding the minimum
ans <- abc_optim(rep(10,2), fun, lb=-20, ub=20, criter=200)
ans
##
## An object of class -abc_answer- (Artificial Bee Colony Optim.):
## par:
## x[1]: 3.141593
## x[2]: 3.141593
##
## value:
## -1.000000
##
## counts:
## 484
plot(ans)
D. Karaboga, An Idea based on Honey Bee Swarm for Numerical Optimization, tech. report TR06,Erciyes University, Engineering Faculty, Computer Engineering Department, 2005 http://mf.erciyes.edu.tr/abc/pub/tr06_2005.pdf
Artificial Bee Colony (ABC) Algorithm (website) http://mf.erciyes.edu.tr/abc/index.htm
Basic version of the algorithm implemented in ‘C’ (ABC’s official website) http://mf.erciyes.edu.tr/abc/form.aspx