Firefly algorithm


In mathematical optimization, the firefly algorithm is a metaheuristic proposed by Xin-She Yang and inspired by the flashing behavior of fireflies.

Algorithm

In pseudocode the algorithm can be stated as:
Begin
1) Objective function:
2) Generate an initial population of fireflies
3) Formulate light intensity so that it is associated with
Define absorption coefficient
While
for i = 1 : n
for j = 1 : i

Vary attractiveness with distance r via
move firefly i towards j;
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
Note that the number of objective function evaluations per loop is one evaluation per firefly, even though the above pseudocode suggests it is n×n. Thus the total number of objective function evaluations is ×.
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. In fact, if the inner loop is removed and the brightness is replaced by the current global best, then FA essentially becomes the standard PSO.

Criticism

Nature-inspired metaheuristics in general have attracted criticism in the research community for hiding their lack of novelty behind an elaborate metaphor. The firefly algorithm has been criticized as differing from the well-established particle swarm optimization only in a negligible way.