I am working on an implementation of Particle Swarm that intelligently restarts a particle when its velocity reaches zero, so the particle can find a new starting point and continue its search. This question is about the best algorithmic or mathematical considerations for choosing a new position in the search space (this is not a programming question).
Let us introduce a tunable value called search_size that represents a percentage of the particle space; it indicates a search range from some particular best position (ie, +/- 10%).
There are two best positions being tracked:
- a "global best" (minima) for all particles
- a "local best" (minima) for only the particular particle whose |velocity| reached zero and needs a restart.
My options are to start the particle with a random position within search_size of either the global best (#1) or the local best (#2). Consiter this:
- If we use the global best so far (across all particles) and that position is not actually the global minimum, then it would encourage adding particles closer to what is not actually some local minima in the search space.
- If we use that particle's local best, and its local position is at or near a local minima (it cannot get any better), then we are restarting too close to where it left off to make progress.
Question:
Is there a compelling argument for using #1 or #2 (or even randomly choosing one either option)?
(I realized there may be a tendency to answer "try it and find out", but I am hoping for some feedback and consideration related to the algorithm, and how it would behave in each circumstance, to decide what the option would be in "most cases".)
Both options seem to favor finding the same minima repeatedly. Based on a slightly earlier meta-heuristic, simulated annealing, you might restart a particle by having it jump some distance in a random direction from its local minimum (however you define direction and distance in the space). As time passes, the jump distances decrease. The idea is that the randomness lets you find more minima and the 'cooling' guarantees convergence.