Jump to content

Flower pollination algorithm: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
AnomieBOT (talk | contribs)
m Dating maintenance tags: {{Afd-merge to}}
Ruud Koot (talk | contribs)
Line 1: Line 1:
#REDIRECT [[List of metaphor-inspired metaheuristics#Flower pollination]]
{{Afd-merge to|Swarm intelligence#Algorithms|Flower pollination algorithm|6 August 2016|date=August 2016}}
{{Expert-subject|Computer science|talk=|reason=needs appropriate Wiki links and definitions for laymen|date=July 2015}}
'''Flower pollination algorithm''' (FPA) is a meta[[Heuristic (computer science)|heuristic]] [[algorithm]] that was developed by [[Xin-She Yang]],<ref>Xin-She Yang. Flower pollination algorithm for global optimization, Unconventional Computation and Natural Computation. Lecture Notes in Computer Science. Volume 7445, pp. 240-249 (2012).</ref> based on the [[pollination]] process of flowering [[plants]].

== Main characteristics ==
This algorithm has 4 rules or assumptions:

1. Biotic and cross-pollination is considered as global pollination process with
pollen carrying pollinators performing Levy flights.

2. Abiotic and self-pollination are considered as local pollination.

3. Flower constancy can be considered as the reproduction probability is proportional
to the similarity of two flowers involved.

4. Local pollination and global pollination is controlled by a switch probability <math>p \in [0, 1]</math>.
Due to the physical proximity and other factors such as wind, local pollination can
have a significant fraction p in the overall pollination activities.

These rules can be translated into the following updating equations:
:<math> x_i^{t+1}=x_i^t + L (x_i^t-g_*)</math>
:<math> x_i^{t+1}=x_i^t + \epsilon (x_i^t-x_k^t)</math>
where <math>x_i^t</math> is the solution vector and <math>g_*</math> is the current best found so far during iteration. The switch probability between two equations during iterations is <math>p</math>. In addition, <math>\epsilon</math> is a random number drawn from a uniform distribution. <math>L</math> is a step size drawn from a Lévy distribution.

Lévy flights using Lévy steps is a powerful random walk because both global and local search capabilities can be carried out at the same time.
In contrast with standard Random walks, Lévy flights have occasional long jumps, which enable the algorithm to jump out any local valleys.
Lévy steps obey the following approximation:
:<math> L \sim \frac{1}{s^{1+\beta}}, </math>
where <math>\beta</math> is the Lévy exponent.<ref>I. Pavlyukevich, Lévy flights, non-local search and simulated annealing, J. Computational Physics, Vol. 226, 1830-1844 (2007).</ref> It may be challenging to draw Lévy steps properly, and a simple way of generating Lévy flights <math>s</math> is to use two normal distributions <math>u</math> and <math>v</math> by a transform<ref>X. S. Yang, Nature-Inspired Optimization Algorithms, Elsevier, (2014).</ref>
:<math> s = \frac{u}{|v|^{1+\beta}}, </math>
with
:<math> u \sim N(0, \sigma^2), \quad v \sim N(0,1), </math>
where <math>\sigma</math> is a function of <math>\beta</math>.


A matlab demo program is available for function optimization.<ref>X. S. Yang. http://www.mathworks.com/matlabcentral/fileexchange/45112-flower-pollination-algorithm</ref>

== References ==
{{Reflist|50em}}

[[Category:Nature-inspired metaheuristics]]

Revision as of 14:06, 12 August 2016