This project serves as visualisation tool for particle swarm optimization algorithm. Project implements multiple functions that can be used to visualise how particles move in order to find a global minima of the function. SPSO 2006 version of PSO algorithm is implemented in this tool. Qt Library QCustomPlot is used for plotting graphs.
- maximum number of steps that this app will simulate - simulation will end after finding value with deviation from global minima less than set error, or after reaching maximum number of steps,
- function for optimization,
- number of particles,
- speed limit - maximum distance that a particle can move in single step, some functions have smaller area so speed should be adjusted so particles don't move to fast,
- error - simulation end condition, when best values deviation from optimal value is less than error value simulation will end
- auto and manual simulation - when auto-sim checkbox is checked app will automatically simulate all steps at once, when not checked, user can manually go through all steps using next step button
Name | Global minima value | Global minima position | range X | range Y |
---|---|---|---|---|
Ackley | 0.0 | [0,0] | <-40,40> | <-40,40> |
Bukin N.6 | 0.0 | [-10,1] | <-51,51> | <-3,3> |
Cross In Tray | -2.06261 | [+-1.13491,+-1.13491] | <-10,10> | <-10,10> |
Drop Wave | -1 | [0,0] | <-6,6> | <-6,6> |
Easom | -1 | [Pi,Pi] | <-80,80> | <-80,80> |
Griewank | 0 | [0,0] | <-100,100> | <-100,100> |
Holder Table | -19.2085 | [+-8.05502,+-8.05502] | <-10,10> | <-10,10> |
Levy | 0 | [1,1] | <-15,15> | <-15,15> |
Levy N.13 | 0 | [1,1] | <-10,10> | <-10,10> |
Michalewicz | -1.8013 | [2.20,1.57] | <-4,4> | <-4,4> |
Schaffer N.2 | 0 | [0,0] | <-10,10> | <-10,10> |
Schaffer N.4 | 0.292579 | [0,0] | <-50,50> | <-50,50> |
Six-Hump Camel | -1.0316 | [+-0.0989,+-0.7126] | <-2,2> | <-1,1> |
Sphere | 0.0 | [0,0] | <-6,6> | <-6,6> |
Styblinsky-Tang | -78.3319 | [-2.9035,-2.9035] | <-5,5> | <-5,5> |
- cmake >= 3.20
- Qt5 >= 5.15
mkdir build
cd build
cmake ..
make