# Beyond Kanban: POLCA-Constrained Scheduling for Job Shops
## 4 Industrial Case: Aerospace Manufacturing Firm
### The Proposed Methodology
#### 4.2.2 Constraint Programming Model
\begin{table}
\begin{tabular}{l l} \hline \hline
**Symbol** & **Description** \\ \hline \(M\) & Number of workcenters \\ \(W\) & Number of workers \\ \(G\) & Number of cells \\ \(N\) & Number of orders \\ \(J_{i}\) & Number of jobs in order \(i\) \\ \(\mathcal{M}=\{1,\ldots,M\}\) & Set of all workcenters \(m\) \\ \(\mathcal{W}=\{1,\ldots,W\}\) & Set of all workers \(w\) \\ \(\mathcal{G}=\{1,\ldots,G\}\) & Set of all cells \(g\) \\ \(\mathcal{N}=\{1,\ldots,N\}\) & Set of all orders \(i\) \\ \(\mathcal{J}_{i}=\{1,\ldots,j_{i}\}\) & Sorted set of all jobs \(j\) in order \(i\) \\ \(\pi_{m}^{\text{W\'{C}}}\) & Boolean parameter: 1 if workcenter \(m\) \\  & can process multiple jobs simultaneously, 0 otherwise \\ \(\pi_{w}^{\text{W\'{C}}}\) & Boolean parameter: 1 if worker \(w\) \\  & can process multiple jobs simultaneously, 0 otherwise \\ \(\mathcal{S}_{w}^{\text{W\'{C}}}\) & Set of time slots when workcenter \(m\) is unavailable \\ \(\mathcal{S}_{w}^{\text{W\'{C}}}\) & Set of time slots when worker \(w\) is unavailable \\ \(P_{i/L}^{\text{W\'{C}}}\) & Processing time of job \((i,j)\) on the worker \\  & Additional processing time of job \((i,j)\) on the workcenter \\ \(P_{i,j}^{\text{W\'{C}}}\) & Additional processing time of job \((i,j)\) on the part number \\ \(\mu_{i,j}\) & Workcenter of job \((i,j)\) \\ \(\mathcal{K}_{i,j}\) & Set of workers qualified to process job \((i,j)\) \\ \(\tau_{ij}\) & Cell of job \((i,j-1)\) and the \\ \(\Delta_{ij}^{MIN}\) & Maximum delay between the end of job \((i,j-1)\) and the start of job \((i,j)\) \\ \(\mathcal{O}_{m}=\{(i,j):\forall i\in\mathcal{N},j\in\mathcal{J}_{i}|\mu_{i,j}=m\}\) & Set of jobs assigned to workcenter \(m\) \\ \(\Omega_{w}=\{(i,j):\forall i\in\mathcal{N},j\in\mathcal{J}_{i}|w\in\mathcal{K} _{i,j}\}\) & Set of jobs assignable to worker \(w\) \\ Set of jobs \((i,j_{1},j_{2})\) representing transitions between cells \(g_{1}\) and \(g_{2}\). Such that \(j_{1}<j_{2}\), \\ \(j_{1}=1\vee\ \gamma_{i,j_{1}-1}\
eq\tau_{i,j_{1}},j_{2}=I_{i}\vee\ \gamma_{i,j_{2}}\
eq\tau_{i,j_{2}+1}\) and \\  & \(\
exists j_{3}\in\{j_{1}+1,\ldots,j_{2}-1\}:\gamma_{i,j_{3}}\
eq\tau_{i,j_{3}} \wedge\ \gamma_{i,j_{2}}\
eq\tau_{i,j_{3}}\) \\ Arrival time of order \(i\) & Arrival time of order \(i\) \\ Quantum for POLCA loop \((i,j_{1},j_{2})\) & Quantum for POLCA loop \((i,j_{1},j_{2})\) \\ Due time of order \(i\) & Maximum number of active POLCA \(g_{1}|g_{2}\) cards \\  & Interval variable for order \(i\) \\  & Optional Interval variable for worker \(w\) executing job \((i,j)\) \\  & Interval variable for processing job \((i,j)\) on the worker \\  & Interval variable for processing job \((i,j)\) on the workcenter \\  & Interval variable for processing job \((i,j)\) \\  & Interval variable for POLCA card \(g_{i,j_{1}}|g_{i,j_{2}}\) utilization \\  & Integer variable representing the actual delay between \\  & the end of job \((i,j-1)\) and the start of job \((i,j)\) \\ \(\tau_{i}\) & Integer variable corresponding to tardiness of order \(i\) \\ \hline \hline \end{tabular}
\end{table} 
Table 7: Notation used in the constraint programming model. and (vi) the sum of all completion times, ensuring a balanced trade-off between schedule responsiveness and operational efficiency for a direct and fair comparison. \[ \begin{split}\text{Minimize}&\text{StaticLex}\left( \underbrace{\max_{i\in\mathcal{N}}\text{LengthOf}(\text{ordItv}_{i})}_{\text{(i) Max Lead Time}},\underbrace{\sum_{i\in\mathcal{N}}\text{LengthOf}(\text{ordItv}_{i})}_{\text{(ii) Sum of Lead Times}},\right.\\ &\underbrace{\sum_{i\in\mathcal{N}}\text{ifThenElse}\left(\tau_{i}>0,\,1,\,0\right)}_{\text{(iii) Number of tardy orders}},\end{split}