Firefly algorithm

From testwiki
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

In pseudocode the algorithm can be stated as:

Begin
    1) Objective function: Template:Nowrap
    2) Generate an initial population of fireflies Template:Nowrap
    3) Formulate light intensity Template:Mvar so that it is associated with Template:Nowrap
       (for example, for maximization problems, Template:Nowrap
    4) Define absorption coefficient Template:Mvar

    while (t < MaxGeneration)
        for i = 1 : n (all n fireflies)
            for j = 1 : i (n fireflies)
                Template:Nowrap
                    Vary attractiveness with distance r via Template:Nowrap
                    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

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

References

Template:Reflist

  • [1] Files of the Matlab programs included in the book: Xin-She Yang, Nature-Inspired Metaheuristic Algorithms, Second Edition, Luniver Press, (2010).

Template:Optimization algorithms Template:Collective animal behaviour