58 IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, VOL. 6, NO. 1, FEBRUARY 2002 The Particle Swarm—Explosion, Stability, and Convergence in a Multidimensional Complex Space Maurice Clerc and James Kennedy Abstract—The particle swarm is an algorithm for finding op- timal regions of complex search spaces through the interaction of individuals in a population of particles. Even though the algorithm, which is based on a metaphor of social interaction, has been shown to perform well, researchers have not adequately explained how it works. Further, traditional versions of the algorithm have had some undesirable dynamical properties, notably the particles’ ve- locities needed to be limited in order to control their trajectories. The present paper analyzes a particle’s trajectory as it moves in discrete time (the algebraic view), then progresses to the view of it in continuous time (the analytical view). A five-dimensional de- piction is developed, which describes the system completely. These analyses lead to a generalized model of the algorithm, containing a set of coefficients to control the system’s convergence tendencies. Some results of the particle swarm optimizer, implementing modi- fications derived from the analysis, suggest methods for altering the original algorithm in ways that eliminate problems and increase the ability of the particle swarm to find optima of some well-studied test functions. Index Terms—Convergence, evolutionary computation, opti- mization, particle swarm, stability. I. INTRODUCTION P ARTICLE swarm adaptation has been shown to suc- cessfully optimize a wide range of continuous functions [1]–[5]. The algorithm, which is based on a metaphor of social interaction, searches a space by adjusting the trajectories of individual vectors, called “particles” as they are conceptualized as moving points in multidimensional space. The individual particles are drawn stochastically toward the positions of their own previous best performance and the best previous performance of their neighbors. While empirical evidence has accumulated that the algorithm “works,” e.g., it is a useful tool for optimization, there has thus far been little insight into how it works. The present analysis begins with a highly simplified deterministic version of the par- ticle swarm in order to provide an understanding about how it searches the problem space [4], then continues on to analyze the full stochastic system. A generalized model is proposed, in- cluding methods for controlling the convergence properties of the particle system. Finally, some empirical results are given, showing the performance of various implementations of the al- gorithm on a suite of test functions. Manuscript received January 24, 2000; revised October 30, 2000 and April 30, 2001. M. Clerc is with the France Télécom, 74988 Annecy, France (e-mail: Maurice. Clerc@WriteMe.com). J. Kennedy is with the Bureau of Labor Statistics, Washington, DC 20212 USA (e-mail: Kennedy_jim@bls.gov). Publisher Item Identifier S 1089-778X(02)02209-9. A. The Particle Swarm A population of particles is initialized with random positions and velocities and a function is evaluated, using the par- ticle’s positional coordinates as input values. Positions and ve- locities are adjusted and the function evaluated with the new coordinates at each time step. When a particle discovers a pat- tern that is better than any it has found previously, it stores the coordinates in a vector . The difference between (the best point found by so far) and the individual’s current position is stochastically added to the current velocity, causing the tra- jectory to oscillate around that point. Further, each particle is defined within the context of a topological neighborhood com- prising itself and some other particles in the population. The stochastically weighted difference between the neighborhood’s best position and the individual’s current position is also added to its velocity, adjusting it for the next time step. These adjustments to the particle’s movement through the space cause it to search around the two best positions. The algorithm in pseudocode follows. Intialize population Do For to Population Size if then For to Dimension sign abs Next Next Until termination criterion is met The variables and are random positive numbers, drawn from a uniform distribution and defined by an upper limit , which is a parameter of the system. In this version, the term vari- able is limited to the range for reasons that will be explained below. The values of the elements in are deter- mined by comparing the best performances of all the members of ’s topological neighborhood, defined by indexes of some other population members and assigning the best performer’s index to the variable . Thus, represents the best position found by any member of the neighborhood. The random weighting of the control parameters in the al- gorithm results in a kind of explosion or a “drunkard’s walk” as particles’ velocities and positional coordinates careen toward infinity. The explosion has traditionally been contained through 1089–778X/02$17.00 © 2002 IEEE