Jump to content

Firefly algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Wahg8daan (talk | contribs) at 16:58, 9 August 2016 (The editing is to correct some of inaccuracy.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The primary purpose for a firefly's flash is to act as a signal system to attract other fireflies. Xin-She Yang formulated this firefly algorithm by assuming:

  1. All fireflies are unisexual, so that any individual firefly will be attracted to all other fireflies;
  2. Attractiveness is proportional to their brightness, and for any two fireflies, the less bright one will be attracted by (and thus move towards) the brighter one; however, the intensity (apparent brightness) decrease as their mutual distance increases;
  3. If there are no fireflies brighter than a given firefly, it will move randomly.

The firefly algorithm (FA) somehow looks like the PSO, but it has significant differences. First, the PSO updating equations are linear, while FA has a nonlinear equation. Second, as a result of nonlinearity, FA can have rich characteristics than those arisen from a linear system in PSO. Third, due to the fact that short-distance attraction is stronger than long-distance attraction in the FA, the population in FA can automatically subdivide into subgroups or subswarms, which give rise to a multi-swarm system.

The brightness should be associated with the objective function.

Algorithm

In pseudocode the algorithm can be stated as:

Begin
   1) Objective function: ;
   2) Generate an initial population of fireflies ;.
   3) Formulate light intensity I so that it is associated with 
      (for example, for maximization problems,  or simply ;)
   4) Define absorption coefficient γ
 
   While (t < MaxGeneration)
      for i = 1 : n (all n fireflies)
         for j = 1 : n (n fireflies)
            if (),
               move firefly i towards j;
               Vary attractiveness with distance r via ;
               Evaluate new solutions and update light intensity;
            end if 
         end for j
      end for i
      Rank fireflies and find the current best;
   end while

   Post-processing the results and visualization;

end

The main update formula for any pair of two fireflies and is

where is a parameter controlling the step size, while is a vector drawn from a Gaussian or other distribution.

It can be shown that the limiting case corresponds to the standard Particle Swarm Optimization (PSO). In fact, if the inner loop (for j) is removed and the brightness is replaced by the current global best , then FA essentially becomes the standard PSO.

See also

References