Particle Swarm Optimization is a class of stochastic, population based optimization techniques which are mostly suitable for static problems. However, real world optimization problems are time variant, i.e., the problem space changes over time. Several researches have been done to address this dynamic optimization problem using Particle Swarms. In this paper we probe the issues of tracking and optimizing Particle Swarms in a dynamic system where the problem-space drifts in a particular direction. Our assumption is that the approximate amount of drift is known, but the direction of the drift is unknown. We propose a Drift Predictive PSO (DriP-PSO) model which does not incur high computation cost, and is very fast and accurate. The main idea behind this technique is to use a few stagnant particles to determine the approximate direction in which the problem-space is drifting so that the particle velocities may be adjusted accordingly in the subsequent iteration of the algorithm.
DriP PSO- A fast and inexpensive PSO for drifting problem spaces
1. Zubin Bhuyan
Sourav Hazarika
Tezpur University,
Assam, INDIA
International Conf. on Science, Engineering &
Technology- 2012, Trichy, India
Full paper: http://zubinb.com/papers/T1_EC-346.pdf
2. Outline
PSO basics
The PSO Algorithm
Dynamic systems
Proposed PSO Models
Drift Predictive PSO
Experimental Results
Conclusion and Future Work
3. Swarm Intelligence
Swarm intelligence
collective behavior of simple rule-following agents
overall behavior of the entire system appears
intelligent
In Nature such behavior is seen in bird flocks,
fish schools, ant colonies and animal herds
Particle Swarm Optimization is a class of
stochastic, population based optimization
techniques
4. PSO Basics
PSO was developed in 1995 by James
Kennedy (social-psychologist) and Russell
Eberhart (electrical engineer). †
PSO is inspired from the concept of social
interaction and is used for problem solving.
A swarm of n agents or particles flies around
in the search space looking for the best
solution
Particles communicate directly or indirectly with one
another to determine its search direction.
† Kennedy, J. and Eberhart, R. (1995). “Particle Swarm Optimization”, Proceedings
of the 1995 IEEE International Conference on Neural Networks, pp. 1942-1948,
IEEE Press.
5. PSO Basics
pBest: Best value obtained so far by an
individual particle
Each particle has its own pBest
gBest: Best of all pBest
The basic concept of PSO is to accelerate
each particle toward
its own pBest, AND
the gBest locations
Usually with a random weighted acceleration at each
time step
6. PSO Basicsᵵ
sk
vk
vpbest
vgbest
sk+1
vk+1
sk
vk
vpbest
vgbest
sk+1
vk+1
Concept of modification of a searching point by PSO
x
y
sk : current searching point.
sk+1: modified searching point.
vk: current velocity.
vk+1: modified velocity.
vpbest : velocity based on pbest.
vgbest : velocity based on gbest
ᵵSlide taken from Varadarajan Komanduri, Research Assistant, ECE Dept.,Villanova University
http://www23.homepage.villanova.edu/varadarajan.komanduri/PSO_meander-line.ppt
8. PSO Algorithm
1. Initialize a population of particles randomly over a problem space
with random velocities.
2. Evaluate fitness of each particle.
3. If current fitness of particle is better than pbest, then set pbest
value equal to current fitness. Set pbest location to current
location.
4. If current fitness is better than gbest, reset gbest to current fitness
value. Set new gbest location to current location.
5. Change velocity according to the equation:
vvid = w *vid + c1 * rand() * (pid -xid) + c2 * rand() * (pgd -xid)
6. Change the position according to equation:
xid = xid + vid
Here w is inertia weight, c1 and c2 are acceleration constants, and
rand() is a random number generator function.
7. Loop back to Step 2 until end criterion is satisfied, or maximum
number of iterations is completed.
9. PSO Algorithm
vid = w *vid
+ c1 * rand() * (pid -xid)
+ c2 * rand() * (pgd -xid)
w: Inertia weight of current velocity
c1 : Acceleration component of cognitive part
c2 : Acceleration component of social part
xid = xid + vid
11. Dynamic Systems
Practical/Real world problems are time-varying
or dynamic
Problem space changing its state over time
Optima changes continuously
Changes may occur:
periodically in some predefined sequence
continuously in random fashion
12. Dynamic Systems ‡
Hu, et al, defines in [2] three types of basic
dynamic systems:
The location of the optimum value can
change
The location can remain constant but the
optimum value may vary
Both the location and the value of the
optimum can vary
‡ X. Hu, and R. C. Eberhart, “Adaptive Particle Swarm Optimization:
Response to Dynamic Systems” Proceedings of the 2002 Congress on
Evolutionary Computation, 2002.
13. Dynamic Systems
Particles might lose its global exploration
ability
Redundant pBest, gBest
Leads to unsatisfactory, unacceptable and
sub-optimal results
14. PSO for Dynamic Systems
Several propositions
Eberhart and Hu, 2002
“fixed gBest-value method” : If these two values
do not change for certain number of iterations
then a possible optimum change is declared
increase the accuracy and prevent false alarms
Charged-PSO: Blackwell and Bentley, 2002
Main idea: good balance between exploration and
exploitation
results in continuous search for better solution
15. PSO for Dynamic Systems
Cooperative split PSO: Rakitianskaia, et al, 2008
modified the charged-PSO
search space is divided into smaller subspaces, with
each subspace being optimised by a separate swarm
Cellular PSO: Hashemi , et al, 2009
hybrid model of particle swarm optimization and
cellular automata
population of particles is split into different groups
across cells of cellular automata by imposing a
restriction on number of particles in each cell
further modified by introducing temporary quantam
particles
17. Drip-PSO
Specifically designed for the scenario where the
problem-space drifts in an unknown direction
ASSUMPTION: Amount of drift is assumed to be
gradual
Most practical transitions are “not abrupt”
Change can be determined by LOCALITY searching
AIM: To determines the approximate direction in
which the problem-space is drifting
Adjust particle velocities accordingly in the
subsequent iteration of the algorithm
19. Drip-PSO: Detecting the drift
direction
In each iteration a small number of stagnant
particles are selected
They do not change their positions for that
particular round
If a change is detected by them,
Generate 4 sub-particles resting on
a circular orbit of radius ρ
the sub-particles will be placed at
right angle to one another
20. Drip-PSO
Pi has been selected as a stagnant particle.
It detects change in its fitness (despite the fact
that its position did not change)
Pi expands its sub-particle orbit
Two sub-particles, are selected such
that
previous fitness of the Pi lies between the fitness
values of the two selected sub-particles
21. Drip-PSO: Calculating the Drift
The approximate direction of drift, i.e. the
direction in which the adjustment is required,
is given by
22. Drip-PSO: Calculating the Drift
The approximate direction of drift, i.e. the direction
in which the adjustment is required, is given by
is the angle representing the direction of adjustment of
α is the previous fitness value of Pi
α ∊ [ Sk, Pi, Sj,Pi ]
are the angles at which
the selected sub-particles are oriented
are fitness values
23. Drip-PSO: Calculating the Drift
is calculated by all stagnant particles.
Weighted average of all ξ is taken and added as
an extra term to the velocity equation as shown
Weight for a particular ξ is calculated using
is the number of times the value occurs,
n is the total number of stagnant particles.
26. Experimental Setup
Test tool for the the proposed model was implemented in C# WPF
(.Net Framework 4.0)
Functions used for testing: Sphere, Step, Rastrigin, Rosenbrock
and an arbitrary peak function
Screen shot of PSO
Test Tool
27. Experimental Setup
Sphere function
f(x, y) = x2
+ y2
Arbitrary Peaks function
f(x, y) = 1 – [3(1-x)2
e-x2
–
(y+1)2
+ 10(x/5 – x3
– y5
)e-
(x2+y2)
– 1/3e-(x+1)2-y2
Step function
f(x, y) = |x| + |y|
Test tool for the the proposed model was implemented in C#
WPF (.Net Framework 4.0)
Functions used for testing: Sphere, Step, Rastrigin,
Rosenbrock and an arbitrary peak function
28. We simulate a dynamic system the test tool drifts
the problem space in any direction, by applying an
offset, λ, in every dimension
ft+1 = ft(x - λ, y - λ)
Offset is varied in the range [0.01, 0.09]
The range of x and y is [-3, 3]
c1 and c2 are set at 1.49618.
Swarm size = 25 and 35
Experimental Setup
29. Experimental Results
Percent error in finding global
minima
Function Standard PSO
Drift Predictive
PSO
Sphere 6.799% 2.571%
Step 9.847% 2.091%
Rastrigin 29.900% 9.143%
Rosenbrock 24.616% 3.592%
Arbitrary Peaks 27.629% 5.126%
RESULTS OF DRIP-PSO IN DYNAMIC SCENARIO USING 25
PARTICLES
30. Experimental Results
RESULTS OF DRIP-PSO IN DYNAMIC SCENARIO USING 35
PARTICLES
Percent error in finding global
minima
Function
Standard
PSO
Drift Predictive
PSO
Sphere 5.021% 1.871%
Step 8.268% 1.438%
Rastrigin 25.728% 7.895%
Rosenbrock 21.616% 2.332%
Arbitrary Peaks 25.744% 4.661%
31. Conclusion
Drip-PSO gives more accurate result for
dynamic systems
Less computational cost
Only few particles need to perform extra
calculation
Implemented in Atmega32
32. Future Work
Can be modified to detect several probable
local optima
then explore by splitting the entire swarm into
sub-swarms
Comparison with other PSOs
33. Acknowledgement
Gunther Maurice
Helped us in designing the class structure
Tuhin Bhuyan, JEC, Assam
Gave us the idea of making the test tool multi-
threaded by using .Net Framework ThreadPool
The first papers on the topic, by Kennedy and Eberhart, were presented in 1995; since then more than ten thousand articles and papers have been published on particle swarms.Kennedy also worked as a professional musician for twenty years and currently plays in a band called The Colliders!