Cuckoo search is an optimization algorithm developed by Xin-she Yang and Suash Deb in 2009. It was inspired by the obligate brood parasitism of some cuckoo species by laying their eggs in the nests of other 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 Cuckoo search idealized such breeding behavior, and thus can be applied for various optimization problems.
2. Inspiration for Cuckoo Search Algorithm
Fig1 shows the inspiration for CSA. Once the first cuckoo chick is hatched, the first instinct action it will take is to evict the host eggs by blindly propelling the eggs out of the nest, which increases the cuckoo chick’s share of food provided by its host bird.
3. Cuckoo Search Algorithm (CSA)
Cuckoos are a family of birds with unique reproductive strategy more aggressive compared to other bird’s species. Some of cuckoo bird’s species like Ani and Guira lay eggs in communal nests; however, they may remove others’ eggs to increase the hatching probability of their own eggs. Other species use brood parasitism method of laying their eggs in the nests of other birds or host nests.
The parasitic cuckoos are good in sporting nests where eggs have just been laid and their timing of laying eggs is very precise. They lay one egg in the host nest which will normally hatch quicker than the other eggs. When this happens, the foreign cuckoo would remove the non-hatched eggs from the nest by pushing the eggs out of the nest. This behavior is aimed at reducing the probability of the legitimate eggs from hatching. Furthermore, the foreign cuckoo chick can gain access to more food by mimicking the call of the host chicks. There are times when the host cuckoo discovers that one of the eggs is foreign. In that case the cuckoo either gets rid of the egg or abandon the nest altogether and moves to build a new nest somewhere else.
Firstly, each cuckoo only can lay one egg at a time and dump its egg in randomly chosen nest; secondly, the best nests with high quality of eggs will carry over to the next generations; thirdly, the number of available host nests is fixed. In this assumption, the cuckoo has characteristics of succinct and easy to realize, while, it also leads some defects that like other evolutionary algorithm, for lack search ability and low accuracy. Based on this, this paper proposed several improved solutions according to the cuckoo’s natural habitat, we called it the improved cuckoo search (ICS). Similar to the chromosome in genetic algorithm and particle location in particle swarm algorithm, we use nest location as the data point in ICS. The basic information is illustrated in Fig.2
3.1. Inspiration of CSA
Cuckoo search idealized such breeding behavior and thus can be applied for various optimization problems.
3.3. Steps for CSA
- Levy flight behavior
- Fitness calculation
A largely grayish-brown European bird (Calculus canorus) that is a parasite given to laying its eggs in the nests of other birds which hatch them and rear the offspring. Any of a large family (Cuculidae of the order Cuculiform) to which this bird belongs the call of the cuckoo a silly or slightly crackbrained person.
3.3.2. Levy Flight
Levy flights are random walks whose directions are random and their step lengths are derived from the Levy distribution. These Levy flights are performed by animals and insects and it is characterized by series of straight flights followed by sudden 90 degree turns. Compared to normal random walks, Levy flights are more efficient in exploring large–scale search areas. That is mainly due to Levy flights variances increases much faster than that of the normal random walk. Levy flights can reduce the number of optimization algorithms iterations by about 4 orders compared to normal random walk.
3.3.3. Fitness Calculation
Calculate the fitness using the fitness function in order to obtain an optimum solution. Select a random nest. Then the fitness of the cuckoo egg (new solution) is compared with the fitness of the host eggs (solutions) present in the nest. If the value of the fitness function of the cuckoo egg is less than or equal to the fitness function value of the randomly chosen nest then the randomly chosen nest replaced by the new solution.
Fitness Function = Current Best Solution – Previous Best Solution
In the current iteration the solution is compared and the best solution is only passed further which is done by the fitness function. If the number of iterations is less than the maximum then it keeps the best nest. After the execution of the initialization process, the levy flight and the fitness calculation processes, all cuckoo birds are prepared for their next actions. The CSA will terminate after maximum iterations [MI], have been reached. These steps can be matched any optimization problem. Each cuckoo egg and cuckoo nest plays an important role in such problems.
4. Implementation and Numerical experiments
This problem has originally been proposed by Himmelblau’s and it has been widely used as a benchmark nonlinear constrained optimization problem. In this problem, there are five design variables [x1, x2, x3, x4, x5], six nonlinear inequality constraints, and ten boundary conditions. The problem can be stated as follows:
Where 0 ≤ b, h, l≤ 100 and 0 ≤ t ≤ 5. The minimum weight and the statistical values of the best solution obtained by the CS algorithm is requires 25 cuckoos and 200 iterations to reach the optimum.
5. Applications of CSA
- Spring design and welded beam design problem
- Solve nurse scheduling problem
- An efficient computation for data fusion in wireless sensor network
- A new quantum inspired cuckoo search was developed to solve knapsack problems
- Efficiency generate independent test paths for structural software testing and test data generation
- Applied to train neural network with improved performance