Firefly algorithm
Firefly Algorithm
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.
The pseudo code can be summarized as
Begin
1) Objective function: ; 2) Generating initial population of fireflies ; 3) Light intensity is associate with ; 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).
Recent studies shows that the firefly algorithm is very efficient[2], and could outperform other metaheuristic algorithms including PSO.[3]
References
- ^ X. S. Yang, Nature-Inspired Metaheuristic Algorithms, Luniver Press, (2008)
- ^ 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).
- ^ 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).