## 4 Methodology
Before describing them, recall that \(\vec{x}_{n}(t)\in X(t)\) and \(\vec{y}_{n}\in\mathfrak{X}\) are the \(n\)-th agent position from the current population and its candidate position, respectively. In addition, their corresponding fitness values are \(f(\vec{x}_{n})\) and \(f(\vec{y}_{n})\), since \(f:\mathfrak{X}\rightarrow\mathbb{R}\) is the objective function to minimise, and the difference between them is given by \(\Delta f_{n}(t)=f(\vec{y}_{n})-f(\vec{x}_{n}(t))\). Therefore, the new position \(\vec{x}_{n}(t+1)\) of the \(n\)-th agent is assigned by using the previous information and any of the selectors listed below. **Direct:**: The new position \(\vec{x}_{n}(t+1)\) of the \(n\)-th agent is straightforwardly designated equal to the candidate one \(\vec{y}_{n}\), i.e., \(\vec{x}_{n}(t+1)=\vec{y}_{n}\). **Greedy:**: The new position \(\vec{x}_{n}(t+1)\) for the \(n\)-th agent is assigned equal to \(\vec{y}_{n}\) if it improves the current position \(\vec{x}_{n}(t)\), i.e., \(\Delta f_{n}\leq 0\)), thus

\[\vec{x}_{n}(t+1)= \begin{cases}\vec{y}_{n},&\text{if }\Delta f_{n}\leq 0,\\ \vec{x}_{n}(t),&\text{otherwise}.\end{cases}  \tag{12}\]

**Probabilistic:**: The new position \(\vec{x}_{n}(t+1)\) for the \(n\)-th agent is set equal to \(\vec{y}_{n}\) if it improves the current position \(\vec{x}_{n}(t)\), i.e., \(\Delta f_{n}\leq 0\)). Should it be worsened, \(\vec{y}_{n}\) is selected with a given probability \(p_{s}\in[0,1]\), such that

\[\vec{x}_{n}(t+1)= \begin{cases}\vec{y}_{n},&\text{if }(\Delta f_{n}\leq 0)\lor(p_{s} <r),\\ \vec{x}_{n}(t),&\text{otherwise}.\end{cases}  \tag{13}\]
**Metropolis:**: The new position \(\vec{x}_{n}(t+1)\) for the \(n\)-th agent is set equal to \(\vec{y}_{n}\) if it improves the current position \(\vec{x}_{n}(t)\), i.e., \(\Delta f_{n}\leq 0\). Should it be worsened (\(\Delta f_{n}>0\)), \(\vec{y}_{n}\) is selected with a given probability of acceptance, as shown

\[\vec{x}_{n}(t+1)= \begin{cases}\vec{y}_{n},&\text{if }(\Delta f_{n}\leq 0)\lor \left(r<e^{-\frac{\Delta f_{n}(t)}{k_{B}(t)}}\right),\\ \vec{x}_{n}(t),&\text{otherwise},\end{cases}  \tag{14}\]since \(k_{B}\in\mathbb{R}_{+}\) is the Boltzmann's constant and \(\Theta(t):\mathbb{Z}_{+}\to\mathbb{R}_{+}\) is the temperature which decreases slowly with each iteration. There are many flavours for the temperature expression \(\Theta(t)\) in the literature [35]. ### Finalisers

Finally, but certainly not least important, we present the most common simple heuristics in charge of deciding when the search procedure must end. According to Definition 7, the differentiating point from one finaliser to another is the criteria function \(c_{f}\), which maps a set of measurements or features to a Boolean quantity. For that reason, we use the well-known Heaviside function \(H:\mathbb{R}\mapsto\mathbb{Z}_{2}\) in the criteria evaluation. These criteria can be found in the literature as _stopping conditions_[61]. It is worth noticing that these criteria are not exclusive, so one or more can be employed conjunctively as a finaliser, i.e.,

\[c_{f}(t,f,X,\dots)\triangleq\bigwedge_{\forall i}c_{f,i}(t,f,X,\dots), \tag{16}\]

where \(c_{f,i}\) is a particular criterion that depends of at least one parameter: the current iteration \(t\), objective function \(f\), agents positions \(X\), so forth. The most common criteria found in several numerical methods as briefly described below. **Iteration number:** In a searching procedure with \(t\) as the current iteration and \(t_{\text{max}}\) as the maximal number of iterations allowed, the criteria function is defined as \(c_{f,in}(t)\triangleq H(t-t_{\text{max}})\).