Particle Swarm Optimization

Function for searching for minimizer of a function
244 Downloads
Updated 1 Jul 2023

View License

% This minimizes the function fun, subject to the inequality constraints
% funCInEq and Equality constrants funCEq within the hyperbox between lb
% and ub
% fun = function handle for the function to be minimized
% funCInEq = function handle for the inequality condition (set to
% empty matrix when there is no inequality condition)
% funCEq = function handle for the equality condition (set to
% empty matrix when there is no equality condition)
% lb = vector of lower bounds
% ub = vector of upper bounds
% penalty = scale violation of constrain conditions (usually between 10
% and 100)
% popsize = population size (usually 30 to 50)
% maxiter = maximum iteration(less than 500)
% maxrun = maximum number of runs( 10 or less)
%% %%%%%%%%%%%%%%%% Examples %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 1.
% Roosenbrook = @(x) (1 - x(1))^2 + 100*(x(2) - x(1)^2)^2;
% PartSwamOpt(Roosenbrook, [], [], [-2;-1], [2;3], 0, 30, 500, 10);
% 2.
% Adjiman = @(x) cos(x(1))*sin(x(2)) – x(1)/(x(2)^2 + 1);
% PartSwamOpt(Adjiman, [], [], [-1;-1], [2;1], 0, 30, 500, 10);
% 3.
% Beale = @(x) (1.5-x(1) + x(1)*x(2))^2 + (2.25-x(1) + x(1)*x(2)^2)^2 + (2.625-x(1) + x(1)*x(2)^3)^2;
% PartSwamOpt(Beale, [], [], [-1;-1], [2;1], 0, 30, 500, 10);

Cite As

Lateef Adewale Kareem (2024). Particle Swarm Optimization (https://www.mathworks.com/matlabcentral/fileexchange/58034-particle-swarm-optimization), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012b
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
3.1.0.1

We moved the compound objective function into the body of the main function, just to ease readability

3.1.0.0

Bugs on Equality and InEquality constrain handling were corrected. and Examples provided.
same as example used here.
https://www.mathworks.com/help/optim/ug/fmincon.html

3.0.0.0

bug in velocity reversal was corrected

2.0.0.0

Changes to the plot function to identify the minimum point

1.0.0.0

Image thumbnail