## 4 Experiments  
### Experiment Setup  
The multi-layer GIN with \(L=3\) is used as the graph encoder if the problem size \(n<=50\). For larger-scale problems, \(L=5\). The \((m+3)\times n\) problem matrix of PFSP is the main training data, where the processing time of an operation is generated randomly from a \(U[0,100)\) distribution. In order to enable most of the jobs to be completed before the due date arrives, \(r_{i}\) and \(d_{i}\) are generated from \(U[0,50\times n]\) and \(U[r_{i}+2\times m\times p_{i},r_{i}+0.4\times n\times p_{i}]\), respectively. To ensure that the problem instance is reasonable, a job is randomly selected and its release date is set to 0. The proposed method is compared with the results of other methods over the Taillard [43] benchmark instances. The Taillard benchmark does not include the due date and release date constraints, so they are also generated from the above distribution. At the beginning of each step, the data of the training set is regenerated. The scale of the training set is _BatchNormSize_, and the data of the validation set are only generated once in the entire training process. The hyperparameter configuration of the method proposed is mainly shown in Table 2. All the codes of the experiment are written in Python, and the calculation of the objective function is accelerated by Cython. The experiments are all running in the environment of AMD 5600X CPU, RTX TITAN GPU, and 16G memory. It should be noted that the training and validation sets of the reinforcement model are randomly generated, the algorithms are compared on the Taillard [43] benchmarks, and the release dates and due dates are generated only once to ensure that the problem instances used to evaluate each method are the same.  
To improve the performance of the proposed hybrid iterative greedy method (\(IG_{h}\) in short), orthogonal experiments are conducted on two hyperparameters, \(d\) and \(T_{p}\). The factor level is given in Table 3. The average improvement percent (AIP) is used to evaluate the performance of the algorithm under different combinations of parameters. \(AIP=\frac{(Y_{ini}-Y_{res})}{m\times n\times 100}\times 100\%\), where \(Y_{ini}\) is the initial latework value of the algorithm, and \(Y_{res}\) is the latework value after the algorithm is executed. The results of the orthogonal tests are shown in Table 4. The effect of the parameters on the performance of the algorithm is plotted in Figure 9a,b. Finally, \(d\) of the \(IG_{h}\) algorithm is set to 4, and \(t_{p}\) is set to 0.7, due to the fact that the algorithm has the best performance at this parameter setting.  
\begin{table}
\begin{tabular}{c c} \hline
**Parameter** & **Value** \\ \hline BatchSize & 128 \\ Epoch & 100 \\ Steps per epoch & 3000 \\ Learning rate & \(1\times 10^{-3}\) \\ Learning rate decay & 0.975 \\ Decay step & 3000 \\ Hidden size & 128 \\ Validation set size & 1000 \\ Optimizer & Adam \\ \hline \end{tabular}
\end{table}
Table 2: Hyperparameter configuration.  
\begin{table}
\begin{tabular}{c c c} \hline
**Level** & \(d\) & \(T_{p}\) \\ \hline
1 & 2 & 0.3 \\
2 & 4 & 0.5 \\
3 & 6 & 0.7 \\
4 & 8 & 0.9 \\ \hline \end{tabular}
\end{table}
Table 3: Factor level of \(IG_{h}\).