Firefly algorithm

This is an old revision of this page, as edited by Ruud Koot (talk | contribs) at 10:46, 17 July 2016 (Applications: WP:REFSPAM). 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. Xin-She Yang formulated this firefly algorithm by assuming:[1]

  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 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 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.

Implementation Guides

The   should be related to the scales of design variables. Ideally, the   term should be order one, which requires that   should be linked with scales. For example, one possible choice is to use   where   is the average scale of the problem. In case of scales vary significantly,   can be considered as a vector to suit different scales in different dimensions. Similarly,   should also be linked with scales. For example,  . It is worth pointing out the above description does not include the randomness reduction. In fact, in actual implementation by most researchers, the motion of the fireflies is gradually reduced by an annealing-like randomness reduction via   where  , though this value may depend on the number of iterations.[2] In some difficult problem, it may be helpful if you increase   at some stages, then reduce it when necessary. This non-monotonic variation of   will enable the algorithm to escape any local optima when in the unlikely case it might get stuck if randomness is reduced too quickly.

Parametric studies show that n (number of fireflies) should be about 15 to 40 for most problems.[3] A python implementation is also available, though with limited functionalities.[4]

Recent studies shows that the firefly algorithm is very efficient,[5] and could outperform other metaheuristic algorithms including particle swarm optimization.[6] Most metaheuristic algorithms may have difficulty in dealing with stochastic test functions, and it seems that firefly algorithm can deal with stochastic test functions[7] very efficiently. In addition, FA is also better for dealing with noisy optimization problems with ease of implementation.[8][9]

Chatterjee et al.[10] showed that the firefly algorithm can be superior to particle swarm optimization in their applications, the effectiveness of the firefly algorithm was further tested in later studies. In addition, firefly algorithm can efficiently solve non-convex problems with complex nonlinear constraints.[11][12] Further improvement on the performance is also possible with promising results.[13][14]

Theoretical Analysis

Although much progress has been achieved FA-based algorithms since 2008, significant efforts are required to further improve the performance of FA:[15]

  • Theoretical analysis for convergence trajectory;
  • Deriving the sufficient and necessary conditions for the selections of control coefficients;
  • Efficient strategies or mechanisms for the selections of the control parameters;
  • Non-homogeneous update rules for enhancing the search ability was proposed in ref.[16]

Further, classical variants of the algorithm have unexpected parameter settings and limited update laws, notably the homogeneous rule needs to be improved in order to do more search on different fitness landscape. Ref. analyzes the trajectory of a single firefly in the traditional algorithm and an adaptive variant, respectively. These analyses lead to a general model of the algorithms including a set of the boundary conditions for the parameters guaranteeing the convergence tendencies of the two algorithms.[17]

Variants of Firefly Algorithm

A recent, comprehensive review showed that the firefly algorithm and its variants have been used in almost all areas of science[18] There are more than twenty variants:

Adaptive Firefly Algorithm (AdaFa)

An adaptive variant of firefly algorithm, termed AdaFa,[19] was proposed in ref.[20] In AdaFa, the parameter selection and adaptation strategies are investigated. There are three strategies in AdaFa including (1) a distance-based light absorption coefficient; (2) a gray coefficient enhancing fireflies to share difference information from attractive ones efficiently; and (3) five different dynamic strategies for the randomization parameter. Promising selections of parameters in the strategies are analyzed to guarantee the efficient performance of AdaFa.

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.[21] DFA outperforms existing algorithms such as the ant colony algorithm.

For image segmentation, the FA-based method is far more efficient to Otsu's method and recursive Otsu.[22] Meanwhile, a good implementation of a discrete firefly algorithm for QAP problems has been carried out by Durkota.[23]

Multiobjective FA

An important study of FA was carried out by Apostolopoulos and Vlachos,[24] which provides a detailed background and analysis over a wide range of test problems including multobjective load dispatch problem.

Lagrangian FA

An interesting, Lagrangian firefly algorithm is proposed to solve power system optimization unit commitment problems.[25]

Chaotic FA

A chaotic firefly algorithm (CFA) was developed and found to outperform the previously best-known solutions available.[26]

Hybrid Algorithms

A hybrid intelligent scheme has been developed by combining the firefly algorithm with the ant colony optimization.[27]

