#### 4.1. Augmented Graph

#### 4.1.1. Graph Model

Solving the problem described in (1) is difficult by using typical graph $G$, since there is no information about the arrival time of each vehicle at each node. Consequently, the inter-vehicle collision problem is unable to solve. To address such a problem, instead of using typical graph $G$, we developed a novel structure of the graph, which is called an augmented graph, denoted by ${G}^{\mathrm{a}}$. The augmented node can be constructed from the typical graph $G$. Let ${G}^{\mathrm{a}}\left({V}^{\mathrm{a}},{E}^{\mathrm{a}}\right)$ be an augmented graph, where ${V}^{\mathrm{a}}=\left\{{\psi}_{i,j,l}\right\}$, as long as ${b}_{i,j}=1$, $i,j\in \left\{1,\dots ,{N}_{\mathrm{v}}\right\}$ and $l\in \{1,2,\dots ,{N}_{\mathrm{s}}$}, is defined as a set of augmented nodes and ${E}^{\mathrm{a}}=\left\{{\xi}_{{i}_{1},{j}_{1},{l}_{1}}^{{i}_{2},{j}_{2},{l}_{2}}\right\}$, where ${\xi}_{{i}_{1},{j}_{1},{l}_{1}}^{{i}_{2},{j}_{2},{l}_{2}}=\left({\psi}_{{i}_{1},{j}_{1},{l}_{1}},{\psi}_{{i}_{2},{j}_{2},{l}_{2}}\right)$ is augmented edge, i.e., start and end connected sub-trajectories pairs ${\psi}_{{i}_{1},{j}_{1},{l}_{1}}$ and ${\psi}_{{i}_{2},{j}_{2},{l}_{2}}$. Note that the notation ${\xi}_{{i}_{1},{j}_{1},{l}_{1}}^{{i}_{2},{j}_{2},{l}_{2}}$ implies that ${\psi}_{{i}_{2},{j}_{2},{l}_{2}}$ must be a successor of ${\psi}_{{i}_{1},{j}_{1},{l}_{1}}$. Therefore, it is required that ${i}_{2}={j}_{1}$.

Figure 1 visualizes the proposed

${G}^{\mathrm{a}}$,

${V}^{\mathrm{a}}$, and

${E}^{\mathrm{a}}$.

${G}^{\mathrm{a}}$ expands the typical

$G$ from the node-to-node relation into transition-to-transition relation. In the typical graph

$G$, the edges are weighted by node-to-node distance

${L}_{i,j}$ while in the augmented graph

${G}^{\mathrm{a}}$, the augmented edges are weighted by acceleration, whose formulation is conducted using start and final speeds the node-to-node distance (see Equation (5)).

Figure 2 shows that, for a node-to-node trajectory, there are some speed alternatives to apply. Therefore, the augmented edge between any pair of augmented nodes can represent information of acceleration and traveling time, for instance, the transition from

${\psi}_{1,2,1}$ to

${\psi}_{2,3,2}$. The applied initial and target speeds at the endpoint of

${\psi}_{1,2,1}$ are

${s}_{1}$ and

${s}_{2}$, respectively. Therefore, the uniform acceleration

${a}_{1,2}$ along the augmented edge is formulated as following:

where

${L}_{i,j}$ is the length of the edge

${\mathrm{e}}_{1,2}$, and it is plotted to the transition from

${\psi}_{1,2,1}$ to

${\psi}_{2,3,2}$.

Furthermore, the traveling time,

$t$, related to the acceleration in Equation (2) is formulated as follows:

#### 4.1.2. Additional Adjacency Matrix

We introduced some supporting matrices to support the proposed algorithm. First of all, we introduced

edge matrix, denoted as

${}_{}{}^{\mathrm{e}}B=\left\{{}_{}{}^{\mathrm{e}}b{}_{i,j}|i,j\in \left\{1,2,\dots ,{N}_{\mathrm{v}}\right\}\right\}$, whose dimension is the same with the adjacency matrix

$B$. Let

${}_{}{}^{q}e$, where

q is the identifier of an edge whose value can be determined by Algorithm 1, be defined as the edge identifier of each element of

$B$, i.e.,

${b}_{i,j}$ that has the value of 1. Therefore, we get the following:

where

$i,j\in \left\{1,2,\dots ,{N}_{\mathrm{v}}\right\}$.

**Algorithm 1** Determine the index of edge matrix |

