View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Simple example of PSO algorithm

4.8 | 6 ratings Rate this file 79 Downloads (last 30 days) File Size: 1.74 KB File ID: #30660 Version: 1.0

Simple example of PSO algorithm


Andrea Cirillo (view profile)


Matlab function to find the minimum of a objective function with the PSO Algorithm

| Watch this File

File Information

It finds the minimum of a n variables function with the Particle Swarm Optimization Algorithm.

% The input parameters are:
% -func: it's the objective function's handle to minimize
% -numInd: it's the number of the swarm's elements
% -range: it's the range in which the elements must be created
% -n_var: it's the number of function's variables
% -tolerance: it's the tolerance for the stop criterion on the swarm's
% radius
% -numIter: it's the max iterations' number
% -pesoStoc: it's the swarm's movability
% The output parameters are:
% -p_min: the minimum point find
% -f_min: the minimum value of the function
% -iter: the number of iterations processed

MATLAB release MATLAB 7.11 (R2010b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (24)

Hi andrea, can you explain why fitness is used in pso method. It is enough to find min or max...

Comment only
20 Dec 2016 Leo Nog

14 Sep 2016 tarafa akrame

hi fahed mahdi
lok this
i hope that you found it useful

Comment only
14 Sep 2016 tarafa akrame

thanks M N Alam

Comment only
10 May 2016 M N Alam

Dear All
A very simple PSO codes can be obtained with an example in MATLAB environment to the link given below;

Comment only
10 May 2016 M N Alam

Dear All
A very simple PSO codes can be obtained with an example in MATLAB environment to the link given below;

Comment only
02 May 2016 Sharif

Sharif (view profile)

Hi Andrea, what is the function of radius?

Comment only
15 Mar 2016 Andrea Cirillo

Andrea Cirillo (view profile)

Hi Fahad,
I'm sorry, but I don't know what it is.

Comment only
14 Mar 2016 Fahad Mahdi

Dear Andrea,

Can you provide me the code of Quantum behaved PSO? Do you have idea on this algorithm?

Comment only
07 Mar 2016 Bala Senthil

Hi andrea, can i use PSO as a classifier? Is it possible?

Comment only
12 Jan 2016 shaista

How we can optimize anfis structure using PSO method in GUI
please guide me.

Comment only
27 Nov 2015 Tirupal Talari

hello andrea can u plz help me to find optimal block size of an image using pso technique

Comment only
19 May 2015 Hamza

Hamza (view profile)

Hello every one .
Most of the example codes I have seen so far is that PSO tries to find a minimum or maximum of a function.
is it possible to modify this code for multi-objective optimization.


Comment only
20 Jul 2014 Sajeev J

Hi Andrea, I am doing a classification problem. I am classifying a protein as either cancerous or not with 644 features. My guide instructed me to optimize the feature vector using PSO. I am clear with your code, but I don't know how to write the objective function. My SVM classifier works well with 644 features and put in two groups (1 or 0). Hope you can help me. Thanks

17 Apr 2013 sangjinlee

12 May 2012 Andrea Cirillo

Andrea Cirillo (view profile)

Of course the error is on the input variables that you use for PSO function. You can follow the simple example of the previous comment.

Comment only
12 May 2012 KT

KT (view profile)

hi!!!! i am trying to understand the concept of PSO but the code is giving me the following error:
??? Index exceeds matrix dimensions.

can some one please tell where i am wrong???

Comment only
15 Mar 2012 SANI LAWAL

Hello Michael, it do run but u need to define the range and other input parameters as given by Mr Andrea, it runs perfectly,but my only doubt is the minimal value because i got 1.0e+006,so i want be sure is it the minimum value?
Thank you so much

08 Mar 2012 Michael Bernard

Why does the example fail to run in matlab? I got this message when I ran the file.The message reads :"??? Input argument "range" is undefined.
Error in ==> pso at 19
range_min=range(1); % Range for initial swarm's elements "

I have never used partical swarm.Am new to it

Comment only
19 Dec 2011 Giacomo

It works fine!!!

13 Dec 2011 Akbar

Akbar (view profile)

I am trying to solve Skew correction problem with PSO. I have a prob with defining the objective function.

This is a simple example given above. The problem I am facing is that I have to maximize the difference of maxima and minima of the projection profile of the image. Given as,


theta here is swarm particle (1D)

How should i be using this 'theta' in my function to maximize the objective function given as above.


Comment only
14 Nov 2011 Ahmet Ahmet

24 Oct 2011 Andrea Cirillo

Andrea Cirillo (view profile)

The objective function have to be a matlab function (you can create a .m function) with its input and output parameters. After you created the function, you can obtain the function handler with the @ symbol. A simple example: if c = sum(a) is my function, I will create the follow matlab function.

function c=sum(a)

where 'a' is a vector that contain the input parameters. After I can define the function handle:
f_vett=@(x) sum(x)
where f_vett is a multivariable function and x is the vector that contains the variables of the function.

Now, if f_vett is a objective function, you can use the pso algorithm as follow:

[p_min, f_min, iter]=pso(f_vett, 5000, [0 20], 10, 0.0001, 200, 0.7)

Comment only
24 Oct 2011 Ahmed Hany

Hello Andrea ;

Pleass tell me the format used for input func ( objective function ) .

Comment only

Contact us