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 12:30, 16 May 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) is 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 attracted 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 (for 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] Most metaheuristic algorithms may have difficulty in dealing with stochastic test functions, and it seems that firefly algorithm can deal with stochastic test functions[4] very efficiently.

Discrete Firefly Algorithm (DFA)

A discrete version of Firefly Algorithm, namely, Discrete Firefly Algorithm (DFA) proposed recently by M. K. Sayadi, R. Ramezanian and N. Ghaffari-Nasab can efficiently solve NP-hard scheduling problems[5] DFA outperforms existing algorithms such as the ant colony algorithm.

See also


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). eprint at http://arxiv.org/abs/1003.1466
  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).
  4. ^ Yang,X.-S., Firefly algorithm, stochastic test functions and design optimisation, Int. J. Bio-inspired Computation, Vol. 2, No. 2, pp. 78-84 (2010). eprint at http://arxiv.org/abs/1003.1409
  5. ^ M. K. Sayadi, R. Ramezanian and N. Ghaffari-Nasab, A discrete firefly meta-heuristic with local search for makespan minimization in permutation flow shop scheduling problems http://growingscience.com/ijiec/VOL1/IJIEC_2010_7.pdf