## 3 Integer Programming Formulation
\begin{table}
\begin{tabular}{c c} \hline \hline  & **Indices** \\ \hline \(t\), \(r\), \(s\) & task index \\ \(l\), \(p\), \(q\) & location index \\ \(w\) & workstation index \\ Parameters & \\ \(T\) & number of tasks \\ \(L\) & number of locations (equal to number of tasks) \\ \(W_{max}\) & number of workstations (equal to number of operators \\  & available) \\ \((r\), \(s)\in PR\) & a precedence relationship between tasks; production task \(r\) must \\  & be completed before task \(s\) starts \\  & a precedence relationship between locations; location \(p\) must be \\ \((p\), \(q)\in LR\) & assigned to a workstation no further from the entrance (or exit) \\  & than that to which location \(q\) is assigned \\ \(d_{pq}\) & walking time for the path between location \(p\) and \(q\) \\ \(O_{t}\) & production time of task \(t\) \\  & Decision variables \\ \(CT\) & cycle time \\ \(AT_{w}\) & total production time of tasks assigned to workstation \(w\) \\ \(WT_{w}\) & total walking time in workstation \(w\) \\ \(x_{tl}\) & \(=\left\{\begin{array}{c}1,\text{task }t\text{ assigned to location }l\\ 0,\text{ otherwise}\end{array}\right.\) \\ \(y_{lw}\) & \(=\left\{\begin{array}{c}1,\text{location }l\text{ assigned to}\\ 0,\text{ otherwise}\end{array}\right.\) \\  & 1, operator walk follows the \\ \(z_{pqw}\) & \(=\left\{\begin{array}{c}\begin{array}{c}\begin{array}{c}\text{path between location }p\text{ and }q\\ \text{in workstation }w\end{array}\end{array}\end{array}\right.\) \\ \(x_{\text{fl}}\) & \(=\left\{\begin{array}{c}\begin{array}{c}1,\text{task }t\text{ assigned to location }l\\ 0,\text{ otherwise}\end{array}\end{array}\right.\) \\ \(y_{lw}\) & \(=\left\{\begin{array}{c}\begin{array}{c}\text{1, location }l\text{ assigned to}\\ 0,\text{ otherwise}\end{array}\end{array}\right.\) \\  & 1, location walk follows the \\  & 1, pattern between location \(p\) and \(q\) \\  & 1 in workstation \(w\) \\  & 0, otherwise \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Definition of notations. \[y_{pw}\times\prod_{l=p+1}^{L}(1-y_{lw})\times y_{qw}=z_{pqw}\quad\forall\;w,\;\;p -q\geq 1,\;p\
eq L,\;q=1 \tag{12}\]  
\[y_{pw}\times y_{qw}=y_{pqw}\quad\forall\;w,\;p=L,\;q=1 \tag{13}\]  
\[\sum_{p=1}^{L}\sum_{q=1}^{L}z_{pqw}\times d_{pq}=WT_{w}\quad\forall\;w \tag{14}\]  
\[AT_{w}+WT_{w}\leq CT\quad\forall\;w \tag{15}\]  
\[x_{il},\;y_{lw},\;z_{pqw}\in\{0,\;1\} \tag{16}\]  
The integer programming formulation aims to minimize the cycle time as given in Equation (1). The cycle time is the maximum cycle time of all workstations, which is presented in Equation (15). Equation (2) ensures that each assembly task is only assigned to one location, and Equation (3) ensures that only one task is assigned to each location. Based on the restriction of Equations (1) and (2), \(\sum_{l=1}^{L}l\times x_{tl}\) can calculate the location that task \(t\) is assigned to. If assembly task \(r\) has to be carried out before assembly task \(s\) based on the assembly sequence, Equation (4) avoids assigning assembly task \(r\) to the location after assembly task \(s\) based on task sequence as illustrated in Figures 1 and 5. Equation (5) ensures that each location is assigned to only one workstation. As with the logic of Equation (4), \(\sum_{w=1}^{W_{max}}w\times y_{lw}\) can calculate the workstation that location \(l\) is assigned to. In Equation (6), based on the location sequence, if location \(p\) is closer to the entrance (or exit) than location \(q\) in the U-shaped assembly line, location \(q\) will not be assigned to the workstation closer to the entrance (or exit) than location \(p\). If task \(t\) is assigned to location \(l\) and location \(l\) is assigned to workstation \(w\), task \(t\) is assigned to workstation \(w\). Equation (7) is used to calculate the assembly times for all workstations. Equations (8)-(13) determine the walking paths of all operators in their corresponding workstations. Equation (8) adjusts the walking path between adjacent locations \(p\) and \(q\), and \(q-p=1\).