In mathematics, the spiral optimization (SPO) algorithm is a metaheuristic inspired by spiral phenomena in nature. The first SPO algorithm was proposed for two-dimensional unconstrained optimization based on two-dimensional spiral models. This was extended to n-dimensional problems by generalizing the two-dimensional spiral model to an n-dimensional spiral model. There are effective settings for the SPO algorithm: the periodic descent direction setting and the convergence setting.
Metaphor The motivation for focusing on spiral phenomena was due to the insight that the dynamics that generate logarithmic spirals share the diversification and intensification behavior. The diversification behavior can work for a global search (exploration) and the intensification behavior enables an intensive search around a current found good solution (exploitation).
Algorithm
The SPO algorithm is a multipoint search algorithm that has no objective function gradient, which uses multiple spiral models that can be described as deterministic dynamical systems. As search points follow logarithmic spiral trajectories towards the common center, defined as the current best point, better solutions can be found and the common center can be updated. The general SPO algorithm for a minimization problem under the maximum iteration k max {\displaystyle k_{\max }} (termination criterion) is as follows:
0) Set the number of search points m ≥ 2 {\displaystyle m\geq 2} and the maximum iteration number k max {\displaystyle k_{\max }} . 1) Place the initial search points x i ( 0 ) ∈ R n ( i = 1 , … , m ) {\displaystyle x_{i}(0)\in \mathbb {R} ^{n}~(i=1,\ldots ,m)} and determine the center x ⋆ ( 0 ) = x i b ( 0 ) {\displaystyle x^{\star }(0)=x_{i_{\text{b}}}(0)} , i b = argmin i = 1 , … , m { f ( x i ( 0 ) ) } {\displaystyle \displaystyle i_{\text{b}}=\mathop {\text{argmin}} _{i=1,\ldots ,m}\{f(x_{i}(0))\}} , and then set k = 0 {\displaystyle k=0} . 2) Decide the step rate r ( k ) {\displaystyle r(k)} by a rule. 3) Update the search points: x i ( k + 1 ) = x ⋆ ( k ) + r ( k ) R ( θ ) ( x i ( k ) − x ⋆ ( k ) ) ( i = 1 , … , m ) . {\displaystyle x_{i}(k+1)=x^{\star }(k)+r(k)R(\theta )(x_{i}(k)-x^{\star }(k))\quad (i=1,\ldots ,m).}
… excerpt ends here. Continue reading the full article.



