|
Particle Swarm Optimization
is an optimization technique which provides
an evolutionary based search. This search algorithm
was introduced by
Dr Russ
Eberhart and Dr James Kennedy in 1995. James
is a social psychologist and is from the Bureau
of Labor Stats, Washington DC. Russ is an electrical
engineer from Purdue school of engineering and
technology, indianapolis. The term PSO refers
to a relatively new family of algorithms that
may be used to find optimal or near to optimal
solutions to numerical and qualitative problems.
It is implemented easily in most of the programming
languages since the core of the program can be
written in a single line of code and has proven
both very effective and quick when applied to
a diverse set of optimization problems.
PSO algorithms are especially
useful for parameter optimization in continuous,
multi-dimensional search spaces. PSO is mainly
inspired by social behaviour patterns of organisms
that live and interact within large groups. In
particular, PSO incorporates swarming behaviours
observed in flocks of birds, schools of fish,
or swarms of bees.
The connection to search and
optimization problems is made by assigning direction
vectors and velocities to each point in a multi-dimensional
search space. Each point then 'moves' or 'flies'
through the search space following its velocity
vector, which is influenced by the directions
and velocities of other points in its neighbourhood.
These localized interactions with neighbouring
points propagate through the entire 'swarm' of
potential solutions. How much influence a particular
point has on other points is determined by its
'fitness', that is a measure assigned to a potential
solution, which captures how good it is compared
to all other solution points. Hence, an evolutionary
idea of 'survival of the fittest' (in the sense
of Darwinian evolution; Darwin 1996) comes into
play, as well as a social behaviour component
through a 'follow the local leader' effect (White
1959) and emergent pattern formation (Bonabeau
et al. 1999).
We explain the PSO algorithm in detail and demonstrate
its performance on one-,two- and multi-dimensional continuous
search problems.
PSO Algorithm
1) Initialize the population - locations and velocities
2) Evaluate the fitness of the individual particle
(pBest)
3) Keep track of the individuals highest fitness
(gBest)
4) Modify velocities based on pBest and gBest
position
5) Update the particles position
6) Terminate if the condition is met
7) Go to Step 2
Each particle keeps track
of its coordinates in the problem space which
are associated with the best solution (fitness)
it has achieved so far. The fitness value is also
stored. This value is called pbest . When
a particle takes all the population as its topological
neighbors, the best value is a global best and
is called gbest .
After finding the two best values, the particle
updates its velocity and positions with following
equation (a) and (b).
(a) v[] = v[] + c1 * rand()
* (pbest[] - present[]) + c2 * rand() * (gbest[]
- present[])
(b) present[] = persent[] + v[]
Detailed Algorithm

Experiment 1
Experiment 2

Experiment 3

|