Jump to content

Firefly algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Algorithmgeek (talk | contribs) at 22:12, 7 January 2010 (Algorithm description). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The firefly algorithm (FA) was a metaheuristic algorithm, inspired by the flashing behaviour of fireflies. The primary purpose for a firefly's flash is to act as a signal system to attract other fireflies. Yang[1] formulated this firefly algorithm by assuming:

  1. All fireflies are unisex, so that one firefly will be attract to all other fireflies;
  2. Attractiveness is proportional to their brightness, and for any two fireflies, the less brighter one will attract (and thus move) to the brighter one; however, the brightness can decrease as their distance increases;
  3. If there are no fireflies brighter than a given firefly, it will move randomly.

The brightness should be associated with the objective function.

Firefly algorithm is a nature-inspired metaheuristic optimization algorithm.

Algorithm description

The pseudo code can be summarized as:

Begin

1) Objective function: ;
2) Generate an initial population of fireflies ;.
3) Formulate light intensity  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;
         end if 
      Vary attractiveness with distance r via ;
      Evaluate new solutions and update light intensity;
      end for j
   end for i
   Rank fireflies and find the current best;
end while
Post-processing the results and visualization;

end

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

A simple demo Matlab code is available matlab code'

Recent studies shows that the firefly algorithm is very efficient[2], and could outperform other metaheuristic algorithms including particle swarm optimization.[3]

References

  1. ^ X. S. Yang, Nature-Inspired Metaheuristic Algorithms, Luniver Press, (2008)
  2. ^ X. S. Yang, Firefly algorithms for multimodal optimization, in: Stochastic Algorithms: Foundations and Applications, SAGA 2009, Lecture Notes in Computer Sciences, Vol. 5792, pp. 169-178 (2009).
  3. ^ S. Lukasik and S. Zak, Firefly algorithm for continuous constrained optimization task, ICCCI 2009, Lecture Notes in Artificial Intelligence (Eds. N. T. Ngugen, R. Kowalczyk, S. M. Chen), Vol. 5796, 97-100 (2009).