1: Input: B |

2: $q=0$; |

3: For $i=1$ to ${N}_{\mathrm{v}}$ |

4: For $j=1$ to ${N}_{\mathrm{v}}$ |

5: If $i\ne j$ and ${b}_{i,j}=1$, then q = q +1 and ${}_{}{}^{q}e=q$. |

6: End |

7: End |

8: Output: all $\left\{{}_{}{}^{q}e\right\}$. |

For instance, suppose that we have the following adjacency matrix of a graph

$G$ whose number of nodes is 5, as follows.

Therefore, by using (4), we have the following:

.

Furthermore, we use the index of

${}_{}{}^{q}e$, i.e.,

$q$ as the index of row of another adjacency matrix named

trajectory adjacency matrix, denoted as

${}_{}{}^{\psi}B$. Each row and each column of this matrix represent edge

${}_{}{}^{q}e$ and speed

${s}_{l}$, respectively. Let

${}_{}{}^{p}\psi $ be the element of

${}_{}{}^{\psi}B$, where we have the following:

$l\in \left\{1,2,\dots ,{N}_{\mathrm{s}}\right\}$ and

$q$ are defined in (4). Suppose that we apply three-speed options; therefore,

${N}_{\mathrm{s}}=3$. From the adjacency matrix example in Equation (5) and its respective edge matrix in (6), we have the elements of

$T$ as follows: For edge

${}_{}{}^{1}e$, we have three trajectories, i.e.,

${}_{}{}^{1}\psi $,

${}_{}{}^{2}\psi $, and

${}_{}{}^{3}\psi $. Since from Equations (5) to (7),

${}_{}{}^{1}e$ represents

${e}_{1,2}$, then

${}_{}{}^{1}\psi $,

${}_{}{}^{2}\psi $, and

${}_{}{}^{3}\psi $ represent

${\psi}_{1,2,1}$,

${\psi}_{1,2,2}$, and

${\psi}_{1,2,3}$, respectively. Similarly,

${}_{}{}^{5}e$ represents

${e}_{3,4}$. By using (10), we have trajectories

${}_{}{}^{13}\psi $,

${}_{}{}^{14}\psi $, and

${}_{}{}^{15}\psi $. Therefore, according to Equations (5)–(7),

${}_{}{}^{13}\psi $,

${}_{}{}^{14}\psi $, and

${}_{}{}^{15}\psi $ represent

${\psi}_{3,4,1}$,

${\psi}_{3,4,2}$, and

${\psi}_{3,4,3}$, respectively.

The last adjacency matrix is the

augmented-edge adjacency matrix, denoted by

${}_{}{}^{\xi}B$, where the row and column are indexed by the index of

${}_{}{}^{p}\psi $, i.e.,

$p$. Let

${}_{}{}^{h}\xi $ be the element of

${}_{}{}^{\xi}B$, whose value is not zero and be associated to

${\xi}_{{i}_{1},{j}_{1},{l}_{1}}^{{i}_{2},{j}_{2},{l}_{2}}$ by applying Algorithm 2.

**Algorithm 2** Determining the index of $\xi $: |

1: Inputs: ${}_{}{}^{\psi}B,{p}_{1},{p}_{2}$ |

2: Output: ${}_{}{}^{\xi}B$, ${}_{}{}^{h}\xi $ |

3: h = 0 |

4: For i = 1,…,$\left|{}_{}{}^{\psi}B\right|$// loop for all rows |

5: For j=1,…,$\left|{}_{}{}^{\psi}B\right|$ // loop for all columns |

6: ${c}_{1}$ = $ro{w}_{\psi}\left({}_{}{}^{i}\psi \right)$; ${c}_{2}$=$ro{w}_{\psi}\left({}_{}{}^{j}\psi \right)$ |

7: If ${c}_{1}\ne {c}_{2}$ |

8: If $en{d}_{\mathrm{e}}\left({}_{}{}^{{c}_{1}}e\right)$ = $star{t}_{\mathrm{e}}\left({}_{}{}^{{c}_{1}}e\right)$ |

9: h=h+1 |

10: ${}_{}{}^{\xi}b{}_{i,j}=h$ |

11: ${}_{}{}^{h}\xi =h$ |

12: Else |

13: ${}_{}{}^{\xi}b{}_{i,j}=0$ |

14: End |

15: Else |

