# A Brain Storm and Chaotic Accelerated Particle Swarm Optimization Hybridization
## 2 Background
### The BSO Algorithm  
The original BSO algorithm has received various modifications to improve its effectiveness and adaptability to optimization problems. BSO, as it has been developed in this work, is described in the following steps. 1. **Population initialization**: As is common for evolutionary stochastic optimization, \(N\) points in a \(D\)-dimensional search space are randomly generated. In BSO, they are referred to as ideas. The initialization formula for the \(i^{th}\) idea is \[x_{i}^{d}=x_{min}^{d}+\text{rand}()(x_{max}^{d}-x_{min}^{d}),\] (1)where \(d\) is one of the \(D\) dimensions and \(x_{max}^{d}\), \(x_{min}^{d}\) are its maximum and minimum boundaries, respectively. The function \(\text{rand}()\) returns a number between 0 and 1 via a uniform distribution. 2. **Idea clustering**: The \(N\) ideas are clustered into \(m\) groups, depending on their positions in the search space. Various clustering methods have been applied to and experimented with BSO. In this work, we used the \(k\)-means algorithm [10; 37], which is the most popular. The variant applied to \(k\)-means is \(k\)-means++. 3. **Idea evaluation**: Each idea's fitness is evaluated with respect to the objective function, \(f\). The best idea in each one of the \(m\) clusters is denoted as the cluster center. 4. **Cluster center disruption**: This occasionally occurs to increase the population's diversity. Disruption is controlled by the probability \(p_{rep}\). A random number is generated. If this number is smaller than \(p_{rep}\), one of the clusters is randomly selected and its center is replaced by a newly generated idea according to Equation (1). 5. **Idea population update**: The most important step in evolutionary global optimization algorithms is the update scheme. In BSO, a new idea can be generated from a chosen one. The update formula, see [10], is \[x_{new}^{d}=x_{chosen}^{d}+\xi\mathcal{N}(0,1),\] (2) where \(\mathcal{N}(0,1)\) is a Gaussian random value with mean 0 and variance 1. The original BSO algorithm [10] used a logarithmic sigmoid function for \(\xi\), while alternative approaches were also developed [38; 39; 40]. In this work, see [14; 33], \(\xi\) is calculated by \[\xi(t)=\kappa\,\text{rand}()\exp\!\left(1-\frac{T}{T-t+1}\right),\] (3) where \(T\) is the maximum number of iterations, \(t\) is the current iteration and \(\kappa\) adapts to the size of the search space as \[\kappa=0.25(x_{max}-x_{min}).\] (4) The idea \(x_{chosen}\) can be a single selected idea from _one cluster_ or a combination of two ideas from _two clusters_. This is similarly controlled by a probability, \(p_{gen}\). 1. In _one-cluster idea selection_, a single cluster is selected. The probability of choosing a cluster is proportional to its size. After the cluster is chosen, \(x_{chosen}\) is either its center or a randomly chosen idea in it. This is controlled by \(p_{once}\). 2. In _two-cluster idea selection_, two clusters are randomly chosen. The probability of choosing each cluster is the same. Similarly to one-cluster selection, either two centers or two random ideas are chosen. This is controlled by \(p_{twoC}\). The two selected ideas are combined as \[x_{chosen}^{d}=\text{rand}()x_{selected}^{d}+(1-\text{rand}())x_{selected2}^{d}.\] (5) Then, \(x_{chosen}^{d}\) is used to generate a new idea by means of Equation (2). The newly generated idea is compared to the current idea, \(i\). If it is evaluated as better, it replaces the current idea. Namely, for minimization problems, we have \[f(x_{new})<f(x_{i}):x_{i}=x_{new},\] (6) while for maximization problems we have \[f(x_{new})>f(x_{i}):x_{i}=x_{new}.\] (7) This iterative process takes place for all the individuals (ideas) in the population until the entire population has been updated for the cases when Equations (6) or (7) apply. ```
6 Termination criteria: Many termination criteria can be applied to BSO. One of the most common ones, and the one used in this paper, is when the maximum number of iterations \(T\) is reached.