A Novel Complex Valued Cuckoo Search Algorithm

To expand the information of nest individuals, the idea of complex-valued encoding is used in cuckoo search (PCS); the gene of individuals is denoted by plurality, so a diploid swarm is structured by a sequence plurality. The value of independent variables for objective function is determined by modules, and a sign of them is determined by angles. The position of nest is divided into two parts, namely, real part gene and imaginary gene. The updating relation of complex-valued swarm is presented. Six typical functions are tested. The results are compared with cuckoo search based on real-valued encoding; the usefulness of the proposed algorithm is verified.


Introduction
Recently, a new metaheuristic search algorithm, called Cuckoo Search (CS) [1], has been developed by Yang and Deb (2009). The algorithm is inspired by the reproduction strategy of cuckoos. Because of this method is simple, efficient and optimal random search paths, and successfully applied to practical engineering optimization problems [2]. In term of cuckoo search algorithm, there are many methods to improve its performance; some people study the parameters of cuckoo search algorithm. But these methods are using binary and decimal to encode the bird's nest, individual's information capacity is very limited.
Complex-valued encoding method is already used to express neural network weights [3] and individual genes of evolutionary algorithm [4,5]; it uses diploid in the expression of individual genes and greatly expands the individual's information capacity. From individual coding method, this paper studies the plural coding performance improvement of cuckoo search algorithm. The value of independent variables for objective function is determined by modules, and the sign of them is determined by angles. The two variables of real and imaginary parts to represent an independent variable, thus nest groups, can enhance the information and tap the individual diversity of the population, reducing the local convergence. We provide a new way for the Cuckoo search algorithm to solve practical problems.

Original CS.
CS is a heuristic search algorithm which has been proposed recently by Yang and Deb [1]. The algorithm is inspired by the reproduction strategy of cuckoos. At the most basic level, cuckoos lay their eggs in the nests of other host birds, which may be of different species. The host bird may discover that the eggs are not its own and either destroy the egg or abandon the nest all together. This has resulted in the evolution of cuckoo eggs which mimic the eggs of local host birds. For simplicity in describing the Cuckoo Search, we now use the following three idealized rules: (1) Each Cuckoo lays one egg, which represents a set of solution coordinates, at a time, and dumps it in a random nest.
(2) A fraction of the nests containing the best eggs, or solutions, will be carried over to the next generation.
(3) The number of nests is fixed and there is a probability that a host can discover an alien egg. If this happens, the host can either discard the egg or the nest and this results in building a new nest in a new location.
Based on these three rules, the basic steps of the Cuckoo Search (CS) can be summarized as the pseudo code shown in Algorithm 1.
When generating new solution ( +1) for, say, cuckoo , a Lévy flight is performed where > 0 is the step size which should be related to the scales of the problem of interests. In most cases, we can use = 1.
The product ⊕ means entry-wise walk during multiplications. Lévy flights essentially provide a random walk while their random steps are drawn from a Lévy Distribution for large steps This has an infinite variance with an infinite mean. Here the consecutive jumps/steps of a cuckoo essentially form a random walk process which obeys a power-law step-length distribution with a heavy tail. In addition, a fraction of the worst nests can be abandoned so that new nests can be built at new locations by random walks and mixing. The mixing of the eggs/solutions can be performed by random permutation according to the similarity/difference to the host eggs.
Obviously, the generation of step size s samples is not trivial using Lévy flights. A simple scheme discussed in detail by Yang can be summarized as where and V are drawn from normal distributions. That is Here Γ is the standard Gamma function [6].

Cuckoo Search Based on Complex-Valued Encoding.
Containing the -variable function optimization problem, with complex, corresponding to the complex nest location is recorded as The gene of the nest can be expressed as the diploid and is recorded as ( , ); , express, respectively, the real and imaginary parts of the variable in (5). So the th nest can be expressed as shown in Table 1 where real and imaginary parts as shown in Table 2 are assigned to the Bird's Nest, resulting in an initial nest.
The Scientific World Journal 3 Complex-valued Cuckoo search via Lévy flight algorithm:

Begin
Objective function ( ), = ( 1 , 2 , . . . , ) Generate initial population of plurality host nests ( = 1, 2, . . . , ) according to (6) Setting the Max Generation, and find the best modules, angles and fmin. While ( < Max Generation) or (stop criterion) Keep the best module, angle for the SAN Get a new module and angle randomly by Lévy flight according to (7) and (8) Plurality nest be transformed into real nest according to (9) Evaluate its quality/fitness Choose a nest among (say, ) randomly Replace by the new solution; ← ← ← End A fraction ( ) of worse modules, angles are abandoned and new ones are built; Compare rand with , obtain a new module and angle. Evaluate its quality/fitness , and keep the best nest, module and angle Rank the solutions and find the current best nest, module and angle.

End while Post process results and visualization End
Algorithm 2: Pseudo code of the plurality cuckoo search (PCS).

