# Firefly algorithm

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 one 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 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: $f(\mathbf{x}), \quad \mathbf{x}=(x_1,x_2,...,x_d)$;
2) Generate an initial population of fireflies $\mathbf{x}_i \quad (i=1,2,\dots,n)$;.
3) Formulate light intensity $I$ so that it is associated with $f(\mathbf{x})$
(for example, for maximization problems, $I \propto f(\mathbf{x})$ or simply $I=f(\mathbf{x})$;
4) Define absorption coefficient $\gamma$
While (t<MaxGeneration)
for i=1:n (all n fireflies)
for j=1:n (n fireflies)
if ($I_j>I_i$),
move firefly i towards j;
end if
Vary attractiveness with distance r via $\exp(-\gamma \; r)$;
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


The main update formula for any pair of two fireflies $\mathbf{x}_i$ and $\mathbf{x}_j$ is

$\mathbf{x}_i^{t+1}=\mathbf{x}_i^t + \beta \exp[-\gamma r_{ij}^2] (\mathbf{x}_j^t - \mathbf{x}_i^t) +\alpha_t \boldsymbol{\epsilon}_t$

where $\alpha_t$ is a parameter controlling the step size, while $\boldsymbol{\epsilon}_t$ is a vector drawn from a Gaussian or other distribution.

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

## Implementation Guides

The $\gamma$ should be related to the scales of design variables. Ideally, the $\beta$ term should be order one, which requires that $\gamma$ should be linked with scales. For example, one possible choice is to use $\gamma=1/\sqrt{L}$ where $L$ is the average scale of the problem. In case of scales vary significantly, $\gamma$ can be considered as a vector to suit different scales in different dimensions. Similarly, $\alpha_t$ should also be linked with scales. For example, $\alpha_t \leftarrow 0.01 L \alpha_t$. 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 $\alpha=\alpha_0 \delta^t$ where $0< \delta <1 (e.g. \delta=0.97)$.[2] In some difficult problem, it may be helpful if you increase $\alpha_t$ at some stages, then reduce it when necessary. This non-monotonic variation of $\alpha_t$ 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]

A. Chatterjee et al.[10] shows that the firefly algorithm is superior to particle swarm optimization in some applications. 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]

## Variants of Firefly Algorithm

### 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.[15] 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.[16] Meanwhile, a good implementation of a discrete firefly algorithm for QAP problems has been carried out by Durkota.[17]

### Multiobjective FA

An important study of FA was carried out by Apostolopoulos and Vlachos,[18] 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.[19]

### Chaotic FA

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

### Hybrid Algorithms

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

### 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.[22]

## Applications

### Digital Image Compression and Image Processing

Very recently, an FF-LBG algorithm for vector quantization of digital image compression was based on the firefly algorithm, which proves to be faster than other algorithms such as PSO-LBG and HBMO-LBG (particle swarm optimization and honey-bee mating optimization; variations on the Linde–Buzo–Gray algorithm).[23] [24] For minimum cross entropy thresholding, firefly-based algorithm uses the least computation time[25] Also, for gel electrophoresis images, FA-based method is very efficient.[26]

### Eigenvalue optimization

Eigenvalue optimization of isospectral systems has solved by FA and multiple optimum points have been found efficiently.[27]

### Feature selection and fault detection

Feature selection can be also carried out successfully using firefly algorithm.[28] Real-time fault identification in large systems becomes viable, based on the recent work on fault identification with binary adaptive firefly optimization.[29]

### Antenna Design

Firefly algorithms outperforms ABC for optimal design of linear array of isotropic sources [30] and digital controllable array antenna.[31]

### Structural Design

For mixed-variable problems, many optimization algorithms may struggle. However, firefly algorithm can efficiently solve optimization problems with mixed variables.[32]

### Scheduling and TSP

Firefly-based algorithms for scheduling task graphs and job shop scheduling requires less computing than all other metaheuristics.[33][34] A binary firefly algorithm has been developed to tackle the knapsack cryptosystem efficiently[35] Recently, an evolutionary discrete FA has been developed for solving travelling salesman problems[36] Further improvement in performance can be obtained by using preferential directions in firefly movements.

