## 4 Algorithms for Core System Functionality
### Dispatching Level Heuristics
The PDRs chosen by the authors to solve the \(n\times 1\) problems are shown in Table 5. The choice was propagated by interviews with the SME's production unit staff. The interviews highlighted the objectives most important to the planner and the foremen and are given in column 5 of Table 5, along with their mathematical descriptions. Once the required objectives to be satisfied were established, a thorough literature search was conducted to pinpoint the PDRs best suited to them. These PDRs were EDD, SPT, LPT, SST, minimum Slack, and PSF. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline \multirow{2}{*}{**Work Center Code**} & **Active SKUs** & \multirow{2}{*}{**Total No. of SKUs**} & **No. of Active** & **Total No. of** & \multirow{2}{*}{**Maximal Problem Instance**} \\  & **Spanning** & & **Orders Spanning** & & **Orders** & \\  & **Two PPS** & & **Two PPPs** & **(Including Late)** & **Instance** \\ \hline A511 & 24 & 62 & 34 & 70 & \(70\times 1\) \\ \hline A112 & 20 & 38 & 13 & 33 & \(33\times 1\) \\ \hline A111 & 16 & 35 & 16 & 27 & \(27\times 1\) \\ \hline A121 & 14 & 31 & 8 & 17 & \(17\times  
In the first-level dispatching, all the \(n\times 1\) problems are solved according to the weighted EDD rule. The due date is common for all on-time orders (end of the current PPP) and negative for the late ones (end of their previous PPP). As such, late orders are ranked first according to their significance level--the weights in the EDD--and the same is performed for the remaining ones. No machine idle time is allowed, since, for the \(n\times 1\) case, the optimal schedule utilizes the machine fully. Second-level dispatching is performed in a similar way, but with the rest of the PDRs in Table 5. Orders are classified and sent in ascending or descending order by SPT and LPT, respectively, based on their processing time. SST tries to group together similar SKUs (late and on time) in order to save setup time and can be strengthened further by selecting whether to schedule orders ascending or decreasing in setup length. There are no settings that are sequence-dependent, and the SME uses an average configuration for each work center. Slack prioritizes orders based on their processing time and due dates in order to avoid late orders. If late orders are not included since all the remaining ones have a common due date, slack is relegated to the LPT rule. Slack may seem redundant at this point, but the SME is planning to break the common due date rule by assigning smaller due dates to pre-subcontractor orders and that was the key driver behind the inclusion. Until the final definition of subcontractor due dates, PSF was included to give priority to the relevant orders by positioning them at the start of the PPP so as to outsource the post-processed components as early as possible. [PERSON] et al. (2022) [21] noted that combinations of PDRs will almost certainly outperform any simple PDR implementation; a conclusion derived from the high dependency of PDRs on problem-specific knowledge. With that in mind, the authors implemented a template through which the planner can create a combination (combo) of rules by assigning weights to each one. This enables the formulation of a production order sequence \(Sm\) that can be easily tweaked to suit a given problem better. The template is given in Equation (1) along with the constraints and possible values of the various parameters. \[S_{m}=\sum_{m_{i}=1}^{m_{i}=m}S_{m_{i}} \tag{1}\]  
where  
\[ \begin{array}{l}m_{i}=(w1\times SPTm_{i}+\delta 1\times WEDDm_{i})+(w2 \times LPTm_{i}+\delta 2\times WEDDm_{i})\\ +(w3\times PSFm_{i}+\delta 3\times WEDDm_{i})+(w4(k\times aSSTm_{i}+(1-k) dSSTm_{i})\\ +\delta 4\times WEDDm_{i})\end{array}  \tag{2}\]  
Subject to: