I just finished reading Maurice Clerc and James Kennedy’s 2002 paper “The Particle Swarm: Explosion, Stability, and Convergence in a Multidimensional Complex Space”. And what a great paper it was! They quickly decompose the dynamic system to the interactions of velocity and distance from the “best” or optimum-to-date, and show that when these relationships are represented in 2 dimensional real space, there’s a discontinuity at a certain value of the acceleration constant which arises from the eigenvalues of the matrix representation of the system.
Clerc and Kennedy are able not only to show exactly why this discontinuity arises, but also how to build a constraint coefficient that can effectively guarantee convergence on a local optimum, without specifying any problem-specific variables.
I was very impressed by the paper. It was well laid out, simply explained, and was not excessively verbose. More to the point, I now understand just what is going on in chapter 8 of Kennedy and Eberhart’s “Swarm Intelligence” book, and I’m happy about that. It was not strictly necessary to read the 2002 paper to get the results described in the book, but the paper did certainly illuminate the factors leading to explosion of the system.
Tonight after work, I’m going to actually implement Clerc’s Type 1 constraint coefficient, and will probably rewrite the current implementation from scratch while I’m at it. Aside from the challenges of putting together a proper visualization solution for the particle swarm (I’ll probably use Prefuse, having worked with it in the past), I also need to implement the standard set of unconstrained real-valued benchmark functions. Namely, De Jong’s functions, Schaffer’s, Griewank, Rosenbrock, and Rastragin. These functions are typically used for testing evolutionary optimization algorithms.
Once I have these benchmarks, and finish implementing the generalized particle swarm model, I can get on with my real area of interest, which is investigating the social influence aspect of the algorithm.