# Enhanced Hybrid Algorithms for Inverse Problem Solutions in Computed Tomography
## 3 Description of Optimization Algorithms
### Artificial Bee Colony Algorithm  
Artificial Bee Colony (ABC) is an optimization metaheuristic algorithm, one of many inspired by the behaviors observed within the animal kingdom. One of the first publications presenting this algorithm is [16]. This algorithm has been applied in the optimization of various processes, for example [17; 18; 19; 20; 21].  
ABC takes inspiration from the way in which bees scavenge for nourishment sources. It does so by dividing the hive's population into two groups: **Workers** and **unclassified bees**, which are further divided into _scouts_ and _observers_. Each of the mentioned groups have a different task assigned to them, that is:  
* **Bees workers**--Searching through already known food sources, they evaluate quality of a food source based on its distance from the hive and the amount of nectar left in it.
* **Scouts**--Looking for new food sources randomly.  
* **Obsvers**--Looking for new food sources using the information they are provided by other bees via the special dance. The special dance mentioned in the point above is performed when the bees return after collecting the nectar. Each bee decides, whether the information about the source it explored is worth being shared with other bees, or if the source should be abandoned. Provided information is evaluated by the observer bees, who based on it, decide on how to search through the search space. ABC algorithm was described with the use of following notation: dim --dimension of the task, \(N\) --number of bees in a colony = number of food sources, \(\mathcal{F}\) --fitness function, \(\mathbf{x}_{i}^{t}=[x_{i,1}^{t},x_{i,2}^{t},\dots,x_{i,\text{dim}}^{t}]\) --\(i\)-th food source in iteration \(t\), \(\mathbf{v}_{i}^{t}=[v_{i,1}^{t},v_{i,2}^{t},\dots,v_{i,\text{dim}}^{t}]\) --\(i\)-th modified food source during iteration \(t\), \(\mathbf{p}^{t}=[p_{1}^{t},p_{2}^{t},\dots,p_{N}^{t}]\) --probabilities of choosing food source by a bee during iteration \(t\). The steps of an ABC algorithm can be generalized into a concise list. Below, this list is presented along with the corresponding mathematical descriptions
* Step 1--_Dance_. During this step, bees return to the hive and share information about the food source they explored. Quality of each food source is evaluated, based on that, each food source is assigned a probability with the use of following formula: \[p_{i}=\frac{fit(x_{i})}{\sum_{j=1}^{N}fit\big{(}x_{j}\big{)}},\] (2) where \[fit(x_{i})=\begin{cases}\frac{1}{1+\mathcal{F}(x_{i})},&\text{if }\mathcal{F}(x_{i})\geq 0,\\ |1+\mathcal{F}(x_{i})|,&\text{if }\mathcal{F}(x_{i})<0.\end{cases}\] (3)
* Step 2--_Leaving the hive_. At this step, observer bees select a food source randomly, based on the assigned probability and set to explore it. The chosen source is modified and if the modification proves outperform the original source, the modified version replaces it. The modification is calculated with the following formula: \[v_{i}^{t}=x_{i}^{t}+\Phi_{i}\big{(}x_{i}^{t}-x_{k}^{t}\big{)}.\] (4) In the Equation (4) \(\Phi_{i}\) is a pseudo-random number between \(0\) and \(1\), \(k\) is a randomly selected index different that \(i\). If the fitness value of modified food source is better than the one's before exploration, the modified one replaces the original as a food source, otherwise it is discarded.
* Step 3--_Abandoning old food sources_. All of the unselected sources are left abandoned and replaced with new ones, created with a following formula: \[x_{i}=x_{min}+\omega_{i}(x_{max}-x_{min}),\] (5) where \(\omega_{i}\) is a pseudo-random number within range \([0,1]\) and max, min represent the upper and lower limits of the search area, respectively. Figure 1 presents the block diagram of the ABC algorithm.