BFB 0040810
BFB 0040810
Y u h u i Shi and R u s s e l l C. E b e r h a r t
Department of Electrical Engineering
lndiana University Purdue University Indianapolis
723 W. Michigan St., SL160
Indianapolis, IN 46202
shi,[email protected]
Abstract
This paper first analyzes the impact that inertia weight and maximum velocity have on
the performance of the particle swarm optimizer, and then provides guidelines for
selecting these two parameters. Analysis of experiments demonstrates the validity of
these guidelines.
Introduction
Different from traditional search algorithms, evolutionary computation techniques
work on a population of potential solutions (points) of the search space. Through
cooperation and competition among the potential solutions, these techniques often can
find optima more quickly when applied to complex optimization problems. The most
commonly used population-based evolutionary computation techniques are motivated
from the evolution of nature. Four well-known examples are genetic algorithms [6],
evolutionary programming [5], evolution strategies [10] and genetic programming [9].
Different from these evolution-motivated evolutionary computation techniques, a new
evolutionary computation technique, called particle swarm optimization (PSO), is
motivated from the simulation of social behavior. PSO was originally designed and
developed by Eberhart and Kennedy [3,4,7,8]. By adding a new inertia weight into
PSO, a new version of PSO is introduced in [13]. In PSO, instead of using genetic
operators, each particle (individual) adjusts its "flying" according to its own flying
experience and its companions' flying experience. Each particle is treated as a point in
a D-dimensional space. The ith particle is represented as XI = (Xil,Xi2. . . . . x~). The
best previous position (the position giving the best fitness value) of the ith particle is
recorded and represented as PI = (Pil,pi2. . . . . p~o). The index of the best particle among
all the particles in the population is represented by the symbol g. The rate of the
position change (velocity) for particle i is represented as VI = ( v i i , v i 2 . . . . . ViD). The
particles are manipulated according to the following equation:
where Cl and c2 are two positive constants, rand() and Rand() are two random
functions in the range [0,1], and w is the inertia weight. Equation (la) is used to
calculate the particle's new velocity according to its previous velocity and the distances
of its current position from its own best experience (position) and the group's best
experience. Then the particle flies toward a new position according to equation (lb).
592
Analysis
PSO, to some extent, resembles evolutionary programming, and is also related to
cultural algorithms [11]. The addition of velocity to the current position to generate
the next position is similar to the mutation operation in evolutionary programming
except that "mutation" in PSO is guided by a particle's own "flying" experience and
the group's "flyin~' experience. In another words, PSO performs "mutation" with a
"conscience." By looking at the personal best elements associated with each individual
as additional population members, PSO also has a form of selection even though it is
quite weak [1]. In evolutionary programming, the global and local exploration abilities
are brought in by mutation and controlled by the variances of the Gaussian random
functions used. In order to balance between the global and local exploration abilities
and obtain a quick search, the variances can also be encoded into the individuals and
therefore evolved simultaneously, as done in evolution strategy [10]. In PSO the
balance between the global and local exploration abilities is mainly controlled by the
inertia weights. In [13], experiments have been performed to illustrate this. By setting
the maximum velocity allowed to be two, it was found that PSO with an inertia weight
in the range [0.9, 1.2] on average has a better performance; that is, it has a greater
chance to find the global optimum within a reasonable number of iterations.
Furthermore, a time decreasing inertia weight from 1.4 to 0 is found to be better that a
fixed inertia weight. This is because the larger inertia weights at the beginning help to
find good seeds and the later small inertia wcights facilitate fine search.
By looking at equation (1) more closely, it can be seen that the maximum velocity
allowed actually serves as a constraint that controls the maximum global exploration
ability PSO can have. By setting a too small maximum velocity allowed, maximum
global exploration ability is limited, and PSO will always favor a local search no
matter what the inertia weight is. By setting a large maximum velocity allowed, then
the PSO can have a large range of exploration ability to select by selecting the inertia
weight. Since the maximum velocity allowed affects global exploration ability
indirectly and the inertia weight affects it directly, it will generally be better to control
global exploration ability through inertia weight only. A way to do that is to delete
maximum velocity allowed in the algorithm implementation, and allow inertia weight
itself to control exploration ability. But this should be done with care, since it's not a