In operations research, cuckoo search is an optimization algorithm developed by Xin-She Yang and Suash Debin 2009.[1] [2] It has been shown to be a special case of the well-known (μ + λ)-evolution strategy.[3] It was inspired by the obligate brood parasitism of some cuckoo species by laying their eggs in the nests of host birds of other species. Some host birds can engage direct conflict with the intruding cuckoos. For example, if a host bird discovers the eggs are not their own, it will either throw these alien eggs away or simply abandon its nest and build a new nest elsewhere. Some cuckoo species such as the New World brood-parasitic Tapera have evolved in such a way that female parasitic cuckoos are often very specialized in the mimicry in colors and pattern of the eggs of a few chosen host species.[4] Cuckoo search idealized such breeding behavior, and thus can be applied for various optimization problems.
Cuckoo search (CS) uses the following representations:
Each egg in a nest represents a solution, and a cuckoo egg represents a new solution. The aim is to use the new and potentially better solutions (cuckoos) to replace a not-so-good solution in the nests. In the simplest form, each nest has one egg. The algorithm can be extended to more complicated cases in which each nest has multiple eggs representing a set of solutions.
CS is based on three idealized rules:
pa\in(0,1)
In addition, Yang and Deb discovered that the random-walk style search is better performed by Lévy flights rather than simple random walk.
The pseudo-code can be summarized as:
Objective function:
f(x), x=(x1,x2,...,xd);
n
Fi
Fi>Fj
pa
An important advantage of this algorithm is its simplicity. In fact, comparing with other population- or agent-based metaheuristic algorithms such as particle swarm optimization and harmony search, there is essentially only a single parameter
pa
n
An important issue is the applications of Lévy flights and random walks in the generic equation for generating new solutions
xt+1=xt+sEt,
Et
s
If s is too large, then the new solution generated will be too far away from the old solution (or even jump outside of the bounds). Then, such a move is unlikely to be accepted. If s is too small, the change is too small to be significant, and consequently such search is not efficient. So a proper step size is important to maintain the search as efficient as possible.
As an example, for simple isotropic random walks, we know that the average distance
r
r2=2dDt,
D=s2/2\tau
s
\tau
| ||||
s |
.
r=L/10
\tau=1
s ≈ 0.01L
s ≈ 0.001L
Algorithm and convergence analysis will be fruitful, because there are many open problems related to metaheuristics[10]
As significant efforts, theoretical analyses are required to improve performances of CS-base algorithms:[11]
Convergence of Cuckoo Search algorithm can be substantially improved by genetically replacing abandoned nests (instead of using the random replacements from the original method).[12] Modifications to the algorithm have also been made by additional interbreeding of best (high quality) nests [13] and this approach has been successfully applied to a range of industrial optimisation problems.[14] [15]