1 Preliminaries
2 \({\text{Heijunka}} - Fm\)/\(prmu\)/\(\user2{C}_{{{\text{max}}}}\)/\(\user2{d}_{\user2{i}}\) Problem
-
\(I:\) set of product types, \(i = 1,..,\left| I \right|\).
-
\({\text{{\rm T}}}\): set of manufacturing cycles in every demand plan, \(t = 1,..,\left| {\text{{\rm T}}} \right|\); \(T \equiv \left| {\text{{\rm T}}} \right|\).
-
\(d_{i} :\) demand for units of type \(i \in I\) in an arbitrary demand plan.
-
\(\lambda _{i} :\) proportion of units of type \(i \in I\): \(\lambda _{i} = d_{i} /T\) \(\forall i \in I\).
-
\(X_{{i,{\text{~}}t}} :\) number of units of type \(i \in I\) in the partial sequence \(\pi \left( t \right) \subseteq \pi \left( T \right)\): actual production associated with the partial sequence \(\pi \left( t \right)\).
-
Efficiency: objective function to minimize the maskespan \(C_{\text{max}}\).
-
Technical-productive: Quota property to enforce preservation of the production mix in the Heijunka manufacturing sequence \(\pi \left( T \right).\)
-
The set of job types \(\left( {I:i = 1,..,\left| I \right|} \right)\) and the set of stations \(\left( {K:k = 1,..,\left| K \right|} \right)\).
-
The processing times \(p_{{i,k}} ~\left( {i \in I{ \curlywedge }k \in K} \right)\) of the operations.
-
The demand vectors \(\vec{d} = \left( {d_{1} , \ldots ,d_{{\left| I \right|}} } \right)\) and production mix \(\vec{\lambda } = \left( {\lambda _{1} , \ldots ,\lambda _{{\left| I \right|}} } \right)\).
2.1 Model Q-FSP
3 An illustrative example
\(A~\left( {d_{A} = 3} \right)\) | \(B~\left( {d_{B} = 1} \right)\) | \(C~\left( {d_{c} = 2} \right)\) | \(\mathop \sum \nolimits_{{\forall i}} d_{i} \times p_{{i,k}}\) | |
---|---|---|---|---|
\({m}_{1}\) | 5 | 4 | 3 | 25 |
\({m}_{2}\) | 5 | 4 | 4 | 27 |
\({m}_{3}\) | 4 | 3 | 5 | 25 |
\(\mathop \sum \nolimits_{{\forall k}} d_{i} \times p_{{i,k}}\) | \(42~\left( {3 \times 14} \right)\) | \(11~\left( {1 \times 11} \right)\) | \(24~\left( {2 \times 12} \right)\) | \(p_{{{\text{tot}}}} = 77\) |
\(i\) | \(t = 1\) | \(t = 2\) | \(t = 3\) | \(t = 4\) | \(t = 5\) | \(t = 6\) | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
\(X_{{i,~t}}\) | \(\left[ {a,b} \right]\) | \(X_{{i,~t}}\) | \(\left[ {a,b} \right]\) | \(X_{{i,~t}}\) | \(X_{{i,~t}}\) | \(X_{{i,~t}}\) | \(\left[ {a,b} \right]\) | \(X_{{i,~t}}\) | \(\left[ {a,b} \right]\) | \(X_{{i,~t}}\) | \(\left[ {a,b} \right]\) | |
A | 0 | [0,1] | 0 | [1,1] | 1 | [1,2] | 2 | [2,2] | 3 | [2,3] | 3 | [3,3] |
B | 0 | [0,1] | 0 | [0,1] | 0 | [0,1] | 0 | [0,1] | 0 | [0,1] | 1 | [0,1] |
C | 1 | [0,1] | 2 | [0,1] | 2 | [1,1] | 2 | [1,2] | 2 | [1,2] | 2 | [2,2] |
4 Metaheuristic procedure for \(\user2{Heijunka} - \user2{Fm}\)/\(\user2{prmu}\)/\(\user2{C}_{{\user2{max}}}\)/\(\user2{d}_{\user2{i}}\)
4.1 Phase 1: construction of a Quota sequence
4.2 Model maxsat Q-PRV
4.3 Phase 2: improvement \(\user2{C}_{{{\text{max}}}}\) of the quota sequences through local search
5 A case study in an engine plant
5.1 Data set
-
There are 9 job types \((\left|I\right|=9\)) so that each job type corresponds to a type of engine.
-
The workshop (line) has 21 workstations (\(\left|K\right|=21\)) arranged in series.
-
In this work, we consider 23 engine demand plans \(\left|\mathrm{{\rm E}}\right|=23\) (see Table 3).
-
The daily demand is 270 jobs for all demand plans \(T \equiv D_{\varepsilon } = 270~{\text{jobs}}~\left( {\forall \varepsilon \in {\text{{\rm E}}}} \right)\).
-
The demand plans have been grouped into 7 categories (see Table 4).
-
The values of the processing times at normal work pace \(p_{{i,k}} \left( {\forall i \in I,\forall k \in K} \right)\) are between \(89{\text{s}}\) and \(185{\text{s}}\) (see Table 5).
\(\varepsilon \in \mathrm{{\rm E}}\) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | SUV | Van | Truck | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 90 | 60 | 120 | 270 |
2 | 30 | 30 | 30 | 45 | 45 | 23 | 23 | 22 | 22 | 90 | 90 | 90 | 270 |
3 | 10 | 10 | 10 | 60 | 60 | 30 | 30 | 30 | 30 | 30 | 120 | 120 | 270 |
4 | 40 | 40 | 40 | 15 | 15 | 30 | 30 | 30 | 30 | 120 | 30 | 120 | 270 |
5 | 40 | 40 | 40 | 60 | 60 | 8 | 8 | 7 | 7 | 120 | 120 | 30 | 270 |
6 | 50 | 50 | 50 | 30 | 30 | 15 | 15 | 15 | 15 | 150 | 60 | 60 | 270 |
7 | 20 | 20 | 20 | 75 | 75 | 15 | 15 | 15 | 15 | 60 | 150 | 60 | 270 |
8 | 20 | 20 | 20 | 30 | 30 | 38 | 38 | 37 | 37 | 60 | 60 | 150 | 270 |
9 | 70 | 70 | 70 | 15 | 15 | 8 | 8 | 7 | 7 | 210 | 30 | 30 | 270 |
10 | 10 | 10 | 10 | 105 | 105 | 8 | 8 | 7 | 7 | 30 | 210 | 30 | 270 |
11 | 10 | 10 | 10 | 15 | 15 | 53 | 53 | 52 | 52 | 30 | 30 | 210 | 270 |
12 | 24 | 23 | 23 | 45 | 45 | 28 | 28 | 27 | 27 | 70 | 90 | 110 | 270 |
13 | 37 | 37 | 36 | 35 | 35 | 23 | 23 | 22 | 22 | 110 | 70 | 90 | 270 |
14 | 37 | 37 | 36 | 45 | 45 | 18 | 18 | 17 | 17 | 110 | 90 | 70 | 270 |
15 | 24 | 23 | 23 | 55 | 55 | 23 | 23 | 22 | 22 | 70 | 110 | 90 | 270 |
16 | 30 | 30 | 30 | 35 | 35 | 28 | 28 | 27 | 27 | 90 | 70 | 110 | 270 |
17 | 30 | 30 | 30 | 55 | 55 | 18 | 18 | 17 | 17 | 90 | 110 | 70 | 270 |
18 | 60 | 60 | 60 | 30 | 30 | 8 | 8 | 7 | 7 | 180 | 60 | 30 | 270 |
19 | 10 | 10 | 10 | 90 | 90 | 15 | 15 | 15 | 15 | 30 | 180 | 60 | 270 |
20 | 20 | 20 | 20 | 15 | 15 | 45 | 45 | 45 | 45 | 60 | 30 | 180 | 270 |
21 | 60 | 60 | 60 | 15 | 15 | 15 | 15 | 15 | 15 | 180 | 30 | 60 | 270 |
22 | 20 | 20 | 20 | 90 | 90 | 8 | 8 | 7 | 7 | 60 | 180 | 30 | 270 |
23 | 10 | 10 | 10 | 30 | 30 | 45 | 45 | 45 | 45 | 30 | 60 | 180 | 270 |
Category | Plans | Type of demand plan |
---|---|---|
01 | #1 | Balanced demand for products |
02 | #2 | Balanced demand for families |
03 | #3 to #5 | Very low demand for a family |
04 | #6 to #8 | High demand for a family |
05 | #9 to #11 | Very high demand for a family |
06 | #12 to 17 | Family demand in arithmetic progression |
07 | #18 to 23 | Family demand in hypergeometric progression |
\(k\backslash i\) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Av |
---|---|---|---|---|---|---|---|---|---|---|
1 | 104 | 100 | 97 | 92 | 100 | 94 | 103 | 109 | 101 | 100.0 |
2 | 103 | 103 | 105 | 107 | 101 | 108 | 106 | 102 | 110 | 105.0 |
3 | 165 | 156 | 164 | 161 | 148 | 156 | 154 | 164 | 155 | 158.1 |
4 | 166 | 175 | 172 | 167 | 168 | 167 | 168 | 156 | 173 | 168.0 |
5 | 111 | 114 | 114 | 115 | 117 | 117 | 115 | 111 | 111 | 113.9 |
6 | 126 | 121 | 122 | 124 | 127 | 130 | 120 | 121 | 134 | 125.0 |
7 | 97 | 96 | 96 | 93 | 96 | 89 | 94 | 101 | 92 | 94.9 |
8 | 100 | 97 | 95 | 106 | 94 | 102 | 103 | 102 | 100 | 99.9 |
9 | 179 | 174 | 173 | 178 | 178 | 171 | 177 | 171 | 174 | 175.0 |
10 | 178 | 172 | 172 | 177 | 178 | 177 | 175 | 173 | 175 | 175.2 |
11 | 161 | 152 | 168 | 167 | 167 | 166 | 172 | 157 | 177 | 165.2 |
12 | 96 | 106 | 105 | 97 | 101 | 100 | 96 | 104 | 96 | 100.1 |
13 | 99 | 101 | 102 | 101 | 99 | 101 | 96 | 102 | 99 | 100.0 |
14 | 147 | 155 | 142 | 154 | 146 | 143 | 154 | 153 | 155 | 149.9 |
15 | 163 | 152 | 156 | 152 | 153 | 152 | 154 | 156 | 156 | 154.9 |
16 | 163 | 185 | 183 | 178 | 169 | 173 | 172 | 182 | 171 | 175.1 |
17 | 173 | 179 | 178 | 169 | 173 | 178 | 174 | 175 | 175 | 174.9 |
18 | 176 | 167 | 181 | 180 | 172 | 173 | 173 | 168 | 184 | 174.9 |
19 | 162 | 150 | 152 | 152 | 160 | 151 | 155 | 148 | 167 | 155.2 |
20 | 164 | 161 | 157 | 159 | 162 | 160 | 162 | 158 | 157 | 160.0 |
21 | 177 | 161 | 154 | 168 | 172 | 170 | 167 | 149 | 169 | 165.2 |
5.2 Procedures and computational analysis
\(\varepsilon \in \mathrm{{\rm E}}\) | MILP-1 | MILP-2 | MS-Q | ||||||
---|---|---|---|---|---|---|---|---|---|
\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{1}\) | \(\mathrm{C}\mathrm{P}\mathrm{U}\) | \(LB\) | \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{2}\) | \(\mathrm{G}\mathrm{a}\mathrm{p}\) | \(\mathrm{C}\mathrm{P}\mathrm{U}\) | \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{3}\) | \(\mathrm{G}\mathrm{a}\mathrm{p}\) | \(\mathrm{C}\mathrm{P}\mathrm{U}\) | |
1 | 50,091 | 45.8 | 50,100 | 50,101 | 20 | 3600.6 | 50,101 | 20 | 176.8 |
2 | 50,174 | 15.2 | 50,180 | 50,180 | 0 | 366.7 | 50,180 | 0 | 130.8 |
3 | 50,301 | 10.3 | 50,303 | 50,303 | 0 | 37.9 | 50,303 | 0 | 15.5 |
4 | 50,167 | 13.6 | 50,170 | 50,170 | 0 | 38.6 | 50,170 | 0 | 213.0 |
5 | 50,379 | 9.9 | 50,385 | 50,385 | 0 | 45.7 | 50,385 | 0 | 73.6 |
6 | 50,202 | 14.3 | 50,202 | 50,202 | 0 | 14.1 | 50,204 | 40 | 2.9 |
7 | 50,395 | 8.3 | 50,397 | 50,397 | 0 | 33.4 | 50,397 | 0 | 180.1 |
8 | 50,123 | 12.4 | 50,126 | 50,128 | 40 | 3600.3 | 50,130 | 80 | 233.5 |
9 | 50,378 | 10.4 | 50,378 | 50,378 | 0 | 17.0 | 50,378 | 0 | 5.3 |
10 | 50,619 | 7.6 | 50,625 | 50,625 | 0 | 9.0 | 50,625 | 0 | 15.9 |
11 | 50,078 | 25.3 | 50,084 | 50,084 | 0 | 162.4 | 50,086 | 40 | 48.7 |
12 | 50,192 | 17.4 | 50,196 | 50,196 | 0 | 102.4 | 50,196 | 0 | 176.0 |
13 | 50,123 | 14.8 | 50,126 | 50,136 | 199 | 3600.3 | 50,136 | 199 | 12.7 |
14 | 50,218 | 10.1 | 50,223 | 50,223 | 0 | 134.7 | 50,224 | 20 | 48.7 |
15 | 50,242 | 10.5 | 50,242 | 50,242 | 0 | 105.0 | 50,242 | 0 | 175.7 |
16 | 50,118 | 55.8 | 50,123 | 50,123 | 0 | 160.3 | 50,128 | 100 | 129.0 |
17 | 50,269 | 10.6 | 50,273 | 50,273 | 0 | 74.0 | 50,275 | 40 | 4.3 |
18 | 50,273 | 14.3 | 50,273 | 50,273 | 0 | 15.1 | 50,275 | 40 | 8.3 |
19 | 50,475 | 8.1 | 50,481 | 50,481 | 0 | 7.8 | 50,481 | 0 | 15.0 |
20 | 50,089 | 96.1 | 50,100 | 50,100 | 0 | 65.2 | 50,100 | 0 | 48.1 |
21 | 50,307 | 13.8 | 50,307 | 50,307 | 0 | 10.5 | 50,307 | 0 | 5.4 |
22 | 50,539 | 7.3 | 50,545 | 50,545 | 0 | 9.3 | 50,545 | 0 | 31.9 |
23 | 50,151 | 11.0 | 50,157 | 50,157 | 0 | 44.0 | 50,158 | 20 | 24.3 |
Av | 50,256.7 | 19.3 | 50,260.7 | 50,261.3 | 11.3 | 532.8 | 50,262.0 | 26.0 | 77.2 |
Max | 50,619 | 96.1 | 50,625 | 50,625 | 199 | 3600.6 | 50,625 | 199 | 233.5 |
Min | 50,078 | 7.3 | 50,084 | 50,084 | 0 | 7.8 | 50,086 | 0 | 2.9 |
\(\varepsilon \in \mathrm{{\rm E}}\) | Identification number of the instances for Plan#1 to Plan#23 |
---|---|
\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{1}\) | Optimal value of makespan for the \(Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem obtained for MILP-1 |
\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{2}\) | Best makespan value for the \(\mathrm{H}\mathrm{e}\mathrm{i}\mathrm{j}\mathrm{u}\mathrm{n}\mathrm{k}\mathrm{a}-Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem obtained for procedure MILP-2 |
\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{3}\) | Best makespan value for the \(\mathrm{H}\mathrm{e}\mathrm{i}\mathrm{j}\mathrm{u}\mathrm{n}\mathrm{k}\mathrm{a}-Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem obtained for procedure MS-Q |
\(LB\) | \({C}_{max}\) lower limit for the \(\mathrm{H}\mathrm{e}\mathrm{i}\mathrm{j}\mathrm{u}\mathrm{n}\mathrm{k}\mathrm{a}-Fm\)/\(block\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem obtained for MILP-1 or MILP-2 using the CPLEX solver |
\(\mathrm{G}\mathrm{a}\mathrm{p}\) | Relative gap between \(C_{{{\text{max}}}}^{h} ~\left( {h \in \left\{ {2,3} \right\}} \right)\) and \(LB\) measured in millionths |
-
MILP-1: Model \(Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\): (i) Objective function for minimizing the \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\) value of the production sequence; (ii) implementation for IBM ILOG CPLEX solver (Optimization Studio v.12.2, win- × 86–64); (iii) maximum CPU time of 180 s allowed for solving each instance (23 instances). The average CPU time used by each demand plan to find the optimal solution is equal to 19.3 s. This procedure is used to determine adjusted lower bounds for the problem under study.
-
MILP-2: Model \(Hejunka-Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) (this work): (i) Objective function for minimizing the \({C}_{max}\) value of the Quota production sequence; (ii) implementation for IBM ILOG CPLEX solver (Optimization Studio v.12.2, win- × 86–64); (iii) maximum CPU time of 3600 s allowed for solving each instance (23 instances). The average CPU time used by each demand plan to find the best solution is equal to 532.8 s.
-
MS-Q: Is the Multistart algorithm presented in this work, which is focused on minimizing the total completion time \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\) in Quota manufacturing sequences. The maximum number of iterations for each demand plan from Nissan-9Eng.I instances is equal to 20 with five candidate admission factors \(\alpha = \left( {0.11,~0.20,~0.33,~0.50,~1} \right)\), which generates in the constructive phase 1863 solutions and 14,110 improved solutions (improvement phase) in 115 executions. MS-Q uses on average a CPU time equal to 77.2 s to find the best solution for each demand plan and each admission factor \(\alpha \).
-
Procedure MILP-1 obtains and ensures optimal solutions in all instances with 270 jobs (23 instances Nissan-9Eng.I) when the \(Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem is solved (see column \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{1}\) in Table 6). The solutions obtained by MILP-1 do not necessarily satisfy the Quota property: MILP-1 violates the Quota property in 18 of 23 demand plans.
-
Procedure MILP-2 obtains and ensures optimal solutions in 20 of the 23 instances with 270 jobs when the \(Heijunka-Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem is solved (see column \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{2}\) in Table 6). All the solutions obtained by MILP-2 satisfy the Quota property.
-
Procedure MS-Q obtains optimal solutions in 13 of the 23 instances with 270 jobs when the \(Heijunka-Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem is solved (see column \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{3}\) in Table 6). All the solutions obtained by MS-Q satisfy the Quota property.
-
Regarding the value of objective \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\), on average, MS-Q solutions differ by 0.7 s from MILP-2, in a range of values between 0 and 5 s (see columns \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{2}\) and \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{3}\) in Table 6), when considering a 50,770 s workday to build 270 engines. Consequently, MS-Q solutions can be considered equivalent to MILP-2 from the perspective of the management of productive operations.
-
The average value of the relative gap between \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{2}\) and \(LB\) achieved by MILP-2 is 1.13E-05 in a range of values between 0 and 1.99E-04.
-
The average value of the relative gap between \({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{3}\) and \(LB\) achieved by MS-Q is 2.60E-05 in a range of values between 0 and 1.99E-04.
-
The average CPU times used by MILP-1 (to determine lower bounds for the problem under study) are approximately 19.3 s for each instance of 270 jobs in a range of values between 7.3 and 96.1 s, when a maximum CPU time equal to 180 s is imposed on CPLEX to solve each instance for \(Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem.
-
The average CPU times used by MILP-2 are approximately 532.8 s for each instance of 270 jobs in a range of values between 7.8 and 3600.6 s, when a maximum CPU time equal to 3600 s is imposed on CPLEX to solve each instance of the problem under study.
-
The average CPU time used by MS-Q is equal to 77.2 s within a range of values between 2.9 and 233.5 s, when 20 iterations are performed with the algorithm.
-
In average CPU times, MS-Q is 6.902 times faster than MILP-2.
-
In average relative gap, MILP-2 solutions are at 1.13E-05 of the lower bound while MS-Q solutions are at 2.60E-05 of that bound, which constitutes a technical tie.
\(\varepsilon \in \mathrm{{\rm E}}\) | Phase 1 | Phase 2 | |||||
---|---|---|---|---|---|---|---|
\({\alpha }^{*}(\varepsilon )\) | \({r}_{mxs}^{*}(\varepsilon )\) | \(\%{r}_{\mathrm{n}\mathrm{o}\_Q}(\varepsilon )\) | \({\mathrm{i}\mathrm{t}\mathrm{e}\mathrm{r}}^{*}(\varepsilon )\) | \({\mathrm{s}\mathrm{o}\mathrm{l}}^{*}(\varepsilon )\) | \(n\_\mathrm{S}\mathrm{o}\mathrm{l}(\varepsilon )\) | \({\mathrm{C}\mathrm{P}\mathrm{U}}_{1}(\varepsilon )\) | |
1 | 0.50 | 0 | 0 | 13 | 114 | 171 | 13.28 |
2 | 0.33 | 0.83 | 0.171 | 12 | 90 | 161 | 11.64 |
3 | 0.11 | 1.00 | 6.638 | 1 | 2 | 2 | 15.50 |
4 | 1.00 | 0.89 | 4.432 | 9 | 97 | 206 | 23.08 |
5 | 0.50 | 1.00 | 2.858 | 7 | 48 | 142 | 10.54 |
6 | 0.11 | 0 | 0 | 1 | 2 | 2 | 2.86 |
7 | 0.33 | 0.94 | 0.597 | 16 | 123 | 159 | 11.46 |
8 | 0.33 | 0.94 | 0.362 | 20 | 156 | 156 | 11.68 |
9 | 0.11 | 1.00 | 0.006 | 1 | 2 | 2 | 5.28 |
10 | 1.00 | 1.00 | 12.442 | 2 | 8 | 129 | 11.94 |
11 | 0.50 | 1.00 | 2.372 | 3 | 36 | 195 | 14.83 |
12 | 1.00 | 0.90 | 6.798 | 10 | 75 | 161 | 18.74 |
13 | 0.11 | 0 | 0 | 1 | 8 | 8 | 12.69 |
14 | 0.50 | 0.75 | 1.409 | 4 | 32 | 164 | 12.88 |
15 | 0.50 | 0.90 | 1.488 | 10 | 128 | 285 | 18.31 |
16 | 0.20 | 0 | 0 | 12 | 115 | 176 | 10.04 |
17 | 0.11 | 0 | 0 | 1 | 2 | 2 | 4.34 |
18 | 0.11 | 1.00 | 0.796 | 1 | 3 | 3 | 8.30 |
19 | 0.33 | 1.00 | 1.529 | 2 | 9 | 128 | 9.07 |
20 | 0.33 | 1.00 | 0.434 | 3 | 30 | 208 | 16.93 |
21 | 0.11 | 1.00 | 0.541 | 1 | 3 | 3 | 5.39 |
22 | 0.33 | 1.00 | 1.996 | 4 | 20 | 109 | 8.83 |
23 | 0.33 | 1.00 | 0.422 | 2 | 15 | 250 | 14.87 |
Average | – | 0.75 | 1.969 | 6 | 49 | 123 | 11.85 |
Maximum | – | 1.00 | 12.442 | 20 | 156 | 285 | 23.08 |
Minimum | – | 0 | 0 | 1 | 2 | 2 | 2.86 |
\(\varepsilon \in \mathrm{{\rm E}}\) | Identification number of the instances for Plan#1 to Plan#23 |
---|---|
\({\alpha }^{*}(\varepsilon )\) | Best admission factor in A1, \(\alpha \in \left\{ {0.11,~0.20,~0.33,~0.50,~1} \right\}\), for each \(\varepsilon \in \mathrm{{\rm E}}\) |
\({r}_{mxs}^{*}(\varepsilon )\) | Utilization rate of \(\mathrm{M}\mathrm{A}\mathrm{X}\mathrm{S}\mathrm{A}\mathrm{T}\) procedure in A2 for the best solutions of each demand plan \(\varepsilon \in \mathrm{{\rm E}}\) |
\({r}_{no\_Q}(\varepsilon )\) | Rate dissatisfaction of the Quota constraints (from A1) for the best solutions of each demand plan \(\varepsilon \in \mathrm{{\rm E}}\). It is measured as a percentage: \(\%{r}_{no\_Q}(\varepsilon )\). The maximum number of Quota constraints is: \(\left|I\right|\times T\equiv \left|I\right|\times D\) |
\({\mathrm{i}\mathrm{t}\mathrm{e}\mathrm{r}}^{*}(\varepsilon )\) | Iteration corresponding to the best solution of each demand plan \(\varepsilon \in \mathrm{{\rm E}}\) |
\({\mathrm{s}\mathrm{o}\mathrm{l}}^{*}(\varepsilon )\) | Number of solutions improved by Local Search (BL1 to BL5) to get the best solution locally optimal of each demand plan \(\varepsilon \in \mathrm{{\rm E}}\) |
\(n\_\mathrm{S}\mathrm{o}\mathrm{l}(\varepsilon )\) | Number of solutions improved by Local Search (BL1 to BL5) limiting the MS-Q procedure to a maximum 20 iterations, for each demand plan \(\varepsilon \in \mathrm{{\rm E}}\) |
\({CPU}_{1}(\varepsilon )\) | CPU time (seconds) per iteration, limiting the MS-Q procedure to a maximum 20 iterations, for each demand plan \(\varepsilon \in \mathrm{{\rm E}}\) |
5.3 Economic-productive feasibility study
\(\varepsilon \in {\rm E}\) | MILP-1 | MILP-2 | MS-Q | |||
---|---|---|---|---|---|---|
\(G(1,\varepsilon )\) | \({\Delta} P (1,\varepsilon )\) | \(G(2,\varepsilon )\) | \({\Delta} P (2,\varepsilon )\) | \(G(3,\varepsilon )\) | \({\Delta} P (3,\varepsilon )\) | |
1 | 1552.00 | 3.88 | 1529.14 | 3.82 | 1529.14 | 3.82 |
2 | 1362.29 | 3.41 | 1348.57 | 3.37 | 1348.57 | 3.37 |
3 | 1072.00 | 2.68 | 1067.43 | 2.67 | 1067.43 | 2.67 |
4 | 1378.29 | 3.45 | 1371.43 | 3.43 | 1371.43 | 3.43 |
5 | 893.71 | 2.23 | 880.00 | 2.20 | 880.00 | 2.20 |
6 | 1298.29 | 3.25 | 1298.29 | 3.25 | 1293.71 | 3.23 |
7 | 857.14 | 2.14 | 852.57 | 2.13 | 852.57 | 2.13 |
8 | 1478.86 | 3.70 | 1467.43 | 3.67 | 1462.86 | 3.66 |
9 | 896.00 | 2.24 | 896.00 | 2.24 | 896.00 | 2.24 |
10 | 345.14 | 0.86 | 331.43 | 0.83 | 331.43 | 0.83 |
11 | 1581.71 | 3.95 | 1568.00 | 3.92 | 1563.43 | 3.91 |
12 | 1321.14 | 3.30 | 1312.00 | 3.28 | 1312.00 | 3.28 |
13 | 1478.86 | 3.70 | 1449.14 | 3.62 | 1449.14 | 3.62 |
14 | 1261.71 | 3.15 | 1250.29 | 3.13 | 1248.00 | 3.12 |
15 | 1206.86 | 3.02 | 1206.86 | 3.02 | 1206.86 | 3.02 |
16 | 1490.29 | 3.73 | 1478.86 | 3.70 | 1467.43 | 3.67 |
17 | 1145.14 | 2.86 | 1136.00 | 2.84 | 1131.43 | 2.83 |
18 | 1136.00 | 2.84 | 1136.00 | 2.84 | 1131.43 | 2.83 |
19 | 674.29 | 1.69 | 660.57 | 1.65 | 660.57 | 1.65 |
20 | 1556.57 | 3.89 | 1531.43 | 3.83 | 1531.43 | 3.83 |
21 | 1058.29 | 2.65 | 1058.29 | 2.65 | 1058.29 | 2.65 |
22 | 528.00 | 1.32 | 514.29 | 1.29 | 514.29 | 1.29 |
23 | 1414.86 | 3.54 | 1401.14 | 3.50 | 1398.86 | 3.50 |
Average | 1173.37 | 2.93 | 1162.83 | 2.91 | 1161.14 | 2.90 |
Maximum | 1581.71 | 3.95 | 1568.00 | 3.92 | 1563.43 | 3.91 |
Minimum | 345.14 | 0.86 | 331.43 | 0.83 | 331.43 | 0.83 |
-
The daily saving in euros, \(G(1,\varepsilon )\), achieved with the transformation of the current line in a flow shop \(Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\), manufacturing 270 engines per day, is equal to € 1173.37 on average. Such savings are included in the interval [345.14, 1581.71], and their values depend on the demand plan used (\(\varepsilon \in \mathrm{{\rm E}}\)).
-
In case of having the same time to produce as the current one (i.e., \(C_{{{\text{max}}}}^{0} = 50770{\text{~s}})\). , the estimate of the average daily increase in engine production is \({{\Delta }}P\left( {1,\varepsilon } \right) = 2.93\), by transforming the line into a flow shop and assuming that the demand plans (\(\varepsilon \in {\text{{\rm E}}}\)) do no vary. These increases are included in the interval [0.86, 3.95], and their values depend on the demand plan used (see Fig. 4).
-
The transformation of the current line into a regular flow shop subject to Heijunka concept (\(Heijunka-Fm\)/\(prmu\)/\({C}_{max}\)/\({d}_{i}\)) leads to a maximum average saving equal to € 1162.83 per day (see average maximum between the columns \(G\left(2,\varepsilon \right)\) and \(G\left(3,\varepsilon \right)\) in Table 8) when 270 engines are manufactured per day. In this case, said savings are included in the interval [331.43, 1568.00] and their values depend on the demand plan used.
-
In the case of the Heijunka-flow shop, the estimate of the daily increase in engine production with respect to the current line is equal to 2.91 engines on average (see average maximum between columns \({\Delta }P\left(2,\varepsilon \right)\) and \({\Delta }P\left(3,\varepsilon \right)\) in Table 8), provided that the original production mix does not vary in the demand plans. Here, these increases (engines per day) are included in the interval [0.83, 3.92] (see Fig. 4).
5.4 Advantages and disadvantages of using MILP and MS-Q procedures
-
In the specialized literature, most articles on the \(Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\) use heuristic and metaheuristic methods. The new problem proposed in this paper is more complex than the \(Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\), so there is no reason to rule out the use of heuristics to solve the \(Hejunka-Fm\)/\(prmu\)/\({C}_{\mathrm{m}\mathrm{a}\mathrm{x}}\)/\({d}_{i}\) problem (Laplace’s principle of insufficient reason). The use of Mixed Integer Linear Programming (MILP) for flow shop problems is less widespread for both reference instances and realistic cases.
-
MILP-2 uses the IBM CPLEX solver, which is commercial software that requires a license in its professional version. CPLEX incorporates the most efficient optimization techniques related to MILP, and its efficiency is widely recognized in the scientific field, requiring knowledge of modeling techniques. In contrast, MQ-S is simple and easy to implement.
-
MILP-2 is an application based on an exact procedure (MILP), while MS-Q is an approximation algorithm.
-
MS-Q is on average about 7 times faster than MILP-2 for the Nissan-9Eng.I instance set with 270 jobs and 21 machines.
-
MS-Q operates on the set of feasible solutions, and the CPU time to converge to a local optimum is predictable based on neighborhoods. For its part, the MILP technique, as a branch and bound procedure, operates with non-feasible solutions (non-integer solutions) and, therefore, the CPU time used to reach a local (or global) optimum is much less predictable. In fact, in this work, the standard deviation of the CPU time spent by MILP-2 is \({\sigma }_{MILP-2}^{CPU}=1190.63\), while for MS-Q it is \({\sigma }_{MS-Q}^{\mathrm{C}\mathrm{P}\mathrm{U}}=77.24\).