## Solution Implementation  
### Johnson Algorithm for Two Stages Flow Shop Scheduling  
Figure 5 shows the shop flow model of the previously mentioned case-study. The model is a special case of the two sequential stages manufacturing workcell which has been described in detail in Section 3.1. A set of jobs (O\({}_{i}\), n\({}_{i}\)) is assumed to be picked and placed by the cobot, where O\({}_{i}\) denotes  
Figure 4: Rule Management System components. the customized pump order in the same sequence they have been received and \(n_{i}\) denotes the required number of units of this order. In the context of reconfigurable manufacturing, the production order is a customized version of a specific product. In our case-study a centrifugal pump (CP) manufacturing has been chosen as an example for a reconfigurable product. At the first stage of the cooperative workcell, it has been assumed that the cobot will always take the same time constant (RTC) to pick and place any pump regardless the customization level. Therefore, the required \(T_{P}\) from the cobot to pick and place a customized order (RT\({}_{PI}\)) equals to the RTC multiplied by \(n_{i}\). At the second stage of the cooperative workcell, it has been assumed that we can continuously record the required time from the worker to assemble a job (O\({}_{i}\), \(n_{i}\)). Thus, an average time value (WMTV) can be calculated. Therefore, a predication for the required processing time from the worker to assemble the next job (WT\({}_{P(i+1)}\)) can be estimated as WMTV multiplied by \(n_{i+1}\). An example of calculating the job processing time can be seen in Table 2.  
[PERSON] algorithm is mainly depending on finding the shortest job processing time. This makes the algorithm simpler due to the assumption in our case-study. This is because RT\({}_{PI}\) and WT\({}_{PI}\) are correlated to each other's by \(n_{i}\), while this correlation did not exist at Table 1. Therefore, [PERSON] \begin{table}
\begin{tabular}{c c c c c c c c c c} \hline \hline \multicolumn{1}{c}{\multirow{2}{*}{**Unscheduled Jobs List**}} & \multicolumn{6}{c}{**[PERSON] Scheduling Case-1:**} & \multicolumn{2}{c}{**[PERSON] Scheduling Case-2:**} \\  & & & & & \multicolumn{2}{c}{**RTC \(\leq\) WMTV**} & \multicolumn{2}{c}{**RTC \(\geq\) WMTV**} \\ \hline J\({}_{i}\) = (O\({}_{i}\), n\({}_{i}\)) & RT\({}_{PI}\) & WT\({}_{PI}\) & J\({}_{i}\) & RT\({}_{PI}\) & WT\({}_{PI}\) & J\({}_{i}\) & RT\({}_{PI}\) & WT\({}_{PI}\) \\ J\({}_{1}\) = (O\({}_{i}\), n\({}_{i}\)) & RTC \({}^{*}\) n\({}_{1}\) & WMTV \({}^{*}\) n\({}_{1}\) & J\({}_{1}\) & RTC \({}^{*}\) n\({}_{1}\) & WMTV \({}^{*}\) n\({}_{1}\) & J\({}_{2}\) & RTC \({}^{*}\) n\({}_{2}\) & WMTV \({}^{*}\) n\({}_{2}\) \\ J\({}_{2}\) = (O\({}_{2}\), n\({}_{2}\)) & RTC \({}^{*}\) n\({}_{2}\) & WMTV \({}^{*}\) n\({}_{2}\) & J\({}_{2}\) & RTC \({}^{*}\) n\({}_{2}\) & WMTV \({}^{*}\) n\({}_{2}\) & J\({}_{1}\) & RTC \({}^{*}\) n\({}_{1}\) & WMTV \({}^{*}\) n\({}_{1}\) \\ \hline \hline \end{tabular} \(\leq\)\(\equiv\) Less than or equal to, \(\geq\)\(\equiv\) Greater than or equal to, \({}^{*}\)\(\equiv\) Multiplied by.  
\end{table} 
Table 2: Johnson Scheduling Based On RTC (Robot Time Constant) and WMTV (Worker Mean Time Value). Figure 5: **(a)** Model of the case-study workcell; **(b)** Analysis of the case-study model. algorithm can be obtained by comparing RTC to WMTV as shown in Table 2. Let us assume that \(n_{1}\) is less than \(n_{2}\). In case one, we will assume that RTC is less than or equal to WMTV, this means that \(RT_{P1}\) must be the shortest unscheduled processing time. Therefore, the sequence of the scheduled jobs will be \(J_{1}\) then \(J_{2}\). In case two, we will assume that RTC is greater than or equal to WMTV, this means that \(WT_{P1}\) must be the shortest unscheduled processing time. Therefore, the sequence of the scheduled jobs will be \(J_{2}\) then \(J_{1}\). From this comparison, we can modify Johnson steps to schedule the jobs based on the ascending sequence of \(n_{i}\), if RTC is less than or equal to WMTV.