Particle Swarm Optimization (PSO) - GUI Simulator
This Graphic User Interface (GUI) provides a highly customized simulator of a classical collective intelligence algorithm: Particle Swarm Optimization (PSO).
Execute ‘main.m’ for running the main GUI program. As shown in the thumbnail, the program allows the user to configure the most important parameters of the PSO.
First of all, it is necessary to set the target search function. The GUI offers twelve different benchmark functions: a paraboloid, Griewank, Rastrigin, Rosenbrock, Bukin, Log-sumcan, Ackley, Drop-wave, Holder-table and Levy. Also, if ‘custom’ is selected, a new window will appear in order to configure the customized function in terms of a two-dimensional MATLAB expression @(x,y).
Once the target function is plotted, it is time to set the swarm parameters, such as the population size, the generation limit, the precision (error tolerance), and the velocity factors (percentage of the region of interest limits): inertia weight, individual confidence factor and swarm confidence factor.
Finally, pressing the ‘run’ button, the algorithm will start. Depending on the type of optimization previously selected, the fitness is the inverse of the function evaluation (minimization) or not (maximization). The GUI presents 3 different graphs: 3D-function graph (upper left), contour function with swarm evolution (upper right) and fitness monitoring (bottom). Swarm particles are displayed as black dots, while the best position ever found by the swarm is displayed as a red cross-hair.
Cite As
Víctor Martínez-Cagigal (2024). Particle Swarm Optimization (PSO) - GUI Simulator (https://www.mathworks.com/matlabcentral/fileexchange/55162-particle-swarm-optimization-pso-gui-simulator), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.