Find minimum of function using global Particle Swarm Optimization algorithm.
Updated 2 Nov 2016

View License

[xopt, fval, exitflag, output] = ppso(func,npars,lb,ub) or
[xopt, fval, exitflag, output] = ppso(func,npars,lb,ub,options) or
[xopt, fval, exitflag, output] = ppso(func,npars,lb,ub,options,auxdata)
Find minimum of function using a global version of Particle Swarm Optimization algorithm, as described in Ref. 1. The values of the Cognitive and Social weights are, respectively, cC = 1.49445*r2(0,1) and cS = 1.49445*r3(0,1) where r2(0,1) and r3(0,1) are two random numbers with uniform distribution between 0 and 1. The Inertial weight is cI = 0.5 + 0.5*r1(0,1). A decreasing version of the Inertial weight has been tested, but it results in a worst performance of the overall algorithm in terms both of speed and final results.
The oracle penalty method (see Ref. 2) is used for the nonlinear constraints handling. l1, l2 or l_inf norm can be chosen for the computation of residuals.
NOTE. Nonlinear constraints handling does not work properly yet. To date, it does work on simple problems.
Several test cases show how ppso works against pure mathematical and space dynamics problems. These are summarized into the README.txt file. A comparison with MATLAB's built-in functions ga and particleswarm is shown as well.
Please refer to the help of the function for a more detailed description.


- Pontani, M. and Conway, B., "Particle Swarm Optimization Applied to Space Trajectories", Journal of Guidance, Navigation and Control, Vol. 33, No. 5, 2010, pp. 1429-1441.
- Schluter, M. and Gerdts, M., "The oracle penalty method", Journal of Global Optimization, Vol. 47, No. 2, 2010, pp. 293-325.

Cite As

Alessandro (2024). ppso (https://www.mathworks.com/matlabcentral/fileexchange/58895-ppso), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2014b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

The option "createNewPop_fLimit" has been removed and an issue related to the creation of a new population has been fixed.

Updated description

Help revised.