### Semantic Web Composition

A hybrid FA has been developed by Pop et al. for selecting optimal solution in semantic web service composition.[37]

### Chemical Phase equilibrium

For phase equilibrium calculations and stability analysis, FA was found to be the most reliable compared with other techniques.[38]

### Clustering

Performance study for clustering also suggested that firefly algorithm is very efficient.[39]

### Dynamic Problems

Firefly algorithm can solve optimization problems in dynamic environments very efficiently. [40][41]

### Rigid Image Registration Problems

Firefly algorithm can solve the rigid image registration problems more efficient than genetic algorithm, particle swarm optimization, and artificial bee colony [42]

## 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
5. ^ Yang, X. S. (2009). "Firefly algorithms for multimodal optimization". Stochastic Algorithms: Foundations and Applications, SAGA 2009. Lecture Notes in Computer Sciences 5792. pp. 169–178. arXiv:1003.1466.
6. ^ Lukasik, S.; Zak, S. (2009). "Firefly algorithm for continuous constrained optimization task". ICCCI 2009, Lecture Notes in Artificial Intelligence (Eds. N. T. Ngugen, R. Kowalczyk, S. M. Chen) 5796. pp. 97–100.
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.
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. ^ A. Chatterjee, G. K. Mahanti, and A. Chatterjee, 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, Vol. 36, 113-131(2012)
11. ^ X. S. Yang, S. S. Hosseini, A. H. Gandomi, Firefly algorithm for solving non-convex economic dispatch problems with valve loading effect, Applied Soft Computing, Vol. 12(3), 1180-1186(2012)
12. ^ A. Abdullah, S. Deris, M. S. Mohamad and S. Z. M. Hashim, A new hybrid firefly algorithm for complex and nonlinear problem, in: Distributed Computing and Artificial Intelligence, Advances in Intelligent and Soft Computing, 2012, Volume 151/2012, 673-680, doi:10.1007/978-3-642-28765-7_81
13. ^ S. M. Farahani, A. A. Abshouri, B. Nasiri, M. R. Meybodi, Some hybrid models to improve firefly algorithm performance, Int. J. Artificial Intelligence, Vol. 8 S(12), 97-117 (2012)
14. ^ B. Nasiri, M. R. Meybodi, Speciation-based firefly algorithm for optimization in dynamic environments, Int. J. Artificial Intelligence, Vol. 8 (S12), 118-132 (2012)
15. ^ 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". Int. J. of Industrial Engineering Computations 1: 1–10.
16. ^ 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).
17. ^ 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
18. ^ 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.
19. ^ 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).
20. ^ 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).
21. ^ G. Giannakouris, V. Vassiliadis and G. Dounias, Experimental study on a hybrid nature-inspired algorithm for financial portfolio optimization, SETN 2010, LNAI 6040, pp. 101-111 (2010).
22. ^ 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).
23. ^ Horng M.-H. and Jiang T. W., The codebook design of image vector quantization based on the firefly algorithm, in: Computational Collective Intelligence, Technologies and Applications, LNCS, Vol. 6423, pp. 438-447 (2010).
24. ^ M.-H. Horng, vector quantization using the firefly algorithm for image compression, Expert Systems with Applications, Vol. 38, (article in press) 12 Aug. (2011).
25. ^ M.-H. Horng and R.-J Liou, Multilevel minimum cross entropy threshold selection based on the firefly algorithm, Expert Systems with Applications, Vol. 38, Issue 12, 14805-14811 (2011).
26. ^ M. H. M. Noor, A. R. Ahmad, Z. Hussain, K. A. Ahmad, A. R. Ainihayati, Multilevel thresholding of gel electrophoresis images using firefly algorithm, in: Proceedings of Control System, Computing and Engineering (ICCSCE2011), pp. 18-21 (2011).
27. ^ R. Dutta, R. Ganguli and V. Mani, Exploring isospectral spring-mass systems with firefly algorithm, Proc. Roy. Soc. A., Vol. 467, (2011)http://rspa.royalsocietypublishing.org/content/early/2011/06/16/rspa.2011.0119.abstract
28. ^ H. Banati and M. Bajaj, Firefly based feature selection approach, Int. J. Computer Science Issues, vol. 8, No. 2, 473-480 (2011).
29. ^ R. Falcon, M. Almeida and A. Nayak, Fault identification with binary adaptive fireflies in parallel and distributed systems, IEEE Congress on Evolutionary Computation, (2011).
30. ^ B. Basu and G. K. Mahanti, Firefly and artificial bees colony algorithm for synthesis of scanned and broadside linear array antenna, Progress in Electromagnetic Research B., Vol. 32, 169-190 (2011).
31. ^ A. Chatterjee, G. K. Mahanti, and A. Chatterjee, 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, Vol. 36, 113-131(2012)
32. ^ A. H. Gandomi, X. S. Yang, A. H. Alavi, Mixed variable structural optimization using firefly algorithm, Computers and Structures, Vol. 89, No. 23-24, pp. 2325-2336 (2011). doi:10.1016/j.compstruc.2011.08.002
33. ^ U. Hönig, A firefly algorithm-based approach for scheduling task graphs in homogenous systems, Proceeding Informatics, doi:10.2316/P.2010.724-033, 724 (2010).
34. ^ A. Khadwilard, S. Chansombat, T. Thepphakorn, P. Thapatsuwan, W. Chainat, P. Pongcharoen, Application of firefly algorithm and its parameter setting for job shop scheduling, First Symposius on Hands-On Research and Development, (2011).
35. ^ S. Palit, S. Sinha, M. Molla, A. Khanra, M. Kule, A cryptanalytic attack on the knapsack cryptosystem using binary Firefly algorithm, in: 2nd Int. Conference on Computer and Communication Technology (ICCCT), 15-17 Sept 2011,India, pp. 428-432 (2011).
36. ^ G. K. Jati and S. Suyanto, Evolutionary discrete firefly algorithm for travelling salesman problem, ICAIS2011, Lecture Notes in Artificial Intelligence (LNAI 6943), pp.393-403 (2011).
37. ^ C. B. Pop, V. R. Chifu, I. Salomie,R. B. Baico, M. Dinsoreanu, G. Copil, A hybrid firefly-inspired approach for optimal semantic web service composition, in: Proc. of 2nd Workshop on Software Services: Cloud Computing and Applications, June, 2011.
38. ^ S. E. Fateen, A. Bonilla-Petrociolet, G. P. Rangaiah, Evaluation of covariance matrix adaptation evolution strategy, shuffled complex evolution and firefly algorithms for phase stability, phase equilibrium and chemical equilibrium problems, Chemical Engineering Research and Design, May (2012). http://dx.doi.org/10.1016/j.cherd.2012.04.011
39. ^ J. Senthilnath, S. N. Omkar and V. Mani, Clustering using firefly algorithm: Performance study, Swarm and Evolutionary Computation, June (2011). doi:10.1016/j.swevo.2011.06.003
40. ^ S. M. Farahani, B. Nasiri and M. R. Meybodi, A multiswarm based firefly algorithm in dynamic environments, Third Int. Conference on Signal Processing Systems (ICSPS2011), Aug 27-28, Yantai, China, pp. 68-72 (2011)
41. ^ A. A. Abshouri, M. R. Meybodi and A. Bakhtiary, New firefly algorithm based on multiswarm and learning automata in dynamic environments, Third Int. Conference on Signal Processing Systems (ICSPS2011), Aug 27-28, Yantai, China, pp. 73-77 (2011).
42. ^ Yudong Zhang and Lenan Wu, A Novel Method for Rigid Image Registration based on Firefly Algorithm, International Journal of Research and Reviews in Soft and Intelligent Computing, vol.2, no.2, pp. 141-146 (2012).