1 Introduction

A decision maker uses a rational process for selecting the best of several alternatives when it comes on making a decision. In real life, decisions are often made on the basis of multiple, conflicting and non-commensurable criteria/objectives in uncertain/imprecise environments. Optimization is the act of determining the value of certain parameters subject to constraints, so that some measure of optimality is satisfied. Optimization is everywhere, in every activity related to engineering, mathematics or sciences in which numerical information is processed. For example, civil engineers might be interested in designing structures of dams, bridges and towers of minimum weight keeping the natural disaster consequences in mind subject to certain constraints e.g. reliability, cost and other specifications. Widespread applicability of optimization methods makes them a hot spot for researchers. Nature inspired optimization algorithms usually attempt to find a good approximation to the solution of a complex optimization problem. In the last two decades, several researchers have been focused on optimization algorithms those seek to mimic natural systems. Genetic algorithms (GA’s) developed by Professor Holland (1975, 1968) and his students in the early 1970’s imitate some of the processes observed in natural evolution and is one of the most popular algorithms. Many modern nature inspired algorithms have some strong similarities with the Genetic algorithms since the population of individuals is used to search for an optimal solution. In general, nature inspired algorithms are population based algorithms. In the initial stage of the search population of individuals tend to explore the search space while in later stages population is more tilted towards the exploitation. If the algorithm is more focused on exploitation than it will converge rapidly, but it can be stuck in a local optimum. Whereas, convergence speed will become slower if an algorithm sustains excessive exploration characteristic. Therefore, a fine tuning between exploration and exploitation is required to achieve the best performance. However, according to No free lunch theorem Wolpert and Macready (1997) there is no such optimization algorithm which will give superior results to all problems. Also, one cannot predict a particular choice of variation operators and selection mechanisms that will always outperform all other choices regardless of the problem. That is why in the world of optimization theory, one need to develop new algorithms to solve different types of problems as one technique cannot be put in the place of the best technique. Till date various algorithms have been developed. To list a few of them: Ant colony optimization (ACO) uses the interaction of ants, particle swarm optimization (PSO) is inspired by swarming behavior of fish and birds, grey wolf algorithm (GWA) is based on the leadership hierarchy and hunting behavior of gray wolves. Firefly algorithm (FA), Cuckoo search (CS) and bat algorithm (BA) mimics the flashing behavior of swarming fireflies, brooding parasitism of cuckoo and echolocation of foraging bats, respectively. These algorithms have been successfully applied to various real life problems Kumar and Singh (2008), Pant and Singh (2011), Platt (2015), Pant et al. (2015a, b), Kumar et al. (2016a, b), Kumar et al. (2017a, b) and Pant et al. (2017a, b). Flower pollination algorithm (FPA) proposed by Yang (2012) is a relatively recent addition to the field of nature inspired optimization algorithms. FPA, which is gaining popularity in various areas day by day, simulates the pollination characteristics of flowers.

This paper presents a compendious summary of previous studies which proposed modified versions of FPA and applied them to various optimization problems arising in different fields.

The remainder organization of this article is as follows. Sections 2 and 3 presents an introduction to the flower pollination and Flower Pollination Algorithms (FPA) and Sect. 4 presents a brief discussion about improvements in FPA strategy for solving multi-objective problems. Applications of FPA in different fields are briefly discussed in Sect. 5 while a comparative study on FPA till date is presented in Sect. 6. Finally, concluding remarks have been presented in Sect. 7 followed by references.

2 Flower pollination

Reproduction in flowering plants involves the transfer of pollen with the help of pollen carrying agents which are known as pollinators. Two types of pollination have been identified based on the type of agents of pollination: biotic and abiotic. 90% pollination is biotic which is accomplished by the living pollinators such as bats, butterflies, insects, birds and other creatures. When a nonliving medium such as water or wind is responsible for moving the pollen, the term abiotic pollination is used and only 10% flowering plants are pollinated without any animal assistant.

