pso

Easy-to-use MatLab function for PSO.
4.8K Downloads
Updated 24 Nov 2010

View License

Easy-to-use MatLab function for PSO (Particle Swarm Optimization). Limited to optimization problems of nine variables but can easily be extended many variables.

xbest = pso(func)
xbest - solution of the optimization problem. The number of columns depends on the input func. size(func,2)=number of xi variables
func - string containing a mathematic expression. Variables are defined as xi. For instance, func='2*x1+3*x2' means that it is an optimization problem of two variables.

[xbest,fit] = pso(func)
fit - returns the optimized value of func using the xbest solution.

[xbest,fit] = pso(func,xmin)
xmin - minimum value of xi. size(xmin,2)=number of xi variables. Default -100.

[xbest,fit] = pso(func,xmin,xmax)
xmax - maximum value of xi. size(xmax,2)=number of xi variables. Default 100.

[xbest,fit] = pso(func,xmin,xmax,type)
type - minimization 'min' or maximization 'max' of the problem. Default 'min'.

[xbest,fit] = pso(func,xmin,xmax,type,population)
population - number of the swarm population. Default 50.

[xbest,fit] = pso(func,xmin,xmax,type,population,iterations)
iterations - number of iterations. Default 500.

Example: xbest = pso('10+5*x1^2-0.8*x2',[-10 -20],[20 40],'min')

Micael S. Couceiro
v1.0
15/11/2010

Original algorithm developed by:
Kennedy, J. and Eberhart, R. C. (1995).
"Particle swarm optimization".
Proceedings of the IEEE 1995 International Conference on Neural Networks, pp. 1942-1948.

Cite As

Micael Couceiro (2026). pso (https://www.mathworks.com/matlabcentral/fileexchange/29519-pso), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Version Published Release Notes
1.0.0.0