The Method of Nest Update
(1) The method of module update is as follows: ( +1) = ( ) + ⊕ ( ) , = 1, 2, 3, . . . , , where ( ) expresses the th generation value in the th module. The product ⊕ means entry-wise multiplications where > 0 is the step size which should be related to the scales of the problem of interest. In most cases, we can use Module vector is updated, if r and > then ( +1) random can be changed, or not changed. The last to retain a good module vector ( +1) .
(2) The method of angle update is as follows: where ( ) expresses the th generation value in the th angle. The product ⊕ means entry-wise multiplications, where > 0 is the step size which should be related to the scales of the problem of interest. In most cases, we can use = 1. ( ) ∼ = − , (1 < ≤ 3). Angle vector is updated, if r and > then ( +1) random can be changed, or not changed. The last to retain a good angle vector ( +1) .

Fitness Calculation.
In order to solve the fitness function, plural Bird's Nest must be changed into a real number; the real value of objective function is determined by modules, and sign of them is determined by amplitude angle, specific practices are as follows: = √ 2 + 2 , = 1, 2, . . . , RV = sgn (sin ( )) + + 2 , = 1, 2, . . . , , where denotes the th dimension module, , denote the real part and imaginary part of the th dimension; respectively, RV is converted real variable.

The Basic Steps of PCS
Based on above analysis, the basic steps of complex-valued encoding (PCS) can be summarized as the pseudo code shown in Algorithm 2.

Design of Experiment.
In this section, the performance of the PCS algorithm is extensively investigated by a large number of benchmark optimization problems. All computational experiments are conducted with Matlab7.0 and run on CPU T3100, 1.90 GHZ with 2 GB memory capacity.
Algorithm parameters are set as follows: because the updates of bird's nest locations are divided into two steps in the complex-valued encoding, there are two update calculations; when the two types of encoding have the same sizes 4 The Scientific World Journal  of population, the computational complexity of the complexvalued encoding is approximately two times the one of the real encoding. To compare with the performance of the two methods, the size of plurality population nest is half of the one of real population nest. The size of complex-valued encoding nest is 20, the size of real encoding nest is 40, and the maximum iteration times is 200, = 0.25.

Experimental Results and Analysis.
In this section, we test on six different functions to verify that the algorithm proposed in this paper is feasible and effective. 20 independent runs are made for the PCS algorithms, and the results obtained by the PCS algorithms are presented in Table 3. From Table 3 we can find that complex-valued encoding method can achieve better fitness than real number coding method. In terms of Rosenbrock function, either best fitness or average fitness, we can see that the precision of PCS is improved 10 2 and 10 3 higher than CS, respectively. As far as Sphere function are concerned, the optimal value of PCS reaches the theoretical value; the average fitness is improved 10 3 higher than CS. About Rastrigin, Ackley function, PCS average value and the optimal ratio of CS are improved, but not obvious. With respect to Easom function, the optimal value of PCS reaches the theoretical value, but CS does not. In terms of Griewank function, the optimal value of PCS can also reach the theoretical value. Figure 1 shows that this method is better than that real-coded in the convergence rate and convergence precision; this can be explained from the average fitness evolution curves. From the average fitness figures, we can see that the change of average fitness obtained by the complex-valued encoding method is much greater than the one obtained by the real number encoding method, especially in the early evolution. Because the average fitness of the change is bigger, that individual is scattered, not concentrated in one or a few local points. In the iterative process, there is a trend that these points are close to a better location, but this is easy to make the population into the local convergence; therefore maintaining the diversity of the population is very important. Average fitness changes greatly; to some extent, the diversity of the population is better, thus not easy to fall into the local convergence.

Implement PCS in Determining PID Controller Parameter
In industry process, people generally implement Ziegler-Nichlos rule in determining PID controller parameters; the control effect is generally difficult to meet the requirements of the control system. In this section, we implement PCS in determining PID controller parameters and compare the results with CS and PSO results. The parameters of controller are mapped bird's nest, then optimizing them by the PCS method. In the previous work [7,8]  PID Controller can be described as Through adjusting the three parameters, the system satisfies the required performance indicators. The bird's nest is in the three dimensional space encoded; the parameters are set as follows:   The number of nest is 20; the maximum iteration time; is 100. The most crucial step in applying PCS to choose the objective functions that are used to evaluate fitness of each nest; the performance indices are defined as follow [8]: where ( ) is the error signal in time domain, is the tuning time, , is weight, which is set as 0.1 and 0.9, respectively.
In the experiments, we implement PSO, CS, and PCS in determining PID controller parameters. The results obtained by the three algorithms are presented in Table 4. Figure 2 is the unit step response curve of control object.
In Figure 2, we can see that the settling time is not so different among all methods; the settling time from short to long is followed by PCS, CS, and PSO. In addition, the overshoot of the three algorithms is (in descending order): PSO, CS, and PCS.

Conclusions
This paper proposes Cuckoo search based on complex-valued encoding; the individual of Bird's Nest is denoted by plurality, so a diploid swarm is structured by a sequence plurality; the Bird's Nest can express the space dimension much more than the real-coded one. Compared with traditional realcoded, the Bird's Nest also has to contain more information, so that the algorithm improves the search capabilities of the global optimum. To verify the proposed PCS algorithm, also a number of benchmark optimization problems and PID controller parameter tuning are solved using this concept and quite satisfactory results are obtained. CS is the algorithm proposed in the last two years; the theoretical analysis and other applications require further study.