16: ${}_{}{}^{\xi}b{}_{i,j}=0$ |

17: End if |

18: End for |

19: End for |

The functions $ro{w}_{\psi}\left(x\right)$, $star{t}_{\mathrm{e}}\left(x\right)$, and $en{d}_{\mathrm{e}}\left(x\right)$ return the row index belonged to the row in ${}_{}{}^{\psi}B$ containing x, the indexes of start and end node in ${}_{}{}^{\mathrm{e}}B$, respectively. In the previous example, there are ten edges and three speed options. The number of trajectories is 30 and the dimension of ${}_{}{}^{\xi}B={\mathbb{Z}}^{30\times 30}$. Until this step, we have the following adjacency matrices:${}_{}{}^{\mathrm{e}}B$, ${}_{}{}^{\psi}B$, and ${}_{}{}^{\xi}B$. Suppose that we are given ${}_{}{}^{h}\xi $; then, by using the map described in ${}_{}{}^{\xi}B$, we obtain ${}_{}{}^{{p}_{1}}\psi $ and ${}_{}{}^{{p}_{2}}\psi $, where ${p}_{1}$ and ${p}_{2}$ are the indexes of the row and column of ${}_{}{}^{\xi}B$ associated to ${}_{}{}^{h}\xi $. After that, we check the map in ${}_{}{}^{\psi}B$, and we obtain the edge ${}_{}{}^{q}e$ and speed option ${s}_{l}$ for each ${}_{}{}^{{p}_{1}}\psi $ and ${}_{}{}^{{p}_{2}}\psi $.

#### 4.2. Ant Colony Optimization

Ant Colony Optimization (ACO) was first introduced in Reference [

28]. This algorithm is powerful for routing problems such as traveling salesman problem (TSP), vehicle routing problem (VRP), and their variants [

17,

27]. The algorithm mimics the behavior of a colony of ants in foraging activities. Suppose that, at the beginning, the colony has no information about the location of the food source. An ant system (AS) consists of a set of artificial ants which perform foraging activities, from their nest to a food source. Some ants begin to move randomly to any direction and deposit a chemical called “pheromone”, whose trails will be traced by other ants. This process is iterated such that the optimal route is that with the maximum number of pheromone trails.

In this study, we used an ACO algorithm for finding trajectories for a multiple-vehicle system. The algorithm is different from the typical ones. It involves more than one species of ants whose pheromone the others cannot detect trails of. In the cases of CFMTSP, a species represents a vehicle. We develop an algorithm such that each species performs a collision-free trajectory, i.e., all species can prevent collision with each other. In this study, we assume that any two species are not colliding with each other if the difference of their arrival times exceeds a minimum allowable value.

Suppose that there exist

${N}_{\mathrm{u}}$ ant species. Each species consists of

${N}_{\mathrm{m}}$ ants. The

r-th ant of the

k-th species, denoted by

${\theta}^{k,r}$,

$k\in \{1,2,\dots ,{N}_{\mathrm{u}}\}$,

$r\in \left\{1,2,\dots ,{N}_{\mathrm{m}}\right\}$, represents the

k-th vehicle. Each ant is assumed to be able to recognize only the trails produced by ants of the same species. Therefore, if there exists a large concentration of pheromone in a sub-route, if it comes from different species, then it is less possible for the ant to choose that sub-route as a choice. As the typical ACO algorithms, as one ant passes a sub-route, it leaves pheromone trails along the sub-routes. From now on, the others will smell the trails, and based on the largest amount of pheromones, it will choose the sub-route. Even though there are pheromones produced by other different ant species, the ant cannot recognize them. This behavior is similar to the behavior of some colonies of ants in the real world, that is, they cannot recognize the trail of other different ant species, as reported in Reference [

40]. Researchers in that study have discovered that a species of ants, i.e.,

Lasius nigers (

La. nigers), is unable to recognize the pheromone trails produced by

Novomessor cockerelli (

N. cockerelli) and

Linepithema humilis (

Li. humilis). The reason is that their pheromone trails are constructed by different chemicals.

In this model, we applied the amount of pheromone applied to the proposed augmented graph

${G}^{\mathrm{a}}$ to augmented edges

${}_{}{}^{h}\xi $. Define

$n$,

${}_{}{}^{h}\tau {}^{k}$, and

$\mathsf{\Delta}{}_{}{}^{h}\tau {}^{k,r}$ as the iteration, the total amount of pheromone left by the