Some pollinators restrict their foraging activity to one or a few flowering species, even when many other flowers are available. This behavior of pollinators is known as the flower constancy. Plants are benefited by this flower constancy because pollen is more likely to be deposited on conspecific plants and thus maximizes the reproduction of the same flower species. Such flower constancy is beneficial for the pollinators as well, because it will reduce the time of the search (Fig. 1).

Fig. 1
figure 1

Bee pollinating flower

Pollination can be described under two main classifications based on the availability of pollinators: self-pollination and cross-pollination. Self-pollination is a type of pollination, which occurs in a single plant either in two ways: within the same flower or between two flowers of the same plant. In contrast, cross-pollination can be viewed as the transfer of pollen from a flower in one plant to the flower of another plant.

Biotic and cross-pollination are associated with the global pollination process as it may occur over long distances. While ambitious and self-pollination are involved in the local pollination process. Biotic pollinators such as birds, bats, bees can randomly fly or jump in which the step-lengths obeys Levy Distribution. The Levy Distribution is one of the stable distribution which is important in the study of Brownian motion. It is named after the French mathematician Paul Levy. A random variable X with value in \(\left( {0,\infty } \right)\) has the standard Levy Distribution if it has probability density function f given by

$$f(x) = \frac{1}{{\sqrt {2\pi } }}\frac{1}{{x^{3/2} }}\exp \left( { - \frac{1}{2x}} \right),\quad x \in \left( {0,\infty } \right).$$

3 The flower pollination algorithm

Flower constancy and pollinator behavior in the pollination process is idealized by Yang (2012) into the four rules describe below:

  1. 1.

    Biotic and cross-pollination in which pollen-carrying global pollinators performing L´evy flights are considered as a global pollination process.

  2. 2.

    Local pollination is defined by the mean of Abiotic and self-pollination.

  3. 3.

    Reproduction probability can be viewed by the mean of flower constancy. It is proportional to the similarity of two flowers involved.

  4. 4.

    A switch probability p ∈ [0, 1] has been introduced to control local pollination and global pollination.

Above four rules are mathematically expressed with following three key features:

3.1 Global search

For simplicity, it is assumed that each plant contains only one flower, and each flower produces one pollen gamete. Hence a solution x i is equivalent to a flower and/or a pollen gamete. Pollinators need to search the whole search space to find the location of optimum point. Hence, for global optimization biotic and cross pollinators can play their role more perfectly as they can travel a long distance obeying levy flight. Levy flight is more efficient than Brownian in exploring unknown large scale search space. One of the main reasons is due to the fact that the variance of levy flights (i.e. \(\sigma^{2} \left( t \right)\sim\;t^{3 - \beta } \quad 1 \le \beta \le 2\)) increases much faster than the linear relationship (i.e. \(\sigma^{2} \left( t \right)\sim\;t\)) of Brownian motion Yang (2010). Hence flower constancy which reduces the cost of exploring together with rule one can be expressed mathematically as

$$x_{i}^{t + 1} = x_{i}^{t} + L\left( {x_{i}^{t} - g_{*} } \right).$$

Here, \(x_{i}^{t}\) denotes the ith pollen (solution) at iteration t. Current best solution found among all solutions is denoted by \(g_{*}\) at the current iteration. L is a parameter which denotes step size and drawn from a Levy distribution

$$L\sim\frac{{\lceil\left( {\beta + 1} \right)*{ \sin }\left( {\frac{\pi \beta }{2}} \right)}}{\pi }*\frac{1}{{s^{1 + \beta } }},\quad (s \gg s_{0} > 0).$$

Here \(\beta\) is the standard gamma function. Author takes \(\beta = \frac{3}{2}\) for all the simulation in his research paper. This Levy distribution is valid for large steps \(s > 0\). Step size s can be drawn by using Mantegna (1994) algorithm by the mean of the following transformation

$$s = \frac{U}{{\left| V \right|^{{{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 \beta }}\right.\kern-0pt} \!\lower0.7ex\hbox{$\beta $}}}} }},U\sim\;N\left( {0,\sigma^{2} } \right)\quad {\text{and}}\quad V\sim\;N\left( {0,1} \right).$$

