Firefly algorithm

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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

Algorithm

[edit | edit source]

In pseudocode the algorithm can be stated as:

Begin
    1) Objective function: f(đ±),đ±=(x1,x2,...,xd);
    2) Generate an initial population of fireflies đ±i(i=1,2,,n);.
    3) Formulate light intensity I so that it is associated with f(đ±)
       (for example, for maximization problems, I∝f(đ±) or simply I=f(đ±);)
    4) Define absorption coefficient γ

    while (t < MaxGeneration)
        for i = 1 : n (all n fireflies)
            for j = 1 : i (n fireflies)
                if (Ij>Ii),
                    Vary attractiveness with distance r via exp(−γr);
                    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
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. (Based on Yang's MATLAB code.) Thus the total number of objective function evaluations is (number of generations) × (number of fireflies).

The main update formula for any pair of two fireflies đ±i and đ±j is đ±it+1=đ±it+ÎČexp[−γrij2](đ±jtâˆ’đ±it)+αt𝝐t where αt is a parameter controlling the step size, while 𝝐t is a vector drawn from a Gaussian or other distribution.

It can be shown that the limiting case γ→0 corresponds to the standard particle swarm optimization (PSO). In fact, if the inner loop (for j) is removed and the brightness Ij is replaced by the current global best g*, then FA essentially becomes the standard PSO.

Criticism

[edit | edit source]

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

See also

[edit | edit source]

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Ariyaratne MKA, Pemarathne WPJ (2015) A review of recent advancements of firefly algorithm: a modern nature inspired algorithm. In: Proceedings of the 8th international research conference, 61–66, KDU, Published November 2015, http://ir.kdu.ac.lk/bitstream/handle/345/1038/com-047.pdf?sequence=1&isAllowed=y
[edit | edit source]
  • [1] Files of the Matlab programs included in the book: Xin-She Yang, Nature-Inspired Metaheuristic Algorithms, Second Edition, Luniver Press, (2010).