Multi-Species Cuckoo Search Algorithm for Global Optimization
Xin-She Yang Suash Deb Sudhanshu K Mishra



=6.5in
=9in
=0in
=-0.5in






#1#1




    αβ̱λx
    Multi-Species Cuckoo Search Algorithm for Global Optimization
        Xin-She Yang^1, Suash Deb^2, Sudhanshu K Mishra^3
    
    1) School of Science and Technology, 
    Department of Design Engineering and Mathematics,
    
    Middlesex University,  London NW4 4BT, UK. 
    
    2) IT & Educational Consultant, Ranchi, India, and 
    Distinguished Professorial Associate, 
    
    Decision Sciences and Modelling Program, 
    Victoria University, Melbourne, Australia. 
    
    3) Department of Economics, 
    North-Eastern Hill University, Shillong, India.
    
        
    =============================================================================================================================================================================================================================================================================================================================================================================================================================================================
    
     Citation Details: Xin-She Yang, Suash Deb, Sudhanshu K Mishra, Multi-species cuckoo search algorithm for global optimization, Cognitive Computation, vol. 10, number 6,
    1085-1095 (2018). 
    Abstract
       Background: Many optimization problems in science and engineering are highly nonlinear, and thus require sophisticated optimization techniques to solve. Traditional techniques such as gradient-based algorithms are mostly local search methods, and often struggle to cope with such challenging optimization problems. Recent trends tend to use nature-inspired optimization algorithms. 
       Methods: This work extends the standard cuckoo search (CS) by using the successful features of the cuckoo-host co-evolution with multiple interacting species, and the proposed multi-species cuckoo search (MSCS) intends to mimic the multiple species of cuckoos that compete for the survival of the fittest, and they co-evolve with host species with solution vectors being encoded as position vectors. The proposed algorithm is then validated by 15 benchmark functions as well as five nonlinear, multimodal design case studies in practical applications.
        Results: Simulation results suggest that the proposed algorithm can be effective for finding optimal solutions and in this case all optimal solutions are achievable. The results for the test benchmarks are also compared with those obtained by other methods such as the standard cuckoo search and genetic algorithm, which demonstrated the efficiency of the present algorithm.
       Conclusions: Based on numerical experiments and case studies, we can conclude that the proposed algorithm can be more efficient in most cases, leading a potentially very effective tool for solving nonlinear optimization problems.
     Keywords: Cuckoo search, Nature-inspired algorithm, Multi-species cuckoo search, Neural computing, Optimization, Swarm intelligence.
     
    
    § INTRODUCTION
    
    
    Many applications involve optimization, and thus require sophisticated optimization algorithms to solve. Such applications can be very diverse, spanning many areas and disciplines from engineering designs and scheduling to data mining and machine learning <cit.>. One of the current trends is to use metaheuristic algorithms inspired by the successful characteristics in nature. Among these new algorithms, cuckoo search has been shown to be powerful in solving many problems <cit.>. This standard version was mainly designed for single objective optimization problems, which was later extended to multiobjective optimization <cit.>. Both versions used simplified characteristics to represent the brood parasitism of some cuckoo species and their interactions with host birds species.
    
    
    However, the reality is far more complicated in the cuckoo-host co-evolution systems <cit.>. The co-evolution often involves multiple cuckoo species that compete with each other and compete for the resources of host bird species, while the hosts can also have multiple species. Cuckoo species tend to evolve to lay eggs with mimicry of the size, colours and texture of the eggs of host birds, often with critical timing advantage, while host birds
    can counter-act such parasitism by developing their defensive strategies to identify potential intruding eggs and minimize the risk of hatching cuckoo eggs. This arms race is both co-evolutionary and ongoing <cit.>, and the co-evolution seems to promote species richness and subspecies variations as well as diversity in parasitic cuckoos <cit.>. 
    
    One way to model such co-evolution has been proposed by Mishra <cit.> to use a host-parasite co-evolutionary approach where both parasites and hosts took random flights and the probability of detection or rejection of eggs is dynamic, depending on the accumulative success of the parasites such as cuckoos. This approach has been used to solve both function optimization problems and completing incomplete correlation matrix <cit.>. However, this approach only captured a very small part of the major characteristics of the cuckoo-host co-evolutionary systems.
    
    In order to capture more detailed characteristics of this co-evolution system, in this paper, we extend the original cuckoo search to a new multi-species co-evolutionary cuckoo search algorithm, which simulates the main co-evolutionary behaviour of both cuckoo species and host species.
    Therefore, the paper is organized as follows. Section 2 summarizes the original cuckoo search and its main equations. Section 3 outlines the novel features of the new multi-species cuckoo search, followed by the numerical experiments on 15 different test benchmarks in Section 4. Section 5 presents the results of five different case studies concerning engineering designs, inverse parameter estimation and data clustering. The paper concludes with discussions about further research directions in Section 6. 
    
    
    
    § THE ORIGINAL CUCKOO SEARCH
    
    
    Cuckoo search (CS) is a nature-inspired metaheuristic algorithms,
    developed in 2009 by Xin-She Yang and Suash Deb <cit.>.
    CS is based on the brood parasitism of some cuckoo species. In addition, this
    algorithm is enhanced by the so-called Lévy flights <cit.>,
    rather than by simple isotropic random walks.
    Recent studies show that CS is potentially far more efficient than PSO
    and genetic algorithms <cit.>. A relatively comprehensive review of the
    studies up to 2014 was carried out by Yang and Deb <cit.>.
    
    
    
     §.§ Cuckoo Search and its Algorithmic Equations
    
    
    In the natural world, many cuckoo species (59 species among 141 cuckoo species) engage the so-called obligate reproduction parasitism strategy. There is an evolutionary arms race between such cuckoo species and their
    associated host species <cit.>. Based on such phenomena, Yang and Deb developed the
    cuckoo search in 2009 <cit.>, which uses three simplified rules: 1) Each cuckoo lays one egg at a time, and dumps it in a randomly chosen nest. 2) The best nests with high-quality eggs will be carried over to the next generations. 3) The number of available host nests
    is fixed, and the egg laid by a cuckoo is discovered by the host bird
    with a probability p_a ∈ [0,1]. In this case, the host bird can either
    get rid of the egg, or simply abandon the nest and build a completely new nest at a new location.
    
    In the original cuckoo search,  there is no distinction between an egg, a nest, or a cuckoo,
    as each nest corresponds to one egg which also represents one cuckoo, which makes it much easier to implement <cit.>. Mathematically speaking, cuckoo search uses a combination of a local random walk and the global explorative random walk,
    controlled by
    a switching parameter p_a. The local random walk can be written as
    _i^t+1=_i^t +β s ⊗ H(p_a-ϵ) ⊗ (_j^t-_k^t), 
    where _j^t and _k^t are two different solutions selected randomly by random permutation,
    H(u) is a Heaviside function, ϵ is a random number drawn from a uniform distribution, and
    s is the step size. Here β is the small scaling factor.
    
    On the other hand, the global random walk is carried out by using Lévy flights
    _i^t+1=_i^t+⊗ L(s, ), 
    where  L(s, ) ∼Γ() sin (π/2)/π1/s^1+,    (s ≫ 0), where >0 is the step size scaling factor, which should be related to the scales of the problem of interest. Here `∼' highlights the fact that the search steps in terms of  random numbers L(s,)
    should be drawn from the Lévy distribution on the right-hand side of Eq. (<ref>), which approximates the Lévy distribution by a power-law distribution with an exponent . In addition, here ⊗ denotes that the multiplication is an entry-wise operation.  The use of Lévy flights makes the algorithm more likely to jump out of any local optima, enabling a better exploration ability  <cit.>. 
    
     §.§ Cuckoo Search in Applications
    
    
    Since the development of the cuckoo search algorithm in 2009, it has been applied
    in many areas, including optimization, engineering design, data mining and computational intelligence with promising efficiency. From the case studies in engineering
    design applications, it has been shown that cuckoo search has superior performance to other algorithms for a range of continuous optimization problems <cit.>. A review by Yang and Deb covered the literature up to 2013 <cit.>, while a review by Fister et al. covered the literature up to 2015, and another review by Mohamad et al. focused on applications up to 2014 <cit.>. The most recent literature has been carried out by Shehab et al. <cit.>, which covers some of the literature up to 2017. These reviews have briefly outlined some of the diverse applications using cuckoo search and its variants.
    
    Other applications include vehicle component optimization <cit.>, wireless sensor networks <cit.>, training neural networks <cit.>, runoff-erosion modelling <cit.>,  phase equilibrium in thermodynamic calculations <cit.>,
    network optimization <cit.>, scheduling  <cit.>,
    multilevel color image segmentation <cit.>,
    biodiesel engine optimization <cit.>,
    graphic objective feature extraction <cit.>, fractional order PID control design <cit.>, vulnerabilities mitigation <cit.> and others <cit.>.
    
    In addition, different cuckoo search variants have been developed. For example, a binary cuckoo search for
    feature selection has been developed by Pereira et al. <cit.>.
    Walton et al. <cit.> developed a modified cuckoo search for solving complex mesh generation in engineering simulation, while Zheng and Zhou <cit.> provided
    a variant of cuckoo search using Gaussian process.
    Mlakar et al. developed a self-adaptive cuckoo search <cit.>, while Wang et al.
    enhanced cuckoo search with chaotic maps <cit.>.
    
    As a further extension, Yang and Deb <cit.> developed a multiobjective cuckoo search (MOCS) algorithm for engineering design applications.
    Recent studies have demonstrated that cuckoo search can perform significantly better than other algorithms in many applications <cit.>.
    
    
    
    
    § MULTI-SPECIES CUCKOO SEARCH
    
    In the original cuckoo search and its many variants, there is only one cuckoo species
    interacting with one species of host birds.  In the standard cuckoo search, a cuckoo is allowed to lay a single egg and each nest contains only a single egg. This is a very simplified scenario. In the real-world cuckoo-host systems, it is observed that multiple cuckoo species co-evolve with multiple host species to compete for survival of the fittest by brood parasitism <cit.>. Loosely speaking, cuckoos can evolve to subspecies with speciation, and they can be subdivided into different gentes
    targeting at different host species <cit.>. The interaction dynamics can be very complex, forming an on-going, co-evolutionary arms race between cuckoo subspecies and host species as well as different cuckoo species. Studies have shown that such co-evolution may promote species richness in parasitic cuckoos with the enhanced speciation and extinction rates <cit.>. Strictly speaking, different species, subspecies and gentes are
    used in the biological literature and their meanings are different <cit.>; however, we will simply use species here for simplicity. 
    
    Based on these characteristics, we can extend the original cuckoo search to capture more realistic cuckoo-host co-evolution to develop a new multi-species co-evolution cuckoo search, or multi-species cuckoo search (MSCS) for short.
    
    In order to describe the multi-species cuckoo search in detail, we use the following idealized rules/assumptions:
    
      *  There are multiple cuckoo species (m species) that compete and co-evolve with
    a host species. The arms race between cuckoo species and the host species obeys
    the survival of the fittest. Both the best cuckoos and the best hosts will pass onto the next generation.
    
    
      *  Each cuckoo of any cuckoo species can lay r eggs inside a randomly selected
    host nest. Each cuckoo egg has a probability p_a to be discovered (and then abandoned)
    by the host (thus the survival probability is 1-p_a).
    
    
      *  Each nest contains q eggs. If the fraction/ratio of cuckoo eggs is higher than 1-p_a, the host bird can abandon the nest and then fly away to build a new nest in a new location.
    
    
    
    Based on these rules for MSCS, we can represent them more mathematically. Each solution _i
    to an optimization problem is represented by an egg, which corresponds to a
    D-dimensional vector. Therefore, an egg is equivalent to a solution,
    and a nest represents a group of q solutions.
    
    
    In general, there are m ≥ 1 species with a total population of n, each species has
    n_i   (i=1,...,m) cuckoos such that  ∑_i=1^m n_i =n. 
    Each cuckoo lays r ≥ 1 eggs. There are w host nests, and each nest can have q ≥ 1 eggs on average. So the total number of eggs in
    the host nests are N_h=w q, which should be greater
    than n. That is, N_h ≫ n. In nature, it is estimated that
    approximately 1/4 to 1/2 of eggs in the host nests are cuckoo eggs. Thus, we can
    set n=N_h/2 for simplicity.
    
    Competition can occur at three different levels: intraspecies competition, inter-species competition and cuckoo-host competition. Even for a single species,
    cuckoos within the same species can compete for host nests. For multiple species,
    one species of cuckoos can compete with cuckoos from other species by egg-replacing
    strategy. The most significant competition is the cuckoo-host competition.
    All these three kinds of competition interact and co-evolve to form
    a complex system, leading to potential self-organizing intelligent behaviour.
    
    Different cuckoo species will compete for survival of the fittest, and they can take over other cuckoos' territory or replace eggs laid by other cuckoo species. This can be done simply by random swapping its location vector with another in a dimension-by-dimension manner. This binary random swapping operator can be realized by
    _a^(new)= _a ⊗ (1-Q) + _b ⊗Q, 
    and
    _b^(new) = _a ⊗Q + _b ⊗ (1-Q), 
    where _a is randomly selected from cuckoo species a, while _b is selected from
    cuckoo species b. Here, Q is a random binary vector with the same length of _a
    and each of its components is either 1 or 0 [i.e., Q_k ∈{0, 1}  (k=1, 2, ..., D)]. For example, Q=[1, 0, 0, 1, 0, 1, 1] is a binary vector in a 7-dimensional space.
    Again, ⊗ means that the operation is a component-wise or dimension-wise
    operation. 
    
    The main steps for implementing and simulating the above idealized characteristics are as follows:
    
      * There are two population sets: a total population of n cuckoos for m cuckoo species (each has its own population n_j   (j=1,2,...,m)), and a population of N_h host nests. Thus, there are two initial best solutions: g_cs^* to denote the best cuckoo among all m cuckoo species (each species has its own best cuckoo
        g_j^*) and g_h^* to denote the
        best host in terms of objective fitness. 
      *  For each generation of evolution, each cuckoo (say, cuckoo i) from a cuckoo species (say, species j) can lay r eggs in a randomly selected host nest (say, nest k). The newly laid eggs will replace randomly selected eggs in the nest (so that the total
        number of eggs in the nest remain constant q ≥1). The main equation for this action can be carried out by Eq.(<ref>).
    
    
      *  For any new egg laid by a cuckoo, there is a probability of p_a to be discovered.
    Among q eggs, if the fraction of cuckoo eggs exceeds 1-p_a, the host can abandon the nest completely and fly away to build a new nest at a new location via Eq.(<ref>).
    
    
      * Different species of cuckoos will compete for survival and territories, thus they can lay eggs in nests that other cuckoos just laid. This competition is equivalent to replacing or swapping its own eggs with another cuckoo's eggs from different species. Thus, it can be achieved by randomly swapping their components dimension by dimension via (<ref>) and (<ref>). 
      *  Random mixing is carried out in terms of egg-laying and nest choices among different cuckoo species and the host species.
    
    
      *  Both the best cuckoos and host nests (in terms of their fitness) should pass onto the next generation.
    
    
    
    
    
    These key steps can be schematically represented as the pseudocode in Algorithm <ref>.
    To illustrate the main ideas, for two species of cuckoos with a total population of n=40,
    we have m=2 and n=40. If two species have the same population size, we have n_1=n_2=n/2=20. For simplicity, if all nests have the same number of four eggs in 20 nests, we have q=4 and w=20, thus there N_h=20*4=80 eggs in all the nests.
    In addition, if each cuckoo lays one egg at a time (or r=1), this means that
    there are n r =40 cuckoo eggs in the cuckoo-host system. Thus,
    in this case, there are exactly 50% of the eggs belong to cuckoos in the combined population of cuckoo species and host nests.
    
    Obviously, the number of cuckoo eggs in a particular nest can be randomly distributed
    from 1 to q=4. For p_a=0.25, if there are 3 or 4 eggs in a nest, one egg may typically belong to cuckoos. If the number of alien eggs is higher, this nest can be abandoned by its host, and thus a new replacement nest with q new eggs (or randomly generated solutions) will be built in a new location, typically far enough from the original location. It is worth pointing out that there seems to have some similarity between multi-species cuckoo interactions and the multi-swarm optimization in the literature <cit.>. However, there
    are two key differences here: the multi-species cuckoo search (MSCS) mimics the
    co-evolution between parasite cuckoo species and host species, while mutli-swarms mainly
    split a population of the same kind into subgroups or subswarms. In addition, the share of information in MSCS is among the same cuckoo species and the same host species, not directly shared among competing species. Such information-sharing structure can potentially enable extensive exploitation of local information as well as global information. On the other hand, multi-swarms tend to share information among all subswarms. Furthermore, different cuckoo species compete for survival, while the multi-swarms do not compete. These differences mean that MSCS is not a simple multi-swarm system, rather it is an interacting co-evolving multi-swarm system. Therefore, different characteristics and performance can be expected.
    
    
    § VALIDATION BY NUMERICAL EXPERIMENTS
    
    
    All new algorithms have to be extensively tested by a diverse range of benchmarks and case studies. As a preliminary test, we will use a subset of 15 function benchmarks and
    5 case studies.
    
    
    
     §.§ Benchmarks
    
    For this purpose, we have selected 15 benchmark functions with different modalities and objective landscapes from traditional optimization functions,
    the CEC2005 test suite and most
    recent CEC2015 test functions. The chosen set of benchmarks have diverse properties so that we can test the proposed algorithm more thoroughly. 
    
    
    The first function is the shifted sphere function f_1 from the CEC2005 benchmark suite <cit.>. This function has the global minimum f_1,min=-450 in the domain -100 ≤ x_i ≤ 100.
    
    The second function is Ackley function
     f_2()=-20 e^-1/5 (1/D∑_i=1^D x_i^2)^1/2
     - e^1/D∑_i=1^D cos (2 π x_i) +20 +e, 
    which has its global minimum f_*=0 at (0,0,...,0). This function is highly nonlinear and
    multimodal.
    
    
    The third function is Yang's forest-like function
     f_3()=( ∑_i=1^D |x_i| ) exp[- ∑_i=1^d sin (x_i^2) ],
    which has the global minimum f_*=0 at (0,0,...,0) in the domain of -2 π≤ x_i ≤ 2 π.
     This function is highly nonlinear and multimodal, and its first derivatives do not exist at the optimal point due to the modulus |.| factor.
    
    The fourth function is the shifted Schwefel's problem with noise in fitness as given in CEC2005 benchmark suite <cit.>, which has the mean global minimum f_4,min=-450 in the domain -100 ≤ x_i ≤ 100.
    
    The fifth function is Schwefel's Problem 2.22 <cit.> f_5()=∑_i=1^D |x_i|+∏_i=1^D |x_i|, 
    which has the global minimum f_5,min=0 at =(0,0,...,0)
    in the domain -10 ≤ x_i ≤ 10. This function is unimodal.
    
    The sixth function is the shifted Rosenbrock function f_6 of CEC2005 benchmark suite with the minimum f_6,min=390 in -100 ≤ x_i ≤ 100.
    
    The seventh function is the shifted and rotated Griewank function
    with the minimum f_7,min=-180 in the domain of 0 ≤ x_i ≤ 600.
    
    The eighth function is Function 23 of the CEC2005 benchmarks <cit.>,
    which is a non-continuous rotated hybrid composition function with the
    minimum f_8,min=360 in -5 ≤ x_i ≤ 5.
    
    The ninth function is Function 24 of the CEC2005 benchmarks <cit.>,
    which is a rotated hybrid composition function with f_9, min=260 in -5 ≤ x_i ≤ 5.
    
    The tenth function is Function 25 of the CEC2005 benchmark suite <cit.>,
    which is a rotated hybrid composition function without bounds with the minimum of f_10,min=260 in [2,5]^D.
    
    
    The next five functions are taken from the CEC2015 benchmark suite <cit.>. The 11th function is the rotated bent cigar function with the minimum f_11, min=100, while the 12th function is the
    rotated Discus function with the minimum of f_12,min=200.
    The 13th function is the shifted and rotated Weierstrass function with f_13,min=300,
    and the 14th function is the shifted and rotated Schwefel's function with f_14,min=400. Finally, the 15th function is the shifted and rotated Katsuura function with f_15, min=500. All these functions have variables in the domain of
    [-100,100]^D where D is the dimensionality of the functions. 
    
     §.§ Parameter Settings
    
    
    For the implementations, we have used
    n_1=n_2=20, n=40, r=1, m=2, N_h=80, q=4 and w=20
    for the two sets of populations.
    For the parameters in the
    algorithmic equations, we have used ==̱0.01, =1.5, p_a=0.25
    and a fixed number of iterations t_max=1000 as the stopping criterion.
    
    In addition,  D=10 is used for all the test functions in the first experiment, then D=50 is used for the second numerical experiment, while all other parameter values remain the same. For both the standard
    cuckoo search (CS) and the proposed MSCS,
    we have used n_cs=80 so that the total numbers of
    function evaluations remain the same for all algorithms.
    Thus, the fairness of the comparison in terms of function evaluations is ensured.
    The parameter setting has been based on preliminary parametric studies in our
    own simulation as well as the suggestions in the literature <cit.>.
    
    
     §.§ Results
    
    
    Each algorithm has been run for 100 trials so as to calculate the best (minimum)
    and means of the obtained solutions.
    The error is defined as the absolute value of the difference between the best
    f(_*) found by the algorithm and the true minimum f_min(true).
    That is  E_f=|f(_*)-f_min(true)|. 
    The numerical results are summarized in
    Table <ref> where the best corresponds to the minimum of E_f
    and the mean corresponds to the average value of E_f.
    
    From Table 1, we can see that MSCS can obtain better results in all the benchmarks.
    The diversity among the cuckoo-host populations in MSCS is higher than those in CS, and the MSCS can be potentially more robust.
    This will in general promote the exploration ability of the search process.
    
    Another way of looking at the simulation results is to analyze and compare the convergence
    behaviour. In fact, MSCS converges faster than CS for all the test functions by tracing
    both the minimum objective values found during iterations. For example, for function f_5,
    its convergence plot is shown in Fig. <ref> where we can see that MSCS converges
    faster even from the very early iterations.
    
    In order to test the proposed algorithm for solving higher-dimensional problems, we have also tested the function benchmarks for D=50. In most literature, researchers tend to use higher numbers of iterations for higher values of D, typically t=1000D, but we have
    used the same settings of the parameters as before; that is, t_max=1000.
    The results are summarized in Table <ref>.  As we can see from Table 2 that the MSCS obtained better results for almost all functions, except for the shifted and rotated Weierstrass function f_13
    where the two algorithms obtained the same orders of results, but the variation of MSCS is small.
    This means that the MSCS not only can produce optimal solutions, but also is sufficiently robust.
     
    
    § PRACTICAL APPLICATIONS
    
    
    
    To test the proposed MSCS algorithm further, we now use five test problems in real-world applications
    with diverse properties and nonlinearity. Three case studies are about designs in engineering and they are mostly mixed integer programming problems. The fourth case study is the parameter estimation problem or an inverse problem, which requires to solve a second-order differential equation to calculate the values of objective function.
    The final problem is the data clustering using the well-know Fisher's iris flower data set. It is worth pointing out that these case studies are seemingly simple, but they are quite hard to solve due to high nonlinearity, multimodality and irregular search domains. The pressure vessel problem is also a mixed integer programming problem, which is much harder to solve, compared its continuous counterpart.
    
    
     §.§ Design of a Spring
    
    Let us start with a simple but nonlinear problem about the design of spring
    under tension or compression <cit.> from a metal wire. There are three design variables: the wire diameter (r), the mean coil diameter (d), and the number (N) of turns/coils. The objective is to minimize the overall weight of the spring
    minimize   f()=(2+N) r^2 d, 
    subject to nonlinear constraints:
     g_1()=1- N d^3/71785 r^4≤ 0,    g_2()= d (4 d-r)/12566 r^3 (d-r) +1/5108 r^2-1 ≤ 0,  g_3()=1- 140.45 r /d^2 N≤ 0,   
    g_4()=(d+r) -1.5 ≤ 0. 
    Some simple bounds or limits for the design variables are:
     0.05 ≤ r ≤ 2.0,    0.25 ≤ d ≤ 1.3,    2.0 ≤ N ≤ 15.0. 
    
    Using the proposed MSCS with the same parameter settings given in Section <ref>, the results of 20 different runs are summarized in Table 3 where comparison is also made.
    As we can see, MSCS can obtain the best or the same results as the best results in the literature. 
    
     §.§ Pressure Vessel Design
    
    A well-known design benchmark is the pressure vessel design problem that has been used by many researchers. This problem concerns the minimization of the overall cost of a cylindrical vessel subject to stress and volume requirements. There are four design variables, including the thickness d_1 and d_2 for the head and body, respectively, of the vessel, the inner radius r and the length W of the cylindrical section <cit.>.  The main objective is
    min f()=06224 r W d_1 +1.7781 r^2 d_2 + 19.64 r d_1^2 + 3.1661 W d_1^2, 
    subject to four constraints:
     g_1()=-d_1 + 0.0193 r ≤ 0,    g_2()=-d_2 + 0.00954 r ≤ 0,  g_3()=- 4 π r^3/3 - π r^2 W -1296000 ≤ 0,   
    g_4() =W -240 ≤ 0. 
    The inner radius and length are limited to 10.0 ≤ r, W ≤ 200.0. However, the thickness d_1 and d_2 can only be the integer multiple of a basic thickness of 0.0625 inches. Thus, the simple bounds for thickness are
     1 × 0.0625 ≤ d_1, d_2 ≤ 99 × 0.0625. 
    This is a mixed integer programming because two variables are discrete and the other two variables are continuous. Using the same parameter settings as before, the results of 20 independent runs are summarized and compared in Table 4. In fact, all these algorithms can find the global optimal solution as found by Yang et al. <cit.>. 
    
     §.§ Speed Reducer Design
    
    The speed reducer design is an engineering design benchmark, which has 7 design variables such as the face width of the gear, number of teeth, and diameter of the shaft and others <cit.>. All these variables can take continuous values, except for x_3 which is an integer.
    
    The objective to minimize the cost function
    
        f()=0.7854 [x_1 x_2^2 (3.3333 x_3^2 +14.9334x_3-43.0934 ) + (x_4 x_6^2+x_5 x_7^2) ]
     -1.508 x_1 (x_6^2+x_7^2)+7.4777 (x_6^3+x_7^3), 
    subject to 11 constraints:
     g_1()=27/x_1 x_2^2 x_3-1 ≤ 0,   
    g_2()=397.5/x_1 x_2^2 x_3^2 -1 ≤ 0,  g_3()=1.93 x_4^3/x_2 x_3 x_6^4-1 ≤ 0,   
    g_4()=1.93 x_5^3/x_2 x_3 x_7^4-1 ≤ 0,  g_5() =1.0/110 x_6^3√((745.0 x_4/x_2 x_3)^2+16.9 × 10^6)-1 ≤ 0,  g_6() =1.0/85 x_7^3√((745.0 x_5/x_2 x_3)^2 +157.5 × 10^6 )-1 ≤ 0,  g_7()=x_2 x_3-40 ≤ 0,
       g_8()=5 x_2 -x_1 ≤ 0,  g_9() =x_1 -12 x_2 ≤ 0,    g_10()=(1.5 x_6 +1.9) - x_4 ≤ 0,  g_11() =(1.1 x_7 + 1.9) - x_5 ≤ 0. 
    In addition, the simple bounds for the variables are:
    2.6 ≤ x_1 ≤ 3.6, 0.7 ≤ x_2 ≤ 0.8, 17 ≤ x_3 ≤ 28 (integers only), 7.3 ≤ x_4 ≤ 8.3, 7.8 ≤ x_5 ≤ 8.4, 2.9 ≤ x_6 ≤ 3.9,
    and 5.0 ≤ x_7 ≤ 5.5.
    
    The results of the 20 independent runs are summarized and comparison has been made in Table 5. As we can see, MSCS obtained the best result. Since there is no literature about the analysis of this problem and we do not know what the global best solution should be, we can only say that 2993.749589 is the best result achieved so far. 
    
     §.§ Parameter Identification of Vibrations
    
    For a simple vibration problem,
    there are two unknown parameters μ and ν to be estimated
    from the measurements of the vibration amplitudes. The governing equation is
    d^2 y(t)/dt^2 + μdy(t)/dt+ν y(t)=40 cos (3 t). 
    In general, the solution is a damped harmonic motion. However, for fixed μ=4
    and ν=5 with an initial values of y(0)=0 and y'(0)=0, there is an analytical solution <cit.>, which can be written as
     y(t)=e^-2t [cos(t)-7 sin (t)]+3 sin(3 t)-cos (3 t). 
    
    For a real system with a forcing term 40 cos (3 t), we do not know the parameters, but
    the vibrations can be measured.
    For example, in an experiment, there are N=11 measurements as shown in Table <ref>.
    
    
    The task is to estimate the values of the two parameters. However, one of the main challenges is that the calculation of the objective function that is defined as the sum of errors squared. That is
     f()=∑_i=1^N (y_i, predicted - y_i,d)^2, 
    where the predicted y(t) has to be obtained by solving the second-order ordinary differential equation (<ref>) numerically and iteratively for every guessed set of μ and ν.
    
    Using the MSCS with a population of 40 cuckoos and the same parameter setting given in Section <ref>. We have run the algorithm for 20 times, and the mean values of estimate parameters are: μ_*=4.025 and ν_*=4.981, which are very close to the true values of μ=4.000 and ν=5.000.
    
    
    
    
     §.§ Iris Classification
    
    To test the MSCS algorithm further, we use it to solve the classification problem of the well-known Fisher's Iris flower data set. This data set has 150 data points or instances with 4 attributes and 3 distinct classes <cit.>. We use the data from the UCI Machine Learning Repository[http://archive.ics.uci.edu/ml/datasets/Iris].
    
    We have encoded the centres of the clusters as the solution vectors  so as to minimize the overall intra-clustering distances. Although the parameter settings are the same as before, the number of iterations is limited to 100 so as to be comparable with the results from the literature <cit.>. The best values obtained are compared with the results obtained by other methods such as the hybrid k-means and PSO approach <cit.>, multiple kernel based fuzzy c-means with cuckoo search <cit.>, and k-means with improved feature based cluster centre initialization algorithm (CCIA) <cit.>.
    
    The optimization results are summarized in Table <ref>. As we can see, MSCS obtained the best result which signifies an improvement over the best results obtained by multiple kernel fuzzy c-means based cuckoo search approach (MKF-cuckoo) <cit.>. 
    
    The results and simulation we have obtained so far are indeed encouraging. Obviously, we will carry out more thorough evaluations of the proposed approach in the future work. So let us summarize the work we have done so far in this paper.
    
    
    
    § DISCUSSIONS
    
    
    The original cuckoo search has been extended to capture more realistic characteristics of
    cuckoo-host co-evolution systems. We have thus developed a multi-species cuckoo search for solving optimization problems using multiple cuckoo species competing and co-evolving with host species. We then tested the proposed approach using a set of 15 function benchmarks to show that the proposed algorithm can indeed work well. Preliminary results suggest that MSCS can have a higher convergence rate and obtain better results in general. In addition, we have used 5 different case studies from engineering designs, parameter estimation and data clustering to further test the proposed algorithm. Our simulation results and subsequent comparison have shown that the MSCS can indeed find the optimal solutions that are either better and comparable with the results obtained by other methods.
    
    The essence of multi-species co-evolution is to use more than one species so as to see how different species interact and compete. In the present studies, we have just used m=2 species for the cuckoo-host co-evolution. Future work will focus on more than two species and more detailed parametric studies using different numbers of species m with varied population sizes. In addition, it would gain more insight by tuning the key parameters in the algorithm to see how they may affect the overall performance of the algorithm. Furthermore, in the real-world cuckoo-host co-evolution systems, there are multiple cuckoo species interacting with multiple host species, which can have much more complex behaviour and characteristics. The current approach with the preliminary tests consists of only a single host species with multiple cuckoo species. A possible extension can be the multiple host bird species compete and co-evolve with multiple cuckoo species. For example, the common cuckoos can lay eggs in many different host species including garden warblers and reed warblers <cit.>.
    The number of eggs laid by cuckoos and inside nests can be random.
    It can also be useful to carry out further tests of this algorithm using a more extensive set of benchmarks and real-world case studies.  Acknowledgement: The authors would like to thank the anonymous reviewers for their constructive comments.   99.Akhtar Akhtar S, Tai K, Tay T. A socio-behavioural simulation model for engineering design optimization. Engineering Optimization 2002; 34(4): 341–454.
    
    Arora Arora JS. Introduction to Optimum Design. New York: McGraw-Hill; 1989.
    
    Bhar
    Bhargava V, Fateen, SEK, Bonilla-Petriciolet A. (2013).
    Cuckoo search: a new nature-inspired optimization method
    for phase equilibrium calculations. Fluid Phase Equilibria 2013;  337:191–200.
    
    Binu Binu D, Selvi M, Aloysius G. MKF-cuckoo: hyrbidization of cuckoo search and multiple kernel-based fuzzy c-means algorithm. AASRI Procedia 2013; 4: 243–249.
    
    Blackwell Blackwell T and Branke J, Multi-swarm optimization in dynamic environments, in: Applications of Evolutionary Computing, EvoWorkshops 2004, Lecture Notes in Computer Science, Vol. 3005, Springer, Berlin, 2004; 489–500.
    Cag Cagnina LC, Esquivel SC, Coello Coello CA. Solving engineering optimization problems with the simple constrained particle swarm optimizer. Informatica 2008; 32:319–326.
    
    
    Chand
    Chandrasekaran K,  Simon SP.  Multi-objective scheduling problem: hybrid appraoch using fuzzy assisted cuckoo search algorithm. Swarm and Evolutionary Computation 2012; 5(1): 1–16.
    
    CEC2015a
    Chen Q, Liu B, Zhang Q, Suganthan PN, Qu BY, Problem definition and evaluation criteria for CEC2015 special session and competition on bound constrained single-objective computationally expensive numerical optimization, Technical Report, Commputational Intelligence Laboratory, Zhengzhou University, China and Technical Report, Nanyang Technology Univesity, Singapore, Nov. 2014.
    Coello Coello Coello CA. Use of a self-adaptive penalty approach for engineering optimization problems. Computers in Industry 2000; 41: 113-127.
    
    
    Davi Davies NB and Brooke ML. Co-evolution of the cuckoo and its hosts. Scientific American 1991; 264(1):92-98.
    
    
    Davi2 Davies NB. Cuckoo adaptations: trickery and tuning.
    Journal of Zoology 2011;  284(1): 1–14.
    
    
    Dhiv Dhivya M and Sundarambal M. Cuckoo search for data gathering in wireless sensor networks. Int. J. Mobile Communications 2011; 9(4): 642-656.
    
    Dubey Dubey HM, Pandit M, Panigrahi BK, A biologically inspired modified flower pollination algorithm for solving dispatch problems in modern power systems. Cognitive Computation 2015; 7(5): 594–608. Duda Duda RO, Hart PE. Pattern Classification and Scene Analysis.
    New York: John Wiley and Sons; 1973.
    
    Durgun
    Durgun I, Yildiz AR. Structural design optimization of vehicle components using cuckoo search algorithm.  Materials Testing 2012; 3(3):  185-188.
    
    
    Fister Fister Jr I, Fister D, Fister I. A comprehensie review of cuckoo search: variants and hybrids. Int. J. Mathematical and Numerical Optimisation 2013; 4(4): 387–409.
    
    
    Gandomi
    Gandomi AH, Yang XS, Alavi AH. Cuckoo search algorithm: a metaheuristic approach to solve structural optimization problems.  Engineering with Computers 2013; 29(1): 17–35.
    
    
    Golinski Golinski J. An adaptive optimization system applied to machine synthesis. Mech. Mach. Theory 1973; 8(4): 419–436.
    
    Kao Kao Y-T, Zahara E, Kao I-W. A hybridized approach to data clustering. Expert Systems with Applications 2008; 34(3): 1754–1762.
    
    
    Khan Khan SS, Ahmad A. Cluster center initialization algorithm for k-means clustering. Pattern Recognition Letters 2004; 25(11): 1393–1302.
    
    Kruger Krüger O, Sorenson MD, Davies NB.
    Does co-evolution promote species richness in parasitic cuckoos?  Proc. Roy. Soc. B 2009; 276(1674): 3871–3879.
    
    Mishra Mishra SK. Global optimization of some difficult benchmark functions by host-parasite co-evolutionary algorithm. Economics Bulletin 2013; 33(1): 1–18.
    
    
    Mlak Mlakar U, Fister Jr I, Fister I. Hybrid self-adaptie cuckoo search for global optimization. Swarm and Evolutionary Computation 2016; 29: 47–72.
    
    Moham Mohamad AB, Zain AM, Bazin NEN, Cuckoo search algorithm for optimization problems – A literature review and its applications.
        Applied Artificial Intelligence 2014; 28 (5): 419–448.
    
    
    
    Mora
    Moravej Z, Akhlaghi A. A novel approach based on cuckoo search for DG allocation in distribution network. Electrical Power and Energy Systems 2013; 44(1): 672–679.
    
    Pare Pare S, Kumar A, Bajaj V, Singh GK. A multilevel color image segmentation technique based on cuckoo search algorithm and energy curve, Applied Soft Computing 2016; 47:76–102.
    
    Payne Payne RB. The Cuckoos. Oxford: Oxford University Press; 2005.
    
    Pav Pavlyukevich I. Lévy flights, non-local search and simulated annealing. J. Computational Physics 2007;  226(2):1830-1844.
    
    
    Pereira Pereira LAM, Rodrigues D, Almeida TNS, Ramos CCO, Souza AN, Yang XS, Papa JP. A binary cuckoo search and its application for feature selection. in: Cuckoo Search and Firefly Algorithm. Studies in Computational Intelligence 2013; Vol.516, pp.141–154.
    
    CEC2015b
    Qu BY, Liang JJ, Wang ZY, Chen Q, Suganthan PN, Novel benchmark functions for continuous multimodal optimization with comparative results,  Swarm and Evolutionary Computation 2016; 26(1): 23-34.
    Santos Santos CAG, Freire PKMM, Mishra SK. Cuckoo search via Lévy fligths for optimization of a physically-based runoff-erosion model. Journal of Urban and Environmental Engineering 2012; 6(2): 123–131.
    
    Shehab Shehab M, Khader AT, Al-Betar MA. A survy on applications and variants of the cuckoo search algorithm. Applied Soft Computing 2017;
        https://doi.org/10.1016/j.asoc.2017.02.034
    
    
    Sidd Siddique N, Adeli H, Nature-inspired chemical reaction optimisation algorithms. Cognitive Computation 2017; 9: 411-422. CEC2005 Suganthan PN, Hansen N, Liang JJ,
    Deb K, Chen YP, Auger A, Tiwari S. Problem definitions and evaluation criteria for the CEC2005 special session on real-parameter optimization, Technical Report of Nanyang Technological University, Singapore and KanGAL Report, IIT Kanpur, India; 2005.
    
    Valian Valian E, Mohanna S, Tavakoli S.
    Improved cuckoo search algorithm for feedforward neural network training.
    Int. J. Articial Intelligence and Applications 2011;  2(3): 36–43.
    
    
    Walton Walton S, Hassan O, Morgan K, Brown MR.
    Modified cuckoo search: a new gradient free optimization algorithm.
    Chaos, Solitons & Fractals 2011; 44(9): 710-718.
    
    Wang Wang GG, Deb S, Gandomi AH, Zhang ZJ, Alavi AH.
    Chaotic cuckoo search. Soft Computing 2016; 20(9): 3349–62.
    
    Wong Wong PK, Wong KI, Vong CM, Cheung CS.
    Modeling and optimization of biodiesel energy performance using
    kernel-based extreme learning machine and cuckoo search.
    Renewable Energy 2015; 74: 640–647.
    
    Woz Woźniak M, Polap D, Napoli C, Tramontana E. Graphic object feature extraction system based on cuckoo search algorithm. Expert Systems with Applications 2016; 66: 20–31.
    
    Wu Wu TQ, Yao M, Yang, JH. Dophin swarm extreme learning machine.
    Cognitive Computation 2017; 9(2): 275–284. YangDeb Yang XS, Deb S. Cuckoo search via Lévy flights,
     in: Proc. of World Congress on Nature & Biologically Inspired Computing (NaBic 2009), India, IEEE Publications, USA. 2009; pp. 210–214
    
    YangDeb2010 Yang XS, Deb S. Engineering optimization by cuckoo search. Int. J. Math. Modelling Num. Optimisation 2010; 1(4): 330–343.
    
    YangDebRev Yang XS, Deb S. Cuckoo search: recent advances and applications. Neural Computing and Applications 2014; 24(1): 169-174.
    
    YangBATEO Yang XS, Gandomi AH. Bat algorithm: a novel approach for
    global engineering optimization. Engineering Computations 2012; 29(5): 464–483.
    
    YangCSFA Yang XS. Cuckoo Search and Firefly Algorithm: Theory and Applications. Studies in Computational Intelligence, Vol. 516, Springer; 2014.
    
    YangDeb2013 Yang XS, Deb S.  Multiobjective cuckoo search for design optimization. Computers and Operations Research 2013; 40(6): 1616-1624.
    
    YangV Yang XS, Huyck C, Karamanoglu M, Khan N. True global optimality of the pressure vessel design problem: a benchmark for bio-inspired optimisation algorithms. Int. J. Bio-Inspired Computation 2013; 5(6): 329–335.
    
    YangMaths Yang XS. Engineering Mathematics with Examples and Applications. London: Academic Press; 2017.
    
    Yao Yao X, Liu Y, Lin G. Evolutionary programming made faster. IEEE Trans. Evol. Computation 1999; 3(2): 82-102.
    
    Yildiz Yildiz AR.
    Cuckoo search algorithm for the selection of optimal machine parameters in milling operations. Int. J. Adv. Manuf. Technol. 2013;  64(1): 55–61.
    
    Zamani Zamani AA, Tavakoli S, Etedali S. Fractional order PID control design for semi-active control of smart base-isolated structures: a multi-objective cuckoo search approach. ISA Tractions 2017; 67: 222-232.
    
    Zheng
    Zheng HQ, Zhou Y. A novel cuckoo search optimization
    algorithm based on Gauss distribution. J. Computational Information Systems 2012; 8(10): 4193–4200.
    
    Zine Zineddube M. Vulnerabilities and mitigation techniques toning in the cloud: a cost and vulnerablities coverage optimization approach using cuckoo search algorithm with Lévy flights. Computers & Security 2015;
        48: 1–18.