Here \(U\sim\;N\left( {0,\sigma^{2} } \right)\) denotes that the samples have been drawn from a Gaussian normal distribution with variance of \(\sigma^{2}\) and zero mean. For the purpose of calculation of variance one can use the formula:

$$\sigma^{2} = \left\{ {\frac{{\left \lceil( {1 + \beta } \right)}}{{\beta \lceil \frac{1 + \beta }{2}}} \frac{{{ \sin }\left( {\frac{\pi \beta }{2}} \right)}}{{2^{{\frac{\beta - 1}{2}}} }}} \right\}^{1/\beta } .$$

3.2 Local search

For exploitation FPA needs local pollinators as they can better exploit the area at which optimum value lies. In this case flower constancy will be in a small neighborhood to reduce the exploitation time. Mathematically it is represented as

$$x_{i}^{t + 1} = x_{i}^{t} + \in \left( {x_{j}^{t} - x_{k}^{t} } \right)$$

where, \(x_{j}^{t}\) and \(x_{k}^{t}\) are the pollens of same plant species but they belongs to different flowers. \(\in\) is taken from the uniform distribution in [0,1].

3.3 Switch probability

This is the main feature of FPA, which makes control between local and global search. Flower pollination activities can occur either at the local scale or global scale. But in reality those flowers are more likely to pollinate by local flower pollen that is in the neighborhood in comparison to the flower patches or flowers far away. This feature is mimicked by the mean of switch probability or proximity probability p. It is effectively used to switch between common global pollination to intensive local pollination. It was claimed that the switch probability p = 0.8 works better for most of the applications. Yang et al. (2013a, b) validated FPA on ten test functions and one design optimization problem. They found better results than those obtained from the basic genetic algorithm and basic particle swarm optimization (Fig. 2).

Fig. 2
figure 2

Pseudo code for FPA

4 Improvement in FPA

For improving the performance of FPA, it has been modified or hybridized with any other nature inspired optimization algorithm by many researchers.

4.1 Extension of FPA to solve multi-objective optimization problem

It is the nature of the multi objective optimization that the problem itself does not define a unique optimal value. Yang et al. (2013a, b), Yang et al. (2014) used a posteriori method weighted sum technique to combine all multiple objectives into a composite single objective function.

$$f = \sum\limits_{i = 1}^{m} {w_{i} f_{i} } ,\quad \sum\limits_{i = 1}^{m} {w_{i} = 1} \quad w_{i} \rangle 0.$$

Different weight sets are used to generate different Pareto optimal solutions. They also included a scaling factor gamma in the global optimization equation as a scaling factor to control the step size.

4.2 Binary flower pollination algorithm

Rodrigues et al. (2015)used a binary-constrained version of FPA for feature selection. In the binary version of FPA search space is modelled as a d-dimensional Boolean lattice, in which the solutions are updated across the corners of a hypercube. In their model a given feature is selected on “yes” or “no”, “true” or “false”. In the binary FPA, the global and local pollination are done as in continuous version. The normalization function used here is a sigmoid function as:

$$S\left( {x_{i}^{j} \left( t \right)} \right) = \frac{1}{{1 + e^{{ - x_{i}^{j} \left( t \right)}} }}.$$

following equation is used to update the new solution, which restricts the new solutions to only binary values:

