## 3 The MOFOA-HS for the Multi-Objective F-MSRCPSP
### Schedule Generation Scheme
#### 3.2.1 Flexible Parallel Schedule Generation Scheme (FPSGS)
However, due to the non-greedy manner, there are available resources that are not fully utilized. Hence, in this step, we take advantage of these remaining resources by expanding the resource combination for activities that belong to \(A_{t}^{a}\). In order for the activities to participate in secondary resource allocation to utilize leftover resources, there must be some combination of adopting the GSS for the available leftover resourcesremaining, and the quantity of \(p_{j}\) is no more than \(\overline{q}_{j}\). First, in order to control the number of resource combinations not to exceed \(\overline{q}_{jk}\) after expansion, the set \(\Omega\) consists of all possible combinations whose quantity of resources is in the range of 1 and \(min(n_{\varphi_{kt}}\), \(\overline{q}_{j}-n_{p_{j}})\) from \(\varphi_{kt}\). If the activity can be completed at \(T_{t}\), that is to say, the maximum \(\xi_{pk}\) in the \(\Omega\) is not less than the \(\xi_{jkt}\), then filter out the resource combination \(p\) whose \(\xi_{pk}\) is less than \(\xi_{jkt}\). Afterwards, additionally allocate the combination from \(\Omega\) with the GSS to the activity. Move the activity from \(A_{t}^{a}\) to \(A_{t}^{f}\) if \(\xi_{jkt}\) is met. Step 7: Enter the next time period. The resource allocation at the current time period \(T_{t}\) has ended and enters the next time period \(T_{t+1}\). ```
1. Initializing parameters: \(T_{t}=1\); \(A_{t}^{e}=[]\); \(A_{t}^{a}=[]\); \(A_{t}^{f}=[]\)
2. While there are activities not completed yet do
3. For\(A_{j}\) in sequence of \(\lambda\)do If\(A_{j^{\prime}}\
otin A_{t}^{f}\),\(\exists A_{j^{\prime}}\in P_{j}\)then Break Else move \(A_{j}\) from \(\lambda\) to \(A_{t}^{e}\)
4. For\(A_{j}\) in sequence of \(A_{t}^{a}\)do \(p_{j}=p^{\prime}_{j}\) if\(\sigma[j]==0\)and\(A_{j}\) could be completed with fewer resources then For\(p\) in sequence of \(\Omega\)do If\(\xi_{pk}<\xi_{jkt}\)then Eliminate the \(p\) from \(\Omega\) Get \(p_{j}\) from \(\Omega\) If\(A_{j}\) is completed then Move \(A_{j}\) from \(A_{t}^{a}\) to \(A_{t}^{f}\)
5. For\(A_{j}\) in sequence of \(A_{t}^{e}\)do \(p_{j}=\varnothing\) If\(\sigma[j]==0\)then if\(n_{\varphi_{kt}}\geq\underline{q}_{j}\)then Get \(p_{j}\) from \(\Omega\) Elseif All resources of \(\underline{p}_{j}\) are available then \(p_{j}=\underline{p}_{j}\) If\(p_{j}\
eq\varnothing\)then Move \(A_{j}\) from \(A_{t}^{e}\) to \(A_{t}^{a}\)
6. For\(A_{j}\) in sequence of \(A_{t}^{a}\)do If\(A_{j}\) could continue to allocate resources then If\(max(\xi_{p_{j}})\geq\xi_{jkt}\), \(\forall p\in\Omega\)then For\(p\) in sequence of \(\Omega\)do if\(\xi_{pk}<\xi_{jkt}\)then Eliminate the \(p\) from \(\Omega\)
7. Get the combination from \(\Omega\) with GSS If\(\xi_{jkt}\leq 0\)then Move \(A_{j}\) from \(A_{t}^{a}\) to \(A_{t}^{f}\)
8. \(T_{t}=T_{t}+1\)
```  
**Algorithm 1** The pseudo code of the FPSGS  
To further illustrate FPSGS, take the example in Section 2.2. Initialize \(T_{t}=1\), \(A^{a}=()\), \(A^{f}=()\), \(A^{e}=(4,3,2)\), because there are precedence constraints between \(A_{4}\) and \(A_{5}\). Skip Step 4, because \(A^{a}=()\). During Step 3, firstly allocate resources to \(A_{4}\) due to their position in \(\lambda\). As \(\sigma(4)=1\), allocate \(R_{2}\) to \(A_{4}\) with NGSS. Allocate \(R_{1}\) to \(A_{3}\) from \(R_{1}\) and \(R_{3}\) with NGSS, because \(\sigma(3)=0\), and start eligible activities with the lower usage bound. Similarly, allocate the remaining resource \(R_{2}\) to \(A_{2}\). End this step with \(A^{e}=()\) and \(A^{a}=(4,3,2)\). Then, skip Step 6, because there are no resources left. In time period 2, continue the previous resource combination for \(A^{a}\). \(A_{4}\) is completed and transfers from \(A^{a}\) to \(A^{f}\) in time period 4. Then, in time period 5, due to the completion of \(A_{4}\), \(A_{5}\) could be eligible. Update \(A^{e}=(5,1)\) and \(A^{a}=(3)\). Allocate \(R_{2}\) to \(A_{1}\), because both \(R_{1}\) and \(R_{3}\) required for \(A_{5}\) are occupied. \(A_{2}\) is completed in time period 6.