Particle Swarm Optimization on Multi-Funnel Functions Ryan Forbes and Mohammad Nayeem Teli Computer Science Colorado State University Fort Collins, Colorado 80523 Email: forbesr,
[email protected]
Abstract Particle swarm optimization (PSO) is a population based algorithm in which particles “fly” about the search space with trajectories influenced by their own search history as well as that of the rest of the swarm. It has been shown that there is some deficiency in PSO when applied to multi-funnel functions. In this paper we hypothesize that PSO’s poor performance on multi-funnel functions is caused by a lack diversity. We present three PSO variants designed to improve the diversity of PSO, and we show that the performance of these variants support our hypothesis.
Introduction Particle Swarm Optimization (PSO) is a population based search algorithm. Proposed by Kennedy and Eberhart in (Eberhart & Kennedy ), it was originally created to model the flocking of birds to find food. Since it’s creation, it has been applied in many different areas, but many of the test functions used to benchmark it are single-funnel functions with optima located at the origin. A funnel may be simply described as follows. If there is an overall downward trend (ignoring small to moderate perturbations) in some area of a function, then that area may be called a funnel. For a better discussion on the definition of funnels, see Sutton, et al.(Sutton & Howe ). Sutton, et al. showed that basic, or off-the-shelf PSO may not perform well overall on multi-funnel functions. Specifically, they found that “the choice of funnel region in which the majority of the swarm is initialized does have an impact on which region the swarm converges.”(Sutton & Howe ). Previous work done on PSO with single and multi-funnel functions triggered two important questions: 1. Does PSO work well for multi-funnel functions? 2. Why or why not? More specifically, does PSO yield solutions from the optimal funnel as often for multi-funnel functions as for singlefunnel functions, and if not, what aspects of PSO can be modified to improve it? Pilot experiments with random (rather than regional) initialization suggest that off the shelf PSO is not well suited to solve multi-funnel functions. We will investigate more thoroughly, but hypothesize that premature convergence and a
lack of diversity cause PSO to work poorly on multi-funnel functions. In this paper we first present an overview of the development of PSO. Then, in the Methods section, we present an “off the shelf” PSO method, a simple modification of PSO, and two novel PSO methods. Four test functions will then be defined, followed by a section describing our experiments. We will then present results that will show PSO’s performance with random initialization using metrics similar to those used by Sutton, et al. We will also test the variants of PSO, designed to increase diversity, with the intention of verifying our hypothesis. In the final four sections we discuss our results, summarize our findings, present future work, and close with a discussion of the project itself.
Related Work Little work has been done with multi-funnel functions and PSO, but a well accepted “off the shelf” variant has been developed over the years. This section details its development. Particle swarm optimizer in its original form (Eberhart & Kennedy ) was a simple optimizer with velocity and position update rules vt =vt−1 + r1 φ1 (Pb − xt−1 ) + r2 φ2 (Nb − xt−1 ) xt =xt−1 + vt In (Kennedy 1997) the terms r1 φ1 (Pb − xt−1 ) and r2 φ2 (Nb − xt−1 ) are referred to as the cognitive and the social components respectively. These values were set to be the same so that both components have the same effect on the search. An inertia factor, ω, was introduced in (Eberhart & Shi 1998). In (Clerc & Kennedy ), a constriction factor χ was introduced to restrict velocity and control it. In (Eberhart 2000), it was reported that using χ, combined with a good value of Vmax (the maximum velocity at initialization), greatly improved the performance of PSO. χ is computed as 2 p χ= |2 − φ − φ2 − 4φ| where φ = φ1 +φ2 and the velocity update equation became vt = χ(vt−1 + r1 φ1 (Pb − xt−1 ) + r2 φ2 (Nb − xt−1 ))
This constriction factor, χ seems to be the version that is most popularly used today.
It was suggested by (Carlisle & Dozier 2001) that φ1 = 2.8 and φ2 = 1.3, which matches the assertion in (Kennedy 1998) that φ1 + φ2 should equal 4.1. Carlisle and Dozier ran a lot of experiments testing PSO with different population and neighborhood sizes, synchronous or asynchronous updates, cognitive/social ratio, magnitude of φ, and the range of initial velocities, (0,Vmax). They came up with a set of off the shelf parameters for PSO. These included population size = 30, using a global neighborhood (so Nb is chosen from Pb of all particles), φ1 = 2.8, and φ2 = 1.3. They also concluded that for problems where the search space must be bound (as with test functions), when a particle reaches the edge of the search space, its velocity should be set to zero. Further, if the search space is not explicitly bound, then Vmax should not be enforced. These parameter values are recommended as a starting point for experiments using PSO.
respect to the restriction of the search space. They recommended that when a particle reaches the edge of the search space, its velocity should be set to zero. Our pilot experiments indicated that this worked well for single-funnel functions, but reduced the performance on multi-funnel functions. Instead, the search space was bound implicitly by causing the function to be evaluated as a value larger than any other value in the valid search space. Each of the following methods use the same parameters unless otherwise noted. When a method uses a φ3 parameter, the value of φ used in Clerc’s constriction formula is taken to be φ1 + φ2 + φ3 .
PSO with neighborhood best
Here we present our methods. All of the variants were designed to deviate as little as possible from the off the shelf PSO, while increasing diversity. For that reason, we will present the off the shelf PSO (OTSPSO) in detail, then we will present only the aspects of the other methods that deviate from OTSPSO.
The previous work mentioned above recommends the use of a global neighborhood. We chose to investigate how this affected the performance of PSO with multi-funnel functions, feeling that using a local neighborhood would increase the diversity of PSO. PSO with neighborhood best (PSONB) follows OTSPSO exactly, except that the Nb term is not the global best, but the best solution seen by the k neighbors of the particle being updated. Particles’ neighbors are defined not by their proximity in the search space, but by their proximity in the underlying data structure. We used k = 40 neighbors based on the results of pilot experiments.
Off the shelf PSO
PSO with second global best
In PSO, a particle in the swarm samples the search space by “flying” in a direction defined by a weighted sum of the best solution found by the individual and the best solution found by some neighborhood of particles. Thus each particle is defined by x, v ∈