## 3 Algorithms Descriptions
### Proposed GRASP-Cellular Processing Algorithm (GRASP-CPA)  
In a similar manner as in EFT-ILS, our proposed algorithm GRASP-CPA consists of two phases (see Figure 2). First, a GRASP explores feasible tasks' orders for the next phase of the algorithm. In the second phase, the algorithm uses the best order \(o_{best}\) and solution \(s_{best}\) found by GRASP, in a homogeneous Cellular Processing Algorithm (CPA). The algorithm is composed by three ILS Processing Cells (PCells), the PCells have two functions that are independent from their ILS procedure. The first is to update the global best solution \(s_{best}\) if the PCell finds a better solution. The second is to update their current solutions through the communication processes. The communication is performed using the well-known single point-crossover from Genetic Algorithms (GAs), where two solutions from different PCells split and combine their information [12; 34]. This phase continues until a fixed number of iterations or CPU seconds is reached.  
Algorithm 7 describes our GRASP-CPA proposal, where the \(GRASP\)_Construction_ produces feasible orderings \(o^{\prime}\) that are evaluated using \(EFT\) to produce the solution \(s^{\prime}\) (see lines 5 and 6). Here, we can see that the algorithm uses a \(GRASP\)_Construction_ that receives an \(\alpha\) value that can be either 0.9 or 1 with the same probability. This \(\alpha\) value is used to restrict the candidate list (see lines 9 and 10 from Algorithm 3). GRASP algorithms usually use \(\alpha\) values between 0.1 and 0.3. However, preliminary experimentation proved that the our proposed \(\alpha\) values where the ones with the best performance for the instances used. Finally, line 12 executes the cellular processing section of the algorithm.  
Algorithm 8 shows the general idea of the \(CPA(s_{best},o_{best})\) function. Here, the execution of the ILS Processing Cells (see lines 5 and 7) iterate five times each one, which limits the inner computational effort of the Processing Cells. After the Processing Cells' execution, the _Communication_ processes the current solutions, recombining the \(s_{best}\) of PCell1 with the \(s_{best}\) of PCell2, the first offspring becomes the new current solution in PCell1. At the same time, the second offspring is used for a second recombination with the \(s_{best}\) of PCell3. The resulting offsprings from the second recombination become the new current solution of PCell2 and PCell3. This process continues until the stopping criterion is reached (see line 4).  
```
0:\(G=(T,C)\), computational costs \(P_{i,j}\).
0:\(s_{best}\), \(o_{best}\)
1:\(s^{\prime}\leftarrow\) Random initial solution
2:\(s_{best}\gets s^{\prime}\)
3:for\(i=1\) to \(MaxIterations\)do
4:\(\alpha\gets randomFrom(0.9,1.0)\)
5:\(o^{\prime}\gets GRASPConstruction(\alpha)\)
6:\(s^{\prime}\gets EFT(o^{\prime})\).
7:if\(f(s^{\prime})<f(s_{best})\)then
8:\(s_{best}\gets s^{\prime}\)
9:\(o_{best}\gets o^{\prime}\)
10:endif
11:endfor\(\triangleright\) If the external stopping criterion is reach stop the for loop
12:\(CPA(s_{best},o_{best})\).
```  
**Algorithm 7** GRASP-CPA  
```
0:\(s_{best}\), \(o_{best}\)
1:\(PCell1_{s_{current}}\gets s_{best}\)
2:\(PCell2_{s_{current}}\gets s_{best}\)
3:\(PCell3_{s_{current}}\gets s_{best}\)
4:while stopping criterion not reached do
5:\(PCell11 LS(PCell1_{s_{current}})\)
6:\(PCell21 LS(PCell2_{s_{current}})\)
7:\(PCell31 LS(PCell3_{s_{current}})\)
8:\(Communication(PCell1_{s_{current}},PCell2_{s_{current}},PCell3_{s_{current}})\)
9:endwhile
10:
```  
**Algorithm 8** Cellular Processing Algorithm section of the algorithm (GRASP-CPA)  
Figure 2: Proposed Greedy Randomized Adaptive Search Procedure (GRASP)-Cellular Processing Algorithm (CPA) flow chart diagram.