k-th ant species on augmented edges

${}_{}{}^{h}\xi $, and the increase of pheromone amount left by each

r-th ant of the

k-th ant species, respectively. We formulate

${}_{}{}^{h}\tau {}^{k}$ as follows.

if a solution is found and the

i-th and

j-th nodes are the part of the augmented edge passed through by the

k-th ant species, and

where

$\rho \u03f5(0,1]$ is defined as evaporation rate, if the search fails to find a solution. Furthermore,

$\mathsf{\Delta}{}_{}{}^{h}\tau {}^{k,r}$ is formulated as follows:

where

${d}^{k,r}$ is the total distance traveled by the

r-th ant from the

k-th species, and

$Q$ is a positive constant.

We apply the probability of selecting

${}_{}{}^{h}\xi $, i.e.,

$Pr({}_{}{}^{h}\xi )$ as follows:

Note that the selection of trajectories of more than one vehicle leads to a consequence of inter-vehicle collision-checking. Therefore, a procedure for checking the collision is developed.

Before describing the main algorithm, we define a number of variables: ${v}_{i,\mathrm{start}}^{k,r}$ and ${s}_{\mathrm{start}}^{k,r}$ are the initial position and speed, respectively. ${L}_{\mathrm{unv}}^{k}$, ${L}_{\mathrm{e}}^{k}$, ${L}_{\psi}^{k}$, ${L}_{\xi}^{k}$, and ${L}_{\xi ,\mathrm{sel}}^{k}$ are the lists of unvisited nodes, collection of edges, collection of trajectories, and collection of augmented-edges, the sequence of selected augmented-edges from the start to end nodes, respectively. ${L}_{\mathrm{vis}}^{i}$ is a collection for each node $i\in \left\{1,2,\dots ,{N}_{\mathrm{v}}\right\}$ that stores information of the k-th vehicle that has visited the node and its associated arrival time, ${t}_{i}^{k}$. ${\Psi}_{\mathrm{best}}^{k}$ is the best trajectory performed by the k-th species.

In Line 1 of Algorithm 3, the input is the graph $G$, initial positions ${v}_{i,\mathrm{start}}^{k,r}$, and speed ${s}_{\mathrm{start}}^{k,r}$ of each r-ant of the k-th ant species. Note that r also represents the index of iteration. Consequently, ${N}_{\mathrm{m}}$ represents the number of iterations. In Lines 3 and 4, all the required adjacency matrices are constructed, and ${L}_{\mathrm{unv}}^{k}$ for all ant species is set to be empty.

The searching process starts from Line 5. For each iteration, trajectories are constructed for each species. In Line 7, some required initializations are performed, such as the initial amount of pheromones. The values are set randomly small to prevent division-by-zero at the beginning at the process. The next processes are focused on identifying the augmented edge of the current occupied node, ${v}_{\mathrm{curr}}^{k}$.

The function CreateEdgeList(${v}_{\mathrm{curr}}^{k}$) is purposed to extract all edges ${}_{}{}^{q}e$ in $G$ whose start nodes are ${v}_{\mathrm{curr}}^{k}$. In this process, the edge matrix ${}_{}{}^{\mathrm{e}}B$ is used. The resulted ${}_{}{}^{q}e$ is then pushed to ${L}_{\mathrm{e}}^{k}$.

The next step is to extract the sub-trajectories, ${}_{}{}^{p}\psi $, whose edges are ${}_{}{}^{q}e$. However, two conditions make the extraction fail. First, it is possible that the end node of the edge ${}_{}{}^{q}e$, i.e., $en{d}_{\mathrm{e}}\left({}_{}{}^{q}e\right)$), was visited. Therefore, the availability of the end node of the edge must be checked (Line 13). Second, even though $en{d}_{\mathrm{e}}\left({}_{}{}^{q}e\right)$) is available, if there exists another ant occupying the node such that the second constraint is violated, then the process is continued to the next edge. This process is revealed in Lines 14–16.

If the end node of the edge

${}_{}{}^{q}e$ has not been visited yet and has no collision issue, then the function

CreateTrajectoriesList(

${L}_{\mathrm{e}}^{k}$,

${}_{}{}^{q}e$) is executed (Line 18). The

CreateTrajectoriesList(

${L}_{\mathrm{e}}^{k}$,

${}_{}{}^{q}e$) uses trajectory adjacency matrix

