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.
Recently, a new metaheuristic search algorithm, called Cuckoo Search (CS) [
Complex-valued encoding method is already used to express neural network weights [
CS is a heuristic search algorithm which has been proposed recently by Yang and Deb [ Each Cuckoo lays one egg, which represents a set of solution coordinates, at a time, and dumps it in a random nest. A fraction of the nests containing the best eggs, or solutions, will be carried over to the next generation. 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
Cuckoo search via Lévy flight algorithm:
Objective function Generate initial population of Get a cuckoo randomly by Lévy flight Evaluate its quality/fitness Choose a nest among If ( replace A fraction ( Keep the best solutions (or nests with quality solutions); Rank the solutions and find the current best Post process results and visualization
When generating new solution
The product
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
Containing the
Nest chromosome structure shown.
|
|
… |
|
Assume that the variable interval of function is
Test the improved algorithm’s benchmark functions.
Functions | Dim | Domain | Theoretical value |
---|---|---|---|
|
10 |
|
0 |
|
15 |
|
0 |
|
20 |
|
0 |
|
30 |
|
0 |
|
2 |
|
|
|
10 |
|
0 |
The method of module update is as follows:
The method of angle update is as follows:
where
where
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:
Based on above analysis, the basic steps of complex-valued encoding (PCS) can be summarized as the pseudo code shown in Algorithm
Complex-valued Cuckoo search via Lévy flight algorithm:
Objective function Generate initial population of Setting the Max Generation, and find the best modules, angles and fmin. Keep the best module, angle for the SAN Get a new module and angle randomly by Lévy flight according to ( Plurality nest be transformed into real nest according to ( Evaluate its quality/fitness If ( Replace A fraction ( Compare rand with Evaluate its quality/fitness Rank the solutions and find the current best nest, module and angle. Post process results and visualization
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 of population, the computational complexity of the complex-valued 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,
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
The results of experiment in running 20 times.
Functions | Algorithm | Best | Worst | Mean | Variance |
---|---|---|---|---|---|
Rosenbrock | CS | 671.2474 |
|
|
|
|
|
|
|
|
|
Sphere | CS | 0.0648 | 0.1723 | 0.1141 | 0.0012 |
|
|
|
|
|
|
Rastrigin | CS | 112.8084 | 128.5006 | 120.8996 | 20.0181 |
|
|
|
|
|
|
Ackley | CS | 10.7296 | 13.7988 | 12.3351 | 0.5920 |
|
|
|
|
|
|
Easom | CS |
|
|
|
|
|
|
|
|
|
|
Griewank | CS | 0.4814 | 0.9043 | 0.7230 | 0.0111 |
|
|
|
|
|
The evolution graph of the average fitness in 20 trails.
Function Rosenbrock evolution curve
Function Sphere evolution curve
Function Rastrigin evolution curve
Function Ackley evolution curve
Function Easom evolution curve
Function Griewank evolution curve
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 [
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
PID Controller tuning parameters.
Tuning method |
|
|
|
---|---|---|---|
PSO | 0.0100 | 2.0000 | 1.0518 |
CS | 0.6491 | 2.0000 | 2.0000 |
PCS | 0.8096 | 1.9738 | 1.9995 |
The comparison of unit step response curve.
In Figure
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 real-coded, 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.
This work is supported by National Science Foundation of China under Grant no. 61165015, Key Project of Guangxi Science Foundation under Grant no. 2012GXNSFDA053028, and Key Project of Guangxi High School Science Foundation under Grant no. 20121ZD008 and funded by Open Research Fund Program of Key Lab of Intelligent Perception and Image Understanding of Ministry of Education of China under Grant no. IPIU01201100.