$$x_{i}^{j} \left( t \right) = \left\{ {\begin{array}{*{20}l} 1 & {if\;\user2{S}\left( {\user2{x}_{\user2{i}}^{\user2{j}} \left( \user2{t} \right)} \right){\text{ < }}\sigma } \\ 0 & {otherwise} \\ \end{array} } \right.$$

where \(\sigma\) is drawn from uniform distribution \(U\left( {0,1} \right)\).

4.3 Algorithm refinement

Łukasik and Kowalski (2015) used FPA to solve 6 benchmark continuous optimization problems with 10 dimensions of CEC’13. First three functions taken by the author were unimodal functions. The author recommended the higher value of switch probability. He also found that for multi modal problems used in the paper the best results can be achieved for \(p \epsilon\left[{0.5, 0.8} \right]\). Further, Wang and Zhou (2014) added local neighborhood searching strategy (LNSS) to local search to enhance its exploitation ability. They assumed a differential evolutionary population \(P_{G} = \left[ {X_{1,G} , X_{2,G} , \ldots ,X_{i,G} , \ldots , X_{NP,G} } \right] at\;iteration\;G\), where each \(X_{i,G} = \left( {x_{i,1,G} , x_{i,2,G} , \ldots ,x_{i,D,G} } \right)\) is a parameter vector, and its dimension is D and NP is the population size. The modified local pollination can be expressed in the following formula:

$$X_{i,G + 1} = X_{i,G} + \alpha \left( {X_{{n_{{ - best_{i} }} ,G}} - X_{i,G} } \right) + \beta \left( {X_{p,G} - X_{q,G} } \right),$$

where, \(\varvec{X}_{{\varvec{n}_{{ - \varvec{best}_{\varvec{i}} }} ,\varvec{G}}}\) is the best vector of \(\varvec{X}_{{\varvec{i},\varvec{G}}}\) neighborhood \(X_{p,G} ,X_{q,G}\) are two vectors in the neighborhood of \(X_{i,G}\) of radius k and \(\alpha ,\beta\) are two scale factors. They have also used a dimension by dimension evaluation and improvement strategy (DDEIS) based update to improve the convergence speed and quality of solution (Fig. 3).

Fig. 3
figure 3

Pseudo code for FPA with dimension by dimension improvement (DDIFPA)

Apart from this a dynamic switching probability strategy (DSPS) is used to control between global and local search. So that the algorithm can explore (global search) the region in the initial stage of the search and exploit (local search) the region in the final stage of the search. The dynamic switching probability can be expressed by the following formula:

$$p = 0.6 - 0.1 \times \frac{{\left( {Max_{iter} - current_{iter} } \right)}}{{Max_{iter} }}$$

where \(Max_{iter}\) is the maximum iteration and \(current_{iter}\) is the current iteration.

4.4 The hybrid FPA

In a hybrid algorithm an optimization problem is solved collectively or cooperatively with the mean of two or more algorithms. The hybrid algorithm can further be classified as collaborative hybrids and integrative hybrids. Collaborative hybrids are one in which the combination of two algorithms running in sequential or parallel. While in integrative hybrids one algorithm is regarded as a subordinate, embedded in a master metaheuristic.

In random based optimization algorithms, the algorithms using chaotic variables instead of random variables are termed as chaotic optimization algorithms. Adding chaos to optimization can save algorithm to be trapped in local optima and improve global convergence. In these algorithms, overall searches are carried out at higher speeds than stochastic searches (depend on probabilities) due to non-repetition and ergodicity of chaos.

4.4.1 Type-1 when chaotic map is introduced in hybrid algorithms

For improving the searching accuracy, chaotic Harmony search (HS) algorithm combined with the standard flower pollination algorithm by Abdel-Raouf et al. (2014a, b, c). FPA is hybridized with chaotic harmony search (HS) for solving Sudoku puzzles. Chaos is incorporated into HS to construct a chaotic harmony search to improve the global convergence and to prevent getting stuck in local solutions. The parameters of HS such as harmony memory considering the rate (HMCR), pitch adjusting rate (PAR) and bandwidth (BW) values are updated by selecting a logistic map. Results indicate that the proposed hybrid algorithm solved the hard level Sudoku in a minimum number of iterations.

Chaotic dynamics is incorporated into FPA by Abdel-Raouf et al. (2014a, b, c) for enriching the searching behavior of FPA. Abdel-Raouf et al. (2014a, b, c) proposed an improved flower pollination algorithm by combining it with chaos sequence (IFPCH). Switch probability was calculated through using chaotic map. Further, they applied this algorithm to solve definite integral and compared the results with the results of standard Monte Carlo method, trapezoidal rule, Simpson’s rule and midpoint rule. Results have shown that proposed algorithm converges very close to the exact values of the definite integrals under study. Further, Khalil (2015) applied IFPCH to solve integer programming problems.

Similarly, El-Henawy and Ismail (2014) combines chaotic FPA with PSO for improving the searching accuracy and named it to flower pollination particle swarm optimization (FPPSO). Switch probability was calculated using chaotic map (tent map). They solved six test problems and compared the results with the harmony search algorithms. The results obtained by FPPSO were much closed to the exact ones. Further, Abdel-Raouf et al. (2014a, b, c) proposed a new Hybrid FPA for solving constrained global optimization problems. The method proposed by them was almost same as the method proposed by El-Henawy and Ismail (2014). The only difference is El-Henawy and Ismail (2014) has used tent map while Abdel-Raouf et al. (2014a, b, c) has used logistic map. They Abdel-Raouf et al. (2014a, b, c) handled constraints by using a penalty function method.

4.4.2 Type-2 without chaotic map

Abdel-Baset and Hezam (2015) proposed an effective FPA and Genetic Algorithm for constrained optimization problems. The proposed algorithm (FPA-GA) combines standard FPA with the genetic algorithm to improve searching accuracy. At the first stage they used FPA. The final best population of flowers is worked as the initial population of GA.

Chakraborty et al. (2014) proposed a hybrid algorithm DE-FPA by combining differential evolution and a modified flower pollination algorithm. DE uses randomly selected vectors for optima search but it lacks the guidance to move towards the global optimum. The operators used in FPA are modified. They combined both local and global flower pollination strategies to eliminate the need of switch probability. Tuning the switching probability is also a major concern as it can cause major fluctuations in the algorithm’s performance. For fast and efficient convergence, they have introduced two dynamic weights w 1 and w 2. These weights are defined as:

$$\begin{aligned}w_{1} &= w_{max} - t \times \frac{{w_{max} - w_{min} }}{T},\\ w_{2} &= \left| {\frac{{min\left( {fit_{i}^{t} ,mean \left( {fit^{t} } \right)} \right)}}{{\hbox{max} \left( {fit_{i}^{t} ,mean \left( {fit^{t} } \right)} \right)}}} \right| \end{aligned}$$

Here, T denotes the total number of iterations and t is the current iteration while \(w_{max}\) and \(w_{min}\) are user defined. So the modified FPA operator is

$$x_{i}^{t + 1} = x_{i}^{t} + w_{1} L\left( \lambda \right)\left( {g_{*} - x_{i} } \right) + w_{2}^{i} \left( {x_{i}^{t} - x_{k}^{t} } \right).$$

To check the effectiveness of proposed algorithm DE-FPA is compared with the parent algorithm FPA and DE on the basis of average best fitness and standard deviation. Results showed that DE-FPA performed better in terms of performance as well as convergence rate.

Yang et al. (2013a, b) used a combination of eagle strategy with FPA. On the basis of intermitted search theory which is an iterative search strategy consisting of a slow phase and a fast phase, they estimated the ratio of search times of exploration and exploitation stages. It was claimed that the simulation uses only about 10% of computational effort, compared with the other methods reported in the literature.

Jensi and Jiji (2015) used hybrid data clustering approach using FPA and K-means clustering algorithm (FPAKM) is proposed.

5 Application of FPA in different fields

Platt (2015) used FPA to find the solution of a complex nonlinear algebraic system of equations arising in the real world situations. First, they converted the nonlinear system of equations to an optimization problem in this optimization problem, the objective-function is represented by the sum of squares of residues for each non-linear equation and the solution of the system can be obtained just by minimizing this objective function. They have also used repulsion strategy in order to find the multiple roots. Apart from that, Platt (2014) carried out computational experiments with FPA in the calculation of double retrograde dew points. He calculated the dew points in the system ethane + limonene at T = 307.4 K using FPA.

Ochoa et al. (2014) Implemented multi-objective FPA for selection of university academic credits. The selection of university academic credits is treated as a multi objective optimization problem and solved by using multi objective FPA. Gautam et al. (2015) used FPA to find the optimum path planning for an autonomous underwater vehicle in benthic ocean zones. The results were compared with genetic algorithm and Q-leaning. Q-learning performed better in terms of computation complexity and ease of environment simulation.

FPA is also applied for different economic load dispatch problems & Pollination based optimization for economic load dispatch problem has also been done by Prathiba et al. (2014). FPA is used by Lenin and Reddy (2014) to solve optimal reactive power dispatch problem. Where the two objectives are to be minimized were the real power loss and enhancement voltage stability index margin of the system. Emary et al. (2014) use FPA to search optimal vessels of the retina. Sharawi et al. (2014) applied the flower pollination based optimization clustering algorithm for wireless sensor network. Kumar and Giridhar (2014) used FPA to estimate the optimal size and location of capacitors in the radial distributive system.

FPA is implemented in multi machine system with generalized unified power flow controller by Pambudy et al. (2014). While Sabarinath et al. (2015) used FPA to minimize the weight of a flywheel and thereby energy conservation is achieved. Dubey et al. (2015) Solved dynamic multi objective dispatch problem for wind thermal system which has three objectives to minimize: cost, emission and power loss, using a hybrid FPA with time varying fuzzy selection mechanism. A multi objective hybrid algorithm with FPA and differential evolution was proposed. The classical selection operation of DE was replaced by a time varying 5-class fuzzy selection mechanism which aggregates the multiple conflicting objectives into one index.

6 Comparative study on flower pollination algorithm till date

6.1 Comparative study between FPA, BA, MCS, ABC PSO in training and optimizing of LS-SVM for stock market prediction

Hegazy et al. (2015) hybridized five recent optimizing techniques flower pollination algorithm (FPA), Bat algorithm (BA), modified cuckoo search (MCS), artificial bee colony (ABC) and particle swarm optimization (PSO) with least square support vector machine (LS-SVM). They took daily datasets for six companies cover different sectors in S & P 500 stock markets. It was found that FPA-LS-SVM method achieved the lowest root mean square error (RMSE) in daily, weekly stock price prediction. While BA-LS-SVM achieved the lowest sum of RMSE value for the monthly stock.

6.2 Comparative study of bat & flower pollination optimization algorithms in highly stressed large power system

Pandya et al. (2015) did a comparative study of FPA and Bat algorithm for the optimal solution of the optimal power flow problem. In this problem they minimize the fuel cost of a thermal power plant. They also compared the performance of FPA and BAT with PSO algorithm by applying it to the IEEE 300 bus system for optimal power flow. Results show that Bat algorithm gives minimum cost in comparison to other two algorithms, While PSO converges fastest. FPA wa also found better than BAT in terms of convergence speed.

6.3 A comparative study of FPA and BAT algorithm on continuous optimization problem

Sakib et al. (2014) compared the performance of FPA and BAT on ten benchmark functions including five unimodal and five multimodal functions.

6.4 A comparison between FPPSO and B & B algorithm for solving integer programming problems

Ismail and El-Henawy (2015) compare FPA blending with PSO with branch and bound method for solving Integer Programming problems.

6.5 On the performances of the flower pollination algorithm–qualitative and quantitative analysis

Draa (2015) has done qualitative as well as quantitative analysis of FPA and proposed some extension of the FPA based on opposition based learning.

7 Concluding remarks

The flower pollination algorithm (FPA) has witnessed an increasing interest amongst the community of metaheuristics in last four years. In this paper, biological background related to flower pollination and various aspects of FPA and its applications are discussed. The study indicates that Flower Pollination algorithm is quite simple and flexible in solving optimization problems. Single as well as a multi-objective variant of FPA can be used for solving complex optimization problems. Works carried out by researchers in the various fields using FPA have been presented in this article. One of the most important practical advantages of this approach is that the mathematical models of real life optimization problems can be solved. The review revealed that the various real life domains that are attracted by the applications of the FPA include: medical, energy, images, structural design, function optimization, game and WSN. As the FPA algorithm is relatively new, that is why the applications of FPA are not quite much in the literature available. The FPA can further be applied to other domains of societal development, such as reliability optimization, cloud computing, oil production and refining and quantum computation, etc.