# A Brain Storm and Chaotic Accelerated Particle Swarm Optimization Hybridization
## 2 Background
### The BSO Algorithm
Additionally, if CAPSO is provided with a predetermined initialization (which is practically a form of information exploitation), it could potentially converge to even better solutions than PSO, since it favors acceleration and exploitation. Thus, the proposed hybrid algorithm randomly initializes its population, and it first runs as BSO for a fixed number of iterations. When this number of iterations is reached, it continues the optimization process as CAPSO, taking the last BSO updated population as its \"initial\" population, meaning that the CAPSO phase is active for the remaining iterations. It is worth mentioning that CAPSO is easy to implement and less computationally heavy than BSO, which uses clustering. Hence, the BSO-CAPSO hybrid is expected to demand less computation time than stand-alone BSO. _Important parameters_: We refer to the iteration during which the switch between algorithms occurs as \(t_{switch}\); this parameter depends on the optimization problem. The guideline for selecting an advantageous \(t_{switch}\) is to approximately choose an iteration during which BSO starts to favor exploration less and begins to favor exploitation more. This could be observed in convergence diagrams or determined through some sampling procedure. Furthermore, \(\alpha(t)\) of the CAPSO phase is crucial since it affects a great part of CAPSO's exploration-exploitation behavior. CAPSO's \(\alpha(t)\) and BSO's \(\xi(t)\) are, after all, the functions that also represent the exploration-exploitation trade-off of their respective algorithms and they need to be adequately synchronized for the hybrid. The CAPSO phase of the BSO-CAPSO hybrid begins with \(\alpha(t_{switch})\). Since the initial exploration is carried out by BSO, \(\alpha(t)\) must be adjusted to the optimization problem in a way that when the switch happens the value \(\alpha(t_{switch})\) is as follows:

1. Not too large (too much added diversity), meaning CAPSO would not take advantage of BSO's initial exploration. 2. Not too small (too little added diversity), meaning CAPSO would greatly favor exploitation too early and possibly become trapped in a local minimum and not be able to escape. As with stand-alone APSO/CAPSO, it is recommended to investigate and fine-tune the decreasing function \(\alpha(t)\) versus the optimization problem's characteristics, as well as \(t_{switch}\). _Clustering management_: It is also important to note that since BSO utilizes the \(k\)-means (\(k\)-means++) algorithm, the results of the clustering process need to be appropriately managed. If there is some converging behavior during the BSO process of the hybrid, there is a possibility that the clustering algorithm returns with less clusters than the ones set as its parameter. In the hybrid algorithm's developed code, we implemented simple mechanisms that always check the cluster number returned by the \(k\)-means algorithm and we adjusted the probabilities of cluster/idea picking accordingly so that the algorithm never chooses an empty cluster or nonexistent solution and, thus, fails. _Boundary enforcement_: There exist many methods to ensure that candidate solutions remain within the lower and upper boundaries of the available \(D\)-dimensional space; indicatively, we refer to [43; 44]. In this iteration of the hybrid BSO-CAPSO algorithm, the technique we applied was _absorbing walls_. This technique is quite straightforward: if a boundary is crossed, the value of the stray variable becomes the minimum (or maximum) value allowed, depending on which boundary is crossed. For the \(i^{th}\) idea/solution, if there is boundary crossing in the \(d^{th}\) dimension, the rule is enforced as follows (for the lower and upper boundary, respectively): \[x_{new}^{d}=x_{chosen}^{d}+\xi\mathcal{N}(0,1),\]0 (11) \[x_{new}^{d}=x_{chosen}^{d}+\xi\mathcal{N}(0,1),\]1 (12)

A simple technique was chosen since the examined benchmark functions were all of a different nature.