Spiral optimization algorithm

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}$$ (termination criterion) is as follows:

0) Set the number of search points $$m\geq 2$$ and the maximum iteration number $$k_{\max}$$. 1) Place the initial search points $$x_i (0) \in \mathbb{R}^n~(i=1, \ldots, m)$$ and determine the center $$ x^{\star}(0)= x_{i_\text{b} }(0) $$, $$\displaystyle i_\text{b} =\mathop{\text{argmin}}_{i=1,\ldots,m} \{ f(x_{i}(0)) \} $$,and then set $$ k = 0 $$. 2) Decide the step rate $$r(k)$$ by a rule. 3) Update the search points: $$ x_i(k+1) = x^{\star}(k) + r(k) R(\theta) (x_i(k) - x^{\star}(k))\quad(i=1, \ldots, m).$$ 4) Update the center: $$ x^{\star}(k+1) = \begin{cases} x_{i_\text{b}}(k+1) & \big( \text{if } f(x_{i_\text{b}}(k+1)) < f(x^{\star}(k)) \big),\\ x^{\star}(k) & \big(\text{otherwise} \big), \end{cases} $$ where $$\displaystyle i_\text{b} = \mathop{\text{argmin}}_{i=1,\ldots,m} \{ f(x_i (k+1)) \} $$. 5) Set $$k := k+1$$. If $$k=k_{\max}$$ is satisfied then terminate and output $$x^{\star}(k)$$. Otherwise, return to Step 2).

Setting
The search performance depends on setting the composite rotation matrix $$R(\theta)$$, the step rate $$r(k)$$, and the initial points $$x_i(0)~(i=1,\ldots,m)$$. The following settings are new and effective.

Setting 1 (Periodic Descent Direction Setting)
This setting is an effective setting for high dimensional problems under the maximum iteration $$k_{\max}$$. The conditions on $$R(\theta)$$ and $$x_i(0)~(i=1,\ldots,m)$$ together ensure that the spiral models generate descent directions periodically. The condition of $$r(k)$$ works to utilize the periodic descent directions under the search termination $$k_{\max}$$.

0_{n-1}^\top &-1\\ I_{n-1}& 0_{n-1}\\ \end{bmatrix} $$ where $$I_{n-1}$$ is the $$(n-1)\times (n-1)$$ identity matrix and $$0_{n-1}$$ is the $$(n-1)\times 1$$ zero vector. $$ \min_{i=1,\ldots,m} \{ \max_{j=1,\ldots,m} \bigl \{ \text{rank} \bigl[ d_{j,i}(0)~R(\theta)d_{j,i}(0) \cdotsR(\theta)^{2n-1}d_{j,i}(0) \bigr]\bigr\} \bigr\} = n $$ where $$d_{j,i}(0) = x_{j}(0) - x_i(0)$$. Note that this condition is almost all satisfied by a random placing and thus no check is actually fine.
 * Set $$R(\theta)$$ as follows:$$R(\theta) = \begin{bmatrix}
 * Place the initial points $$x_i(0) \in \mathbb{R}^n$$ $$(i = 1,\ldots, m)$$ at random to satisfy the following condition:
 * Set $$r(k)$$ at Step 2) as follows:$$r(k) = r = \sqrt[ k_{\max} ]{\delta }~\text{(constant value)}$$ where a sufficiently small $$\delta > 0$$ such as $$\delta = 1/k_{\max}$$ or $$\delta = 10^{-3}$$.

Setting 2 (Convergence Setting)
This setting ensures that the SPO algorithm converges to a stationary point under the maximum iteration $$k_{\max} = \infty$$. The settings of $$R(\theta)$$ and the initial points $$x_i(0)~(i=1,\ldots,m)$$ are the same with the above Setting 1. The setting of $$r(k)$$ is as follows. \begin{cases} 1 & (k^\star \leqq k \leqq k^\star + 2n-1), \\ h & (k \geqq k^\star + 2n), \end{cases} $$ where $$k^\star$$ is an iteration when the center is newly updated at Step 4) and $$h = \sqrt[ 2n ]{\delta }, \delta \in (0,1)$$ such as $$\delta = 0.5$$. Thus we have to add the following rules about $$k^\star$$ to the Algorithm:
 * Set $$r(k)$$ at Step 2) as follows:$$r(k) =
 * •(Step 1) $$k^\star = 0$$.
 * •(Step 4) If $$x^{\star}(k+1)\neq x^{\star}(k)$$ then $$k^\star = k+1$$.

Future works

 * The algorithms with the above settings are deterministic. Thus, incorporating some random operations make this algorithm powerful for global optimization. Cruz-Duarte et al. demonstrated it by including stochastic disturbances in spiral searching trajectories. However, this door remains open to further studies.
 * To find an appropriate balance between diversification and intensification spirals depending on the target problem class (including $$k_{\max}$$) is important to enhance the performance.

Extended works
Many extended studies have been conducted on the SPO due to its simple structure and concept; these studies have helped improve its global search performance and proposed novel applications.