  The firefly algorithm has become an increasingly important tool of Swarm
Intelligence that has been applied in almost all areas of optimization, as well
as engineering practice. Many problems from various areas have been
successfully solved using the firefly algorithm and its variants. In order to
use the algorithm to solve diverse problems, the original firefly algorithm
needs to be modified or hybridized. This paper carries out a comprehensive
review of this living and evolving discipline of Swarm Intelligence, in order
to show that the firefly algorithm could be applied to every problem arising in
practice. On the other hand, it encourages new researchers and algorithm
developers to use this simple and yet very efficient algorithm for problem
solving. It often guarantees that the obtained results will meet the
expectations.

Neural and Evolutionary Computing