PSOLab is a software written in C++ and the QT library to experiment with particle swarms using different parameters, variants and fitness functions. This program was one of the main components of my MSc thesis, which can be found here.
The full source code for this program can be found here. The program was originally created with QT 4.8.2 and gcc 4.5.4. Other versions of gcc and QT (newer) should, in theory, be able to compile the source code.
The main features of the program are:
- On the fly modification of cognitive (alpha_1), social (alpha_2), neighbour (alpha_3) and inertia (omega) components.
- Easy modification of meta parameters such as the algorithm iterations, boundary radius, dimensions and number of neighbours.
- Four fitness functions to test: Sphere, Griewank, Rastrigin and Schwefel function.
- Three PSO variants can be used: The standard PSO (with neighbourhood support), Eigencritical PSO and Adaptive PSO.
- Batch mode: Test a particular set of parameters running multiple PSOs using all available CPU cores to gather statistics.
- Statistics analyzed: Fitness, Mean Square Distance (MSD) to the centroid of the swarm and MSD histograms of MSDs with modifiable bin sizes.