Firefly Algorithm Based Memetic Algorithm

A firefly algorithm (FA) based memetic algorithm (FA-MA) is proposed to appropriately determine the parameters of SVR forecasting model for electricity load forecasting. In the proposed FA-MA algorithm, the FA algorithm is applied to explore the solution space, and the pattern search is used to conduct individual learning and thus enhance the exploitation of FA.[28]

Parallel Firefly Algorithm with Predation (pFAP)

An implementation for shared memory environments with the addition of a predation mechanism that helps the method to escape local optimum.[29]

Modified Firefly Algorithm

Many variants and modifications are done to increase its performance. A particular example will be modified firefly algorithm by Tilahun and Ong .,[30] in which the updating process of the brightest firefly is modified to keep the best result throughout the iterations. Another example is a modified firefly algorithm to solve univariate nonlinear equations having real as well as complex roots.[31]

See also

References

  1. ^ Yang, X. S. (2008). Nature-Inspired Metaheuristic Algorithms. Frome: Luniver Press. ISBN 1-905986-10-6.
  2. ^ http://www.mathworks.com/matlabcentral/fileexchange/29693-firefly-algorithm/content/fa_mincon.m
  3. ^ A simple demo Matlab code is available
  4. ^ https://code.google.com/p/csc6810project/
  5. ^ Yang, X. S. (2009). "Firefly algorithms for multimodal optimization". Stochastic Algorithms: Foundations and Applications, SAGA 2009. Lecture Notes in Computer Sciences. Vol. 5792. pp. 169–178. arXiv:1003.1466.
  6. ^ Lukasik, S.; Zak, S. (2009). Firefly algorithm for continuous constrained optimization task. Vol. 5796. pp. 97–100. {{cite book}}: |work= ignored (help)
  7. ^ Yang, X.-S. (2010). "Firefly algorithm, stochastic test functions and design optimisation". Int. J. Bio-inspired Computation. 2 (2): 78–84. arXiv:1003.1409. doi:10.1504/ijbic.2010.032124.
  8. ^ Chai-ead, N.; Aungkulanon, P.; Luangpaiboon, P. (2011). "Bees and firefly algorithms for noisy non-linear optimisation problems". Prof. Int. Multiconference of Engineers and Computer Scientists 2011. 2: 1449–1454.
  9. ^ Aungkulanon, P.; Chai-ead, N.; Luangpaiboon, P. (2011). "Simulated manufacturing process improvement via particle swarm optimisation and firefly algorithms". Prof. Int. Multiconference of Engineers and Computer Scientists 2011. 2: 1123–1128.
  10. ^ Chatterjee, A.; Mahanti, G. K.; Chatterjee, A. (2012). "Design of a fully digital controlled reconfigurable switched beam conconcentric ring array antenna using firefly and particle swarm optimization algorithm". Progress in Elelectromagnetic Research B. 36: 113–131. doi:10.2528/pierb11083005.
  11. ^ Yang, X. S.; Hosseini, S. S.; Gandomi, A. H. "Firefly algorithm for solving non-convex economic dispatch problems with valve loading effect". Applied Soft Computing. 12 (3): 1180–1186. doi:10.1016/j.asoc.2011.09.017.
  12. ^ Abdullah, A.; Deris, S.; Mohamad, M. S.; Hashim, S. Z. M. (2012). "A new hybrid firefly algorithm for complex and nonlinear problem, in: Distributed Computing and Artificial Intelligence". Advances in Intelligent and Soft Computing. 151: 673–680. doi:10.1007/978-3-642-28765-7_81.
  13. ^ Farahani, S. M.; Abshouri, A. A.; Nasiri, B.; Meybodi, M. R. (2012). "Some hybrid models to improve firefly algorithm performance". Int. J. Artificial Intelligence. 8 (S12): 97–117.
  14. ^ Nasiri, B.; Meybodi, M. R. (2012). "Speciation-based firefly algorithm for optimization in dynamic environments". Int. J. Artificial Intelligence. 8 (S12): 118–132.
  15. ^ Cheung, Ngaam J.; Ding, X.-M.; Shen, H.-B. (2016). "A Non-Homogeneous Firefly Algorithm and Its Convergence Analysis". Journal of Optimization Theory and Applications. doi:10.1007/s10957-016-0875-4.
  16. ^ Cheung, Ngaam J.; Ding, X.-M.; Shen, H.-B. (2014). "Adaptive Firefly Algorithm: Parameter Analysis and its Application". PLOS ONE. 9 (11): e112634. doi:10.1371/journal.pone.0112634.{{cite journal}}: CS1 maint: unflagged free DOI (link)
  17. ^ Cheung, Ngaam J.; Ding, X.-M.; Shen, H.-B. (2016). "A Non-Homogeneous Firefly Algorithm and Its Convergence Analysis". Journal of Optimization Theory and Applications. doi:10.1007/s10957-016-0875-4.
  18. ^ Fister, I.; Fister, Jr.; Yang, X. S.; Brest, J. (2013). "A comprehensive review of firefly algorithms". Swarm and Evolutionary Computation. 13 (1): 34–46. doi:10.1016/j.swevo.2013.06.001.
  19. ^ http://godzilla.uchicago.edu/pages/ngaam/AdaFa/index.html
  20. ^ Cheung, Ngaam J.; Ding, X.-M.; Shen, H.-B. (2014). "Adaptive Firefly Algorithm: Parameter Analysis and its Application". PLOS ONE. 9 (11): e112634. doi:10.1371/journal.pone.0112634.{{cite journal}}: CS1 maint: unflagged free DOI (link)
  21. ^ Sayadi, M. K.; Ramezanian, R.; Ghaffari-Nasab, N. (2010). "A discrete firefly meta-heuristic with local search for makespan minimization in permutation flow shop scheduling problems" (PDF). Int. J. of Industrial Engineering Computations. 1: 1–10. doi:10.5267/j.ijiec.2010.01.001.
  22. ^ T. Hassanzadeh, H. Vojodi and A. M. E. Moghadam, An image segmentation approach based on maximum variance intra-cluster method and firefly algorithm, in: Proc. of 7th Int. Conf. on Natural Computation (ICNC), pp. 1817-1821 (2011).
  23. ^ K. Durkota, Implementation of a discrete firefly algorithm for the QAP problem within the sage framework, BSc thesis, Czech Technical University, (2011). http://cyber.felk.cvut.cz/research/theses/papers/189.pdf
  24. ^ Apostolopoulos, T.; Vlachos, A. (2011). "Application of the Firefly Algorithm for Solving the Economic Emissions Load Dispatch Problem". International Journal of Combinatorics. 2011: Article ID 523806.
  25. ^ Rampriya B., Mahadevan K. and Kannan S., Unit commitment in deregulated power system using Lagrangian firefly algorithm, Proc. of IEEE Int. Conf. on Communication Control and Computing Technologies (ICCCCT), pp. 389-393 (2010).
  26. ^ L. dos Santos Coelho, D. L. de Andrade Bernert, V. C. Mariani, a chaotic firefly algorithm applied to reliability-redundancy optimization, in: 2011 IEEE Congress on Evolutionary Computation (CEC'11), pp. 517-521 (2011).
  27. ^ Giannakouris, G.; Vassiliadis, V.; Dounias, G. (2010). "Experimental study on a hybrid nature-inspired algorithm for financial portfolio optimization". SETN. 6040: 101–111. doi:10.1007/978-3-642-12842-4_14.
  28. ^ Zhongyi Hu, Yukun Bao, and Tao Xiong, Electricity Load Forecasting using Support Vector Regression with Memetic Algorithms, The Scientific World Journal, 2014, http://www.hindawi.com/journals/tswj/aip/292575/
  29. ^ E. F. P. Luz, H. F. Campos Velho, J. C. Becceneri, Firefly Algorithm with Predation: A parallel implementation applied to inverse heat conduction problem, in: Proc. of 10th World Congress on Computational Mechanics (WCCM 2012), (2012).
  30. ^ Tilahun, S. L.; Ong, H. C. "Modified Firefly Algorithm". Journal of Applied Mathematics. 2012: 467631.
  31. ^ Ariyaratne, M. K. A.; Fernando, T. G. I.; Weerakoon, S. (2015-08-01). "A modified firefly algorithm to solve univariate nonlinear equations with complex roots". 2015 Fifteenth International Conference on Advances in ICT for Emerging Regions (ICTer): 160–167. doi:10.1109/ICTER.2015.7377683.