${}_{}{}^{\psi}B$ as reference to find the correct trajectories that are spanned by the

q-th edge in

${L}_{\mathrm{e}}^{k}$. If the end node of the edge

${}_{}{}^{q}e$ has been visited previously, the process will check the other edges. If there is no edge available, then it can be concluded that a complete trajectory is failed to found. Therefore, the process is continued to new iteration (Lines 29–32). In Line 30, the amount of pheromone trails is reduced by calling

ReducePheromoneTrailsAmount(

${L}_{\xi}^{k},{}_{}{}^{h}\tau {}^{k}$), which applies Equation (12).

**Algorithm 3** Main Algorithm |

1: Inputs: $G$, ${v}_{i,\mathrm{start}}^{k,r}$, ${s}_{\mathrm{start}}^{k,r}$, for all $k\in \left\{1,2,\dots ,{N}_{\mathrm{u}}\right\}$,$r\in \left\{1,2,\dots ,{N}_{\mathrm{m}}\right\}$, |

2: Perform $,{}_{}{}^{\mathrm{e}}B$, ${}_{}{}^{\psi}B$, and ${}_{}{}^{\xi}B$. |

3: ${\Psi}_{\mathrm{best}}^{k}\underset{}{\leftarrow}\{\}$, for all $k\in \left\{1,2,\dots ,{N}_{\mathrm{u}}\right\}$. |

4: ${L}_{\mathrm{unv}}^{k}\underset{}{\leftarrow}{\{\}}_{i=1}^{{N}_{\mathrm{v}}}$, for all $k\in \left\{1,2,\dots ,{N}_{\mathrm{u}}\right\}$. |

5: **For** r = 1 to ${N}_{\mathrm{m}}$ |

6: ${v}_{\mathrm{curr}}^{k}={v}_{i,\mathrm{start}}^{k,r}$ |

7: Initialize(${v}_{\mathrm{curr}}^{k}$, ${s}_{\mathrm{start}}^{k,r}$); |

8: ${L}_{\mathrm{unv}}^{k}\underset{}{\leftarrow}{\left\{{v}_{i}\right\}}_{i=1}^{{N}_{\mathrm{v}}}$, ${L}_{\mathrm{e}}^{k}\underset{}{\leftarrow}\{\}$, ${L}_{\psi}^{k}\underset{}{\leftarrow}\{\}$, ${L}_{\xi}^{k}\underset{}{\leftarrow}\{\}$, ${L}_{\xi ,\mathrm{sel}}^{k}\underset{}{\leftarrow}\{\}$, ${L}_{\mathrm{vis}}^{i}\underset{}{\leftarrow}\{\}$. |

9: **For** each k-th ant species |

10: **While** ${L}_{\mathrm{unv}}^{k}\ne \{\}$ |

11: ${L}_{\mathrm{e}}^{k}\underset{}{\leftarrow}$CreateEdgeList(${v}_{\mathrm{curr}}^{k}$). |

12: **For** each edge in ${L}_{\mathrm{e}}^{k}$, i.e., ${}_{}{}^{q}e$, |

13: **If** $en{d}_{\mathrm{e}}\left({}_{}{}^{q}e\right)\in {L}_{\mathrm{unv}}^{k}$, |

14: **If** IsCollided(${L}_{\mathrm{vis}}^{i}$, $en{d}_{\mathrm{e}}\left({}_{}{}^{q}e\right)$) is TRUE |

15: continue; |

16: **End** |

17: ${}_{}{}^{p}\psi =$ CreateSubTrajectoriesList(${L}_{\mathrm{e}}^{k}$,${}_{}{}^{q}e$). |

18: ${L}_{\psi}^{k}\underset{}{\leftarrow}{}_{}{}^{p}\psi $. |

19: **For** each p-th trajectory in ${L}_{\psi}^{k}$ i.e., ${}_{}{}^{p}\psi $, |

20: ${L}_{\xi}^{k}\underset{}{\leftarrow}$CreateAugmentedEdgesList(${L}_{\psi}^{k}$, ${}_{}{}^{p}\psi $). |

21: **End** |

22: ${L}_{\xi ,\mathrm{sel}}^{k}\underset{}{\leftarrow}$SelectAugmentedEdge(${L}_{\xi}^{k}$). |

