Английская Википедия:Firefly algorithm

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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: Шаблон:Nowrap
    2) Generate an initial population of fireflies Шаблон:Nowrap
    3) Formulate light intensity Шаблон:Mvar so that it is associated with Шаблон:Nowrap
       (for example, for maximization problems, Шаблон:Nowrap
    4) Define absorption coefficient Шаблон:Mvar

    while (t < MaxGeneration)
        for i = 1 : n (all n fireflies)
            for j = 1 : i (n fireflies)
                Шаблон:Nowrap
                    Vary attractiveness with distance r via Шаблон: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 <math>\mathbf{x}_i </math> and <math>\mathbf{x}_j </math> is

<math>\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 </math>

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

It can be shown that the limiting case <math>\gamma \rightarrow 0 </math> corresponds to the standard Particle Swarm Optimization (PSO). In fact, if the inner loop (for j) is removed and the brightness <math>I_j</math> is replaced by the current global best <math>g^*</math>, 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

Шаблон:Reflist

External links

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

Шаблон:Optimization algorithms Шаблон:Collective animal behaviour