Skip to content

Social Learning Algorithms: Particle Swarm Optimization (PSO)

September 6, 2013


The picture above is not a Sharknado. It is a school of fish that are travelling together in a swarm demonstrating the properties of intelligent social behavior. This observation along with other examples in nature helped to inspire the creation of Particle Swarm Optimization (PSO).

PSO is a robust stochastic optimization method based upon the behavior of swarms observed in nature. The method captures the concept of social intelligence and co-operation.  PSO was developed by a social psychologist- James Kennedy and an engineer-Russell Eberhart in 1995. The PSO method employs particles that exhibit individual and group behavior when looking for a solution within a search space. These particles also have a memory of where they have been. PSO is ideal for complex optimization problems with continuous variables- like finding portfolio or equation weights. I have created a simplified breakdown of the PSO methodology – which is actually much simpler and less esoteric than it appears. Essentially, PSO uses the familiar concept of momentum to move particles towards a solution.

pso equations

A graphic depiction of the tension between the global best and the particle best in determining the new particle position is presented below:

pso graphic


PSO is a very simple and useful methodology, and it has the added benefit of being much faster than Genetic Algorithms. However, its relative superiority is highly dependent on the type of problem. Typically the more continuous the variables are, and the less noisy and more continuous the search space is, the better its performance will be versus Genetic Algorithms–to make a broad and sweeping statement. But like anything else that is practical in the real world, it is best to consider hybrid methodologies that utilize the strengths of each method to create an even more flexible and efficient method.





Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: