George Evers, MSE

Electrical Engineer with Programming Emphasis

Particle Swarm Optimization (Page 1)

Optimization Introduced
An optimization problem exists when a decision maker seeks to maximize or minimize a function value (e.g. profit or cost) and has control of at least some of the independent variables affecting that function value.  If the formula mapping inputs to output is understood and relatively straightforward, the decision maker may optimize inputs mathematically.  But if the formula is unknown or mathematically complicated, an optimization algorithm would be a better approach.

The number of inputs or decision variables to be optimized constitutes the problem dimensionality, n.  The higher the dimensionality, the more complicated the problem becomes.  Ideally, the decision maker seeks a global optimizer, which is a solution whose level of optimization cannot be outperformed by any other feasible, candidate solution.  It is often easier, however, to find a local optimizer, which is a relatively well-performing solution whose level of optimization cannot be outperformed by any other candidate solution in the same vicinity of the n-dimensional search space.

Particle Swarm Introduced
Particle Swarm Optimization (PSO) is a member of the Swarm Intelligence family of population-based optimizers.  It was presented by James Kennedy and Russell Eberhart in 1995: one paper that year focused on the now popular global best (gbest) model [1] and another on the local or neighborhood best (lbest) variant of the algorithm [2].  Each particle follows simple position and velocity update equations; yet as particles interact, the collective behavior becomes elaborate enough for the swarm to solve complicated problems.

Initialization of the Swarm
Each dimension of each particle’s initial position vector is randomly selected from a uniform distribution of feasible values (i.e. all feasible values have an equal probability of selection).  This random selection is repeated for each dimension of the n-dimensional search space, where n is the number of decision variables to be optimized: Fig. 2 of the HESTEC poster (large file: please be patient) uses n = 2 for illustrative purposes.  Similarly, velocity vectors are initialized from a uniform distribution on [-vmax, vmax] using a reasonable maximum velocity per dimension.

Personal Bests
Each position vector occupied throughout the search is a candidate solution to the optimization problem.  Each particle evaluates the cost function at its initial position and at each new position it encounters as it flies through the search space like a bird searching for a corn field [1].  In terms of function value, the best position found by any particle through the current iteration (i.e. a discrete interval in computation time, which may not have consistent width in real time) is its own personal best, toward which it accelerates (i.e. changes its velocity) in the following iteration via the second term of the velocity update equation presented on the next page.

                                                                              Page 1 | Page 2 | Page 3 | Page 4

To contact me:
george [at] georgeevers.org