CBO | R Documentation |
An algorithm built by Naruei & Keynia (2021) that mimics the regular-irregular movement behaviour of Coot birds. Its population divided by two groups as leaders to guide the process and coots to follow leaders and randomly explore search space. This movement use to optimized real-valued objective function in continuous search space.
CBO(N, Max_iter, lb, ub, dim, fobj)
N |
An integer indicate population size. |
Max_iter |
An integer indicate maximum number of iterations. |
lb |
A numeric vector that show lower bounds of the search space. One value per dimension. |
ub |
A numeric vector that show upper bounds of the search space. One value per dimension. |
dim |
An integer show the number of dimension (parameters) of the problem to optimize. It indicate the number of parameters to be optimized. |
fobj |
An objective function used to be minimized. It is return single numeric value that show evaluation matrix result in every iteration. It used to calculate the best fitness in every iteration. |
This algorithms used movement such as: random movement, chain movement, adjusting the position based on the group leaders, and leader movement to emphasize the exploration and exploitation phase to get the best fitness.
The algorithm performs until maximum iteration reached or convergence condition when the difference in objective values for ten consecutive times is less than 10^-5.
A list containing:
The best (minimum) fitness value found.
The parameter vector (position) corresponding to the best fitness.
The number of iterations executed.
Matrix of best parameters found across every iterations (dim × iter).
Vector of best fitness values at each iteration.
The input vectors 'lb' and 'ub' must have the same length as the number of dimensions 'dim'.
This optimization function used inside svrHybrid function.
Naruei, I., & Keynia, F. (2021). A New Optimization Method Based on COOT Bird Natural Life Model. Expert Systems with Applications, 183. https://doi.org/10.1016/j.eswa.2021.115352
{
sphere_fn <- function(x) sum(x^2) # simple function for objective function
# CBO optimization
set.seed(123)
result <- CBO(N = 20, Max_iter = 50, lb = c(-5,-5,-5), ub = c(5,5,5), dim = 3, fobj = sphere_fn)
# View best fitness and position found
result$best_fitness
result$best_position
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.