Levy PSO
[gbest, xb] = levyPSO(@func, vars) is a function that searches for the global minimum of
an n-Dimensional function defined in 'func' using the PSO algorithm based on Levy distribution randomization.
It returns the global (not guaranteed) minimal value and the coordinate at which the function takes that value.
The input to this function is designed in the similar manner of the Matlab built-in function "fminsearch()".
Sample syntax: [gbest, xb] = levyPSO(@func_test, [0 0], [100 100], 100, 200) for 2-D,
[gbest, xb] = levyPSO(@func_test_3d, [0 0 0], [100 100 100], 100, 200) for 3-D function demo
The performance of this function is tested on the attached test functions. It is competitive with "fminsearch()" and "GOAT()" in terms of the target hitting rate (locate global minimum successfully), better than the built-in "particleswarm()" (2014b). When using adequate swam size (not too large), it is faster than GOAT() and fminsearch().
Cite As
Zhuo Li (2024). Levy PSO (https://www.mathworks.com/matlabcentral/fileexchange/50277-levy-pso), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired by: STBL: Alpha stable distributions for MATLAB
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.