## 3 Problem Formulation
### Single-Purpose Machine Dataset  
Considering the FJSP for the single-purpose machine, a set of 'n' jobs is represented by \(J=\{J_{1},J_{2},J_{3},\ldots,J_{n}\}\) and a set of 'g' machine groups is represented by \(MG=\{MG_{1},MG_{2},\)\(MG_{3},\)\(\ldots,\)\(MG_{\text{g}}\}\). Each machine group can have m machines \(MG_{\text{g}}=\{M_{1},M_{2},\)\(\ldots,M_{\text{m}}\}\), and every operation has'm' machine choices. Each group of machines is dedicated to one unique operation, and the number of operations will be equal to the number of machines. This type of dataset has single-purpose machines (SPMs). Each operation in the job can be processed by any one machine out of a dedicated machine group. Each job consists of a sequence of operations represented as \(O=(O_{i1},O_{i2},\)\(\ldots,O_{ik},\)\(\ldots\)\(O_{i,ni})\). Each machine \(Mi\) becomes available at time \(AM\)\(\geq\)\(AM\)\(=\{AM_{1},\)\(AM_{2},\)\(\ldots,\)\(AM_{\text{m}}\}\). Each operation needs to be completed by a functional machine within a particular time \(T=\{T_{i1},\)\(T_{i2},\)\(\ldots,\)\(T_{ik}\}\). The processing time varies depending on the resources used for processing operations. Each machine has a different execution time, and every operation has a different resource usage time. Therefore, the processing time of machines, even within the same group, differs. Inother words, different machines may have different processing times for the same operation; some machines are faster, and some are slower.  
Considering the textile factory environment, many products are involved in production, such as pants (Product 1), shirts (Product 2), and t-shirts (Product 3), which correspond to \(J1\), \(J2\), and \(J3\), respectively. Each product undergoes a series of operations, such as sizing, weaving, knitting, dying, and printing [31; 32]. Table 1 shows the initial information for the FJSP. There are three jobs (\(J1\), \(J2\), \(J3\)), and each job has multiple operations. As shown in Table 1 there are four machine groups (\(MG_{1}\), \(MG_{2}\), \(MG_{3}\), \(MG_{3}\)), and every group performs a specific operation, which means all machines present in \(MG1\) perform the same operation. An operation \(OP_{11}\) has a choice of four machines, \(M_{1}\), \(M_{2}\), \(M_{3}\), and \(M_{4}\), whereas \(J1\) has two operations (\(OP_{11}\), \(OP_{12}\)). Depending on the product specifications, some of these operations may not be required. The symbol \"-\" indicates that the corresponding operation does not apply to that job. Each operation has a machine group to perform that operation; \(OP_{11}\) (job1, operation1) is processed on machine group 1 (\(MG_{1}\)), and \(MG_{1}\) has a choice of four machines: \(M1\) (8-unit processing time), \(M2\) (7-unit processing time), M3 (8-unit processing time), and \(M4\) (9-unit processing time). \(OP_{12}\) (job1, operation2) is processed on machine group 2 (\(MG_{2}\)), and \(MG_{2}\) has a choice of two machines, i.e., \(M5\) and \(M6\), with processing times of 4 and 5, respectively. Operations 3 (\(OP_{13}\)) and 4 (\(OP_{14}\)) are not available for \(J1\). On other hand, \(J2\) has two operations (\(OP_{22}\), \(OP_{24}\)) and job 3 has three operations (\(OP_{31}\), \(OP_{33}\), \(OP_{34}\)).