http://cs.cug.edu.cn/teacherweb/lichanghe/pages/EAlib.html
如果上面的服务器下载EAlib源代码有问题,可以参考这个网盘的。
Welcome to Changhe Li's EAlib Page
About Me | News | Research | Teaching | Publications | EAlib | Downloads | Funding | Links |
LIBRARY OF EVOLUTIONARY ALGORITHMS
- Description
- Library structure
- Instruction to add new algorithms and problems
- Algorithms collected so far(October 2011)
- Problems collected so far(October 2011)
- Coming algorithms
- Download
- Contributors
This is an open sources project with the aim of providing the source codes of state-of-the-art algorithms, problems, and algorithms' performance metrics for researchers in the area of evolutionary computation. Based on this framework, you can easily implement your ideas and add the codes into this library. More important, you will be also able to compare with other state-of-the-art algorithms without implementing them under a fair environment. In addition, this library will be updated as time goes on when new algorithms and problems come to this research area. Anyone, who want to contribute to this project, is welcome, and please contact me without hesitation.
This project is totally for research purpose. As a researcher in the area of evolutionary computation, I know how bad it is if there is no source codes available for the algorithm you want to compare with your own method. It may spend weeks to find out why the results you got are not as good as the results provided in the original paper. The worst case is that you just can not figure out the reason even though you spend weeks. There are many reasons: not enough details available of the algorithm, different implementations, using different languages, the stochastic characteristic of EAs ..., etc. Therefore, here comes the motivation to build up a standard platform for you to carry out experiments. I believe that this project would clear the way for your research and save you a lot of time. Well, in a word, I would like to encourage you to take part in this project and let's together make the research life easy, comfortable, and efficient for you and someone else.
This library was implemented in C++ language, it has three basic components: algorithms, problems, and algorithms' performance evaluation. The class structure is as follows:
Algorithms:
This module provides basic templates for variant EAs. The module includes three basic classes: the Chromosome,Individual, and Population classes. Functions and descriptions of them are as follows.
The Chromosome class: The most fundamental class, represents a solution of a problem and is able to take composite encoding scheme,e.g., A b 1.23 ! & true 59. It was designed based on problems' representation.
The Individual class: A simple template individual class, provides some basic operations for a single individual with variant individuals of different algorithms.
The Population class: A template population class, provides some basic operations for a population
Problems:
This module collects some benchmark problems used for the performance evaluation for EAs in different research topics. Currently, it has two types of problems, function optimization problems (FOPs) and dynamic optimization problems(DOPs).
Problem .................................................... the base class for all problems
|
+BenchmarkFunction ........................................ the base class for all function optimization problems
| |
| +FSphere ................................................ the Sphere function f(x)=x*x
+DynamicProblem ........................................... the base class for dynamic optimization problems(DOPs)
|
+DynamicContinuous ...................................... the base class for DOPs in continuous space
|
+RealDB G.............................................. the base class for GDBG benchmark
| |
| +CompositionDBG ..................................... the Composition problems in GDBG
| |
| +RotationDBG ......................................... the Rotation problems in GDBG
|
+MovingPeak ............................................ the Moving Peaks problem
|
+DF1 ................................................... the DF1 problem
Performance metrics:
PerformSingleObj ...............................................the performance measurement for single objective optimization problem
Other major files:
Global.h ........................................................ class for global variables
StructDec.h ..................................................... struct declaration file
newran.h ........................................................ random number generator: From library http://www.robertnz.net/nr02doc.htm
Instruction for new algorithms and new problems
To add a new algorithm:
Take a simple PSO algorithm as an example, you need to develop two classes, which are: PSOIndividual: public Individual and PSOPopulation: public Population<PSOIndividual> , then follow the steps described in the beginning of the main function in main.cpp file to run the new algorithm.
To add a new problem:
If a new problem is to be added into this lib, you need to implement it under a proper position in the Problem class. In addition, encoding and decoding work must be done in the Chromosome.cpp file if a new solution representation is needed to describe the problem.
Each algorithm and problem has a unique ID, please assign an ID to an algorithm or a problem when they are added.
Development:
You can develop your algorithms in both Visual studio 2010 in Windows and CODE::BLOCK in Ubuntu, corresponding project files are EAlib.sln and EAlib.cbp, respectively. A makefile is also available to compile the program. If you have any question about this library, please contact Changhe Li with changhe.lw@gmail.com.
This lib has included some algorithms from different research areas, which are listed below:
- Function optimization:
- Particle swarm optimization
- SPSO07: C. Maurice, Standard PSO 2007, http://www.particleswarm.info/Programs.html, 2007.
- SLPSO: Changhe Li, Shengxiang Yang and Trung Thanh Nguyen, A Self-Learning Particle Swarm Optimizer for Global Optimization Problems. accepted by IEEE TSMCB.
- Differential evolution
- Storn, R. and Price, K. (1997), Differential Evolution - A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces, Journal of Global Optimization, 11, pp. 341--359.
- Thomsen R (2004) Multimodal optimization using crowding-based differential evolution. In: Proceedings of the 2004 IEEE congress on evolutionary computation, pp 1382--1389. IEEE Press, Portland, OR, USA
- Genetic algorithms
- Hybrid algorithms
- Particle swarm optimization
- Dynamic optimization
- Particle swarm optimization
- CPSO: S. Yang and C. Li, A clustering particle swarm optimizer for locating and tracking multiple optima in dynamic environments, IEEE Trans. Evol. Comput., vol. 14, no. 6, pp. 959-974, 2010.
- CPSOR: C.Li and S.Yang A General Framework of Multi-Population Methods with Clustering in Undetectable Dynamic Environments , accepted by IEEE TEC
- Differential evolution
- Genetic algorithms
- Hybrid algorithms
- Lung R, Dumitrescu D (2010) Evolutionary swarm cooperative optimization in dynamic environments. Nat Comput Int J 9(1): 83--94.
- Particle swarm optimization
- Multi-Objective optimization
- Function optimization problems(FOPs) :Sphere, Sphere_Noisy, S_Sphere, R_Sphere, RS_Sphere, S_Sphere_CEC05, Rastrigin, Rastrigin_Noisy, S_Rastrigin, R_Rastrigin, RS_Rastrigin, S_Rastrigin_CEC05, RS_Rastrigin_CEC05, Weierstrass, RS_Weierstrass, R_Weierstrass, RS_Weierstrass_CEC05, Griewank, R_Griewank, RS_Griewank, Ackley, Ackley_Noisy, S_Ackley, R_Ackley, RS_Ackley, RS_Ackley_Bound_CEC05, Step, Quartic_Noisy, Scaffer_F6, Rosenbrock, S_Rosenbrock, S_Rosenbrock_CEC05, Schwefel_2_22, Schwefel_2_22_Noisy, S_Schwefel_2_22, R_Schwefel_2_22, RS_Schwefel_2_22, Schwefel, Schwefel_Noisy, S_Schwefel, R_Schwefel, RS_Schwefel, Schwefel_1_2, Schwefel_1_2_Noisy, S_Schwefel_1_2, S_Schwefel_1_2_Noisy, R_Schwefel_1_2, RS_Schwefel_1_2, S_Schwefel_1_2_CEC05, S_Schwefel_1_2_Noisy_CEC05, Schwefel_2_21, Penalized_1, Penalized_2, Noncont_Rastrigin, RS_Elliptic_CEC05, Elliptic, Com, R_Com, Com_CEC05, H_Com_CEC05, H_Com_Noisy_CEC05, RH_Com_CEC05, RH_Com_NarrowBasin_CEC05, RH_Com_Bound_CEC05, M_global1, M_global2, M_global3, M_global4, M_global5, S_Sphere_CEC08, Schwefel_2_21_CEC08, S_Rosenbrock_CEC08, S_Rastrigin_CEC08, S_Griewank_CEC08, S_Ackley_CEC08, RW_Gear_Train, RW_ParEst_FMSoundWaves.
- Dynamic optimization problems(DOPs): CompositionDBG_DOP, RotationDBG_DOP, MovingPeak_DOP, DF1_DOP, Binary_DOP.
Please find the description of the above problems in the corresponding files in the library.
- CPSO-Hk: F. van den Bergh and A. P. Engelbrech, "A cooperative approach to particle swarm optimization," IEEE Trans. Evol. Comput., vol. 8, pp. 225-239, 2004.
- FIPS: R. Mendes, J. Kennedy, and J. Neves, "The fully informed particle swarm: Simpler, Maybe better," IEEE Trans. Evol. Comput., vol. 8, pp. 204-210, 2004.
- CLSPO: J. J. Liang, A. K. Qin, P. N. Suganthan, and S. Baska, "Comprehensive learning particle swarm optimizer for global optimization of multimodal functions," IEEE Trans. Evol. Comput., vol. 10, no. 3, pp. 281-295, 2006.
- APSO:Z. Zhan, J. Zhang, Y. Li, and H. S. Chung, "Adaptive particle swarm optimization," IEEE Trans. Syst., Man, Cybern. B: Cybern., vol. 39, pp. 1362-1381, 2009.
- FPSO: M. A. M. de Oca, T. Stutzle, M. Birattari, and M. Dorigo, "Frankenstein's pso: A composite particle swarm optimization algorithm," IEEE Trans. Evol. Comput., vol. 13, no. 5, pp. 1120-1132, 2009.
- JADE: J. Zhang and A. C. Sanderson, "JADE: adaptive differential evolution with optional external archive," IEEE Trans. Evol. Comput., vol. 13, no. 5, pp. 945-958, 2009.
- HRCGA:C. Garcia-Martinez, M. Lozano, F. Herrera, D. Molina, and A. M.Sanchez, "Global and local real-coded genetic algorithms based on parent-centric crossover operators," Europ. J. Oper. Res., vol. 185, pp.1088-1113, 2008.
- rSPSO: Bird, S.; Xiaodong Li; , "Using regression to improve local convergence," Evolutionary Computation, 2007. CEC 2007. IEEE Congress on , vol., no., pp.592-599, 25-28 Sept. 2007
- SPSO: Parrott, D.; Xiaodong Li; , "Locating and tracking multiple dynamic optima by a particle swarm model using speciation," Evolutionary Computation, IEEE Transactions on , vol.10, no.4, pp.440-458, Aug. 2006.
- mQSO,mCPSO: Blackwell, T.; Branke, J.; , "Multiswarms, exclusion, and anti-convergence in dynamic environments," Evolutionary Computation, IEEE Transactions on , vol.10, no.4, pp.459-472, Aug. 2006
To download the EAlib, please click here(updated 20 July 2012).
Ming Yang