23: $\left\{{\mathrm{t}}_{\mathrm{i},\mathrm{max}}^{\mathrm{k}}\right\}\underset{}{\leftarrow}$CalculateMaxArrivalTime(${L}_{\xi ,\mathrm{sel}}^{k}$). |

24: Remove(${L}_{\mathrm{unv}}^{k},en{d}_{\mathrm{e}}\left({}_{}{}^{q}e\right)$). |

25: Else |

26: continue. |

27: **End** |

28: **End** |

29: **If** ${L}_{\psi}^{k}==\{\}$ |

30: ${}_{}{}^{h}\tau {}^{k}=$ ReducePheromoneTrailsAmount(${L}_{\xi ,\mathrm{sel}}^{k},{}_{}{}^{h}\tau {}^{k}$) |

31: go to Line 5. |

32: **End** |

33: ${L}_{\psi}^{k}\underset{}{\leftarrow}\{\}$. |

34: **End** //end while |

35: **End** // end for |

36: ${}_{}{}^{h}\tau {}^{k}=$ CalculatePheromoneTrailsAmount(${L}_{\xi ,\mathrm{sel}}^{k},{}_{}{}^{h}\tau {}^{k}$), for all $k\in \left\{1,2,\dots ,{N}_{\mathrm{u}}\right\}$. |

37: $Pr\left({L}_{\xi ,\mathrm{sel}}^{k}\right)$ = CalculateProbability(${L}_{\xi ,\mathrm{sel}}^{k},{}_{}{}^{h}\tau {}^{k}$), for all $k\in \left\{1,2,\dots ,{N}_{\mathrm{u}}\right\}$. |

38: ${t}_{\mathrm{best}}^{k}$ = min($\{{\mathrm{t}}_{\mathrm{i},\mathrm{max}}^{\mathrm{k}}\}$) |

39: ${L}_{\mathrm{unv}}^{k}\underset{}{\leftarrow}{\{\}}_{i=1}^{{N}_{\mathrm{v}}}$ |

40: **End** |

41: Outputs: ${\psi}_{\mathrm{best}}^{k}$ with ${\mathrm{t}}_{\mathrm{i},\mathrm{max}}^{\mathrm{k}}$ = ${t}_{\mathrm{best}}^{k}$, for all $k\in \left\{1,2,\dots ,{N}_{\mathrm{u}}\right\}$. |

In Lines 19–21, the function CreateAugmentedEdgesList (${L}_{\psi}^{k}$, ${}_{}{}^{p}\psi $) is used to extract the augmented edges that is spanned by the p-th trajectory in ${L}_{\psi}^{k}$. This function uses augmented-edge adjacency matrix ${}_{}{}^{\xi}B$ as a reference to find the correct augmented edge that is spanned by the p-th trajectory in ${L}_{\psi}^{k}$. The result is ${}_{}{}^{h}\xi $ and is pushed to ${L}_{\xi}^{k}$, and we select the augmented edge, whose probability, calculated using Equation (11), is the largest. The selected augmented edge is then pushed into ${L}_{\xi ,\mathrm{sel}}^{k}$ (Line 22). In addition, the maximum traveling time, ${t}_{i,max}^{k}$, is calculated in Line 23. Here, the final value of ${t}_{i,max}^{k}$ is the traveling time of the slowest ant species. Moreover, the member of ${L}_{\mathrm{unv}}^{k}$ that is the same to $en{d}_{\mathrm{e}}({}_{}{}^{q}e$) is removed (Line 24), since the $en{d}_{\mathrm{e}}({}_{}{}^{q}e$) is selected to be visited.

After all ants from all species complete their routes, the pheromone trails on all augmented edges are updated in Line 31 by using Equation (11). By using the current pheromone trails, the probability of all augmented edges in ${L}_{\xi}^{k}$, $k\in \left\{1,2,\dots ,{N}_{\mathrm{u}}\right\}$ is calculated by using CalculateProbability(${L}_{\xi ,\mathrm{sel}}^{k},{}_{}{}^{h}\tau {}^{k}$) in Line 37. The global minimum, ${t}_{\mathrm{best}}^{k}$, is then calculated in Line 38. Finally, the output is ${\psi}_{\mathrm{best}}^{k}$ with ${\mathrm{t}}_{\mathrm{i},\mathrm{max}}^{\mathrm{k}}$ = ${t}_{\mathrm{best}}^{k}$, for all $k\in \left\{1,2,\dots ,{N}_{\mathrm{u}}\right\}$.