# Enhanced Hybrid Algorithms for Inverse Problem Solutions in Computed Tomography
## 3 Description of Optimization Algorithms
### The Nelder-Mead Method  
The Nelder-Mead algorithm is deterministic, meaning that the results for a fixed starting point will always be the same. It is designed to find the minimum of a function with \(n\) arguments by creating an \(n\)-dimensional simplex and transforming it towards the optimal arguments. It was first proposed in the year 1965 by [PERSON] and [PERSON]. More about the algorithm itself and its applications can be found in [25; 26; 27; 28] (see Figure 3).  
To describe the mechanism by which the algorithm works, it is essential to define some key concepts. A set of points \(\{x_{0},x_{1},\ldots,x_{k}\}\) in the space \(\mathbb{R}^{n}\) is called _affinely independent_. If the set of vectors \(\{\overrightarrow{x_{0}x_{1}^{i}},\overrightarrow{x_{0}x_{2}^{i}},\ldots, \overrightarrow{x_{0}x_{k}}\}\), it is linearly independent.  
If points \(x_{0},x_{1},\ldots,x_{k}\in\mathbb{R}^{n}\) are an affinely independent set, then a \(k\)-dimensional simplex with vertices \(x_{0},x_{1},\ldots,x_{k}\) is the smallest convex set containing points \(x_{0},x_{1},\ldots,x_{k}\). Further, a \(k\)-dimensional simplex will be marked as \(\Delta(x_{0},x_{1},\ldots,x_{k})\).  
The _center of gravity_ of a \(k\)-dimension simplex \(\Delta(x_{0},x_{1},\ldots,x_{k})\) in the space \(\mathbb{R}^{n}\) is a point \(x_{s}\in\mathbb{R}^{n}\) with the following coordinates:  
\[x_{s}^{j}=\frac{1}{k+1}\sum_{i=0}^{k}x_{i}^{j},j=1,2,\ldots,n. \tag{14}\]  
To describe the algorithm's work, the following notation is used:  
\begin{tabular}{l l} \(k\) & --dimension of the task, \\ \(\mathcal{F}\) & --fitness function, \\ \(x_{h}\) & --point for which the fitness function's value is the largest, \\ \(x_{g}\) & --point for which the fitness function's value is the second smallest, \\ \(x_{l}\) & --point for which the fitness function's value is the smallest, \\ \(x_{s}\) & --center of gravity of a simplex created from the original simplex \\  & \(\Delta(x_{0},x_{1},\ldots,x_{l})\) by removing vertex \(x_{h}\). \\ \end{tabular}  
Figure 2: JS algorithm’s block scheme.  
There are four main operations performed on the simplex, namely _reflection_, _expansion_, _contraction_, and _reduction_. These operations are described by the following formulas:  
* Reflecting: \[x_{r}=(1+\alpha)x_{s}-\alpha x_{h},\] (15)
* Stretching: \[x_{e}=\gamma x_{r}+(1-\gamma)x_{s},\] (16)
* Squeezing: \[x_{e}=\beta x_{h}+(1-\beta)x_{s},\] (17)  
Figure 3: Nelder-Mead algorithm’s block scheme.  
* Reducing: \[x_{i}^{\prime}=\frac{x_{i}+x_{l}}{2},\ \ i=0,1,\ldots,k,\] (18) where \(\alpha>0\)--the reflection coefficient, \(\gamma>1\)--the stretching coefficient, \(0<\beta<1\)--the squeezing coefficient. These coefficients can be adjusted for specific tasks. Based on experimentation, the authors of the method suggested the following values: \(\alpha=1,\,\gamma=2\), and \(\beta=0.5\). These values were used in the tests conducted for this paper. The algorithm operates until the following condition is met: \[\sqrt{\sum_{i=0}^{k}\frac{F_{i}-\overline{F}}{k+1}}<\varepsilon,\] (19) where \(F_{i}=\mathcal{F}(x_{i})\), \(\overline{F}=\frac{\sum_{i=0}^{k}F_{i}}{k+1}\), \(\varepsilon>0\) is a parameter for stopping the algorithm.