# Retinal Vessel Segmentation Using Math-Inspired Metaheuristic Algorithms
## 2 Materials and Methods
### Global Optimization Method Based on Clustering and Parabolic Approximation  
The GOBC-PA approach, which was proposed by [PERSON] et al. in 2016, simulates the clustering and function approximation processes in order to reach the global minimum [6]. The GOBC-PA algorithm differs from the other metaheuristic approaches primarily in terms of its crossover and mutation processes; in particular, the evaluation of each solution is followed by means of second-order polynomials and clustering instead of crossover and mutation. The updating of cluster centers via curve fitting and the usage of clustering mechanisms based on the fitness values strengthen this method, especially in terms of its convergence speed. The detailed pseudo-code of the GOBC-PA algorithm is given as follows:  
Randomly create an initial population \(X_{0}\in\ \Re^{N\ x\ p}\)  
Set the number of cluster size as \(S=\ round\ (N/3)\\) and maximum epoch size as \(M\)  
Calculate the fitness value produced by the objective function \(E\ (X_{0})\)  
_For \(k=1:M\)_  
Determine the cluster centers \(C_{k}=\ [c_{1}\ c_{2}\ \ldots\ c_{s}]^{T}\)  
Determine the membership matrix \(U_{k}\) of \([X_{k-1}\ E(\ X_{k-1}\ )]\) via clustering  
Sort the cluster centers \(C_{k}\) with ascending order in accordance with  
the fitness values  
Select the first _ceil_\((S/3)\) cluster centers as \((L_{k})\)  
_For \(r=1:S\)_  
Determine the **H** set which represent the members of \(L_{k,r}\) taken from \(X_{k-1}\)  
depending on \(U_{k-1}\)  
_If Member Size of \(H>1\)_  
Determine the parabola coefficient matrix \((A)\)  
Find the coefficients of approximated parabola \((\hat{\theta}_{r})\)  
_End if_  
_End for_  
_For \(i=1:p\)_  
Determine the vertex \(V_{i}\) of \(i^{th}\) parabola  
_If \(a_{i}\ <\ 0\), the \(i^{th}\) parabola can be assumed as concave and keep \(L_{k}(r,i)\)_  
_Else if \(a_{i}\ \geq\ 0\), the \(i^{th}\) parabola can be assumed as convex, and if \(E\ (L_{k}(r,i))\) is better than \(E\ (V_{i})\) then replace \(C_{clust_{k,r}}(t)\) with \(V_{i}\)_  
_Else if \(a_{i}\) is not a number or infinite then keep \(L_{k}(r,i)\)_  
_End if_  
_End for_  
Randomly create a new population \(X_{clust_{k}}\) around the \(C_{clust_{k}}\)  
Randomly create new population \(X_{best_{k}}\) around the current best two solutions  
Randomly create a new population \(Xrand_{k}\)  
Determine \(X_{k}\) as \(X_{k}\ =\ \begin{bmatrix}X_{clust_{k}}&L_{k}&X_{best_{k-1}}&X_{best_{k}}&X_{rand_{k}} \end{bmatrix} \)  
Calculate the fitness value of the objective function \(E\) by using the new  
population \(X_{k}\)  
Determine \(X_{k}^{*}\) as  
In the GOBC-PA algorithm, \(N\) and \(p\) represent the population size and the number of variables, respectively. The parabola coefficient matrix (\(A\)) and the coefficients of the approximated parabola (\(\hat{\theta}_{r}\)) can be calculated as  
\[A\ =\ \left[ \begin{array}{ccc}L_{k,r}^{2}&L_{k,r}&1\\ H^{2}&H&1\end{array} \right] \tag{24}\]  
\[\hat{\theta}_{r}=\ \ \left(A^{T}\cdot A\right)^{-1}\cdot A^{T}\cdot E\ \left( \left[ \begin{array}{ccc}L_{k,r}\\ H\end{array} \right]\ \right)\ =\ \left[ \begin{array}{ccc}a&b&c\end{array} \right] \tag{25}\]  
On the other hand, the vertex of the \(i^{th}\) parabola can be calculated as  
\[V_{i}\ =\ -\ \ \frac{b_{i}}{2a_{i}} \tag{26}\]  
The new population \(X_{clust_{k}}\) can be created around the \(C_{clust_{k}}\) using the following expression:  
\[X_{clust_{k}}\ =\ \frac{1}{2}\cdot\ \sigma_{clust_{k}}\cdot rand(-1,1)+ \left[L_{k}\ \ \ L_{k}\ \ \ L_{k}\right]^{T} \tag{27}\]  
where \(\sigma_{clust_{k}}\) represents the standard deviation of \(C_{clust_{k}}\). Furthermore, \(X_{best_{k}}\) can be calculated as follows:  
\[Xbest_{k}\ =\ \ \frac{\left(\overset{\rightharpoonup}{R_{\max}}-\overset{ \rightharpoonup}{R_{\min}}\right)}{2S}\cdot\ \ rand(6,p)+\left[Xbest_{k-1}\ \ \ Xbest_{k-1}\ \ \ Xbest_{k-1}\right]^{T} \tag{28}\]  
where \(\overset{\rightharpoonup}{R_{\min}}\) and \(\overset{\rightharpoonup}{R_{\max}}\) represent the lower and upper bounds of the solution space, respectively.