1 Introduction
2 Literature review
2.1 Order acceptance and scheduling
2.1.1 Single machine
2.1.2 Multiple machines
2.2 Scheduling problem with job rejection
2.3 Periodic maintenance and multi-availability constraints
2.4 Multiobjective scheduling problem using lexicographic optimization
2.5 Motivation of our methodological choices with respect to the literature
3 Mathematical model
3.1 Formal description of problem (P)
3.2 MILP for problem (P)
4 Greedy heuristic GrH
4.1 Main procedure
4.2 Construction procedure
5 Local search methods
5.1 Tabu search with multiple neighborhoods TSMN
5.2 Consistent tabu search CTS
5.3 Baseline local-search heuristic BLSH
-
Phase (1): perform a local-search descent employing the \(INSERT^2\) moves.
-
Phase (2): perform a local-search descent employing the \(SWAP^4\) moves.
6 Computational experiments
6.1 Presentation of the instances
6.1.1 Small instances
6.1.2 Large instances
Group | n | Interval for \(p_j\) | \((T_1, \delta _1)\) | \((T_2, \delta _2)\) | Rejected jobs (estimations) |
---|---|---|---|---|---|
L1 | 100 | [60, 240] | (960, 40) | (720, 30) | 8 |
105 | 13 | ||||
110 | 18 | ||||
L2 | 200 | [30, 120] | (480, 20) | (360, 15) | 16 |
210 | 26 | ||||
220 | 36 | ||||
L3 | 300 | [20, 80] | (320, 13) | (240, 9) | 23 |
315 | 38 | ||||
330 | 53 |
6.2 Impact of Phase 2 and Phase 3 in TSMN
Instance | \(f_1\) | \(f_2\) | |||||
---|---|---|---|---|---|---|---|
Group | n | Average value | Gap(%) w/o Ph2 | Gap(%) w/o Ph3 | Average value | Gap(%) w/o Ph2 | Gap(%) w/o Ph3 |
L1 | 100 | 14,314 | 5.42 | 8.49 | 9,652,798 | 11.52 | 12.3 |
105 | 15,279 | 9.36 | 7.95 | 10,080,315 | 7.22 | 10.59 | |
110 | 31,102 | 3.06 | 4.34 | 9,455,368 | 5.64 | 5.95 | |
L2 | 200 | 11,147 | 3.29 | 3.22 | 19,218,401 | 10.27 | 11.15 |
210 | 20,438 | 3.87 | 2.61 | 18658,798 | 11.39 | 12.54 | |
220 | 24,772 | 1.16 | 1.14 | 19,269,283 | 9.81 | 14.86 | |
L3 | 300 | 10,305 | 1.95 | 3.06 | 29,421,036 | 7.98 | 9.3 |
315 | 18,108 | 1.63 | 5.27 | 29,077,599 | 1.73 | 3.45 | |
330 | 29,417 | 1.5 | 1.85 | 27,628,725 | 6.75 | 13.07 |
6.3 Comparison of TSMN with the MILP for small instances (\(n=20\))
-
Considering 20 jobs seems to meet the limits of CPLEX within 2 h of computation, which is a large computing time for such small instances. Indeed, a constructive heuristic such as GrH can find the same objective-function values for 16 instances (for which the gaps are 0), but GrH requires only up to a second of computing time.
-
The MILP is only able to prove optimality when no job is rejected, which corresponds to 9 out of 30 instances. However, the scope if this study is precisely the situation for which the production capacity is not able to schedule all the jobs.
-
GrH outperforms the MILP for six instances (namely I5, I11, I22, I24, I27 and I30). However, there are eight instances for which the MILP performs better than GrH. For such instances, TSMN performs as well as the MILP for I14, I15 and I28, and improves the solution provided by the MILP for I4, I21, I25, I26 and I29.
-
Unsurprisingly (see the estimations on the number of rejected jobs presented in Sect. 6.1.1), more jobs are rejected when moving from S1 to S3, as the range of \(p_j\) values are shifted to larger values. TSMN is able to schedule more jobs than the MILP for 10 instances, and both methods schedule the same number of jobs for the other 20 instances.
-
TSMN is obviously the best method. Moreover, its superiority over the other methods grows when moving from S1 to S3 (i.e., when the production capacity decreases because the job processing times increase).
Group | Instance | Interval for \(p_j\) | MILP | Time (MILP) | OUT(MILP) | OUT(TSMN) | Gap(%) for GrH | Gap(%) for TSMN |
---|---|---|---|---|---|---|---|---|
S1 | I1 | [315, 1260] | Optimal | 123.03 | 0 | 0 | 0 | 0 |
I2 | Optimal | 147 | 0 | 0 | 0 | 0 | ||
I3 | Feasible | 3895 | 3 | 3 | 0 | 0 | ||
I4 | Feasible | 24 | 6 | 4 | 0.68 | -18 | ||
I5 | Feasible | 159 | 6 | 3 | -9.34 | -15.25 | ||
I6 | Feasible | 5986.2 | 2 | 2 | 0 | 0 | ||
I7 | Feasible | 8956 | 2 | 2 | 0 | 0 | ||
I8 | Optimal | 6895 | 0 | 0 | 0 | 0 | ||
I9 | Optimal | 6489.2 | 0 | 0 | 0 | 0 | ||
I10 | Optimal | 4899 | 0 | 0 | 0 | 0 | ||
S2 | I11 | [330, 1320] | Feasible | 236.3 | 3 | 3 | - 8.03 | -8.03 |
I12 | Feasible | 350 | 4 | 4 | 0 | 0 | ||
I13 | Feasible | 2398 | 3 | 3 | 0 | 0 | ||
I14 | Feasible | 14.2 | 7 | 5 | 9.52 | 0 | ||
I15 | Feasible | 10.8 | 4 | 4 | 26.62 | 0 | ||
I16 | Optimal | 1296 | 0 | 0 | 0 | 0 | ||
I17 | Optimal | 2398.7 | 0 | 0 | 0 | 0 | ||
I18 | Optimal | 6580 | 0 | 0 | 0 | 0 | ||
I19 | Optimal | 3598.99 | 0 | 0 | 0 | 0 | ||
I20 | Feasible | 3.98 | 5 | 5 | 0 | 0 | ||
S3 | I21 | [390, 1560] | Feasible | 4877.06 | 3 | 2 | 70.81 | -0.53 |
I22 | Feasible | 43.55 | 1 | 1 | -3.32 | -75.20 | ||
I23 | Feasible | 1171.2 | 6 | 6 | 0 | 0 | ||
I24 | Feasible | 106.3 | 3 | 2 | -5.35 | -80.99 | ||
I25 | Feasible | 5487.13 | 5 | 2 | 10.28 | -74.35 | ||
I26 | Feasible | 33 | 5 | 4 | 6.97 | -1.81 | ||
I27 | Feasible | 19 | 4 | 3 | -2.94 | -23.46 | ||
I28 | Feasible | 120 | 4 | 4 | 4.49 | 0 | ||
I29 | Feasible | 19 | 7 | 4 | 61.37 | - 3.07 | ||
I30 | Feasible | 4.78 | 3 | 1 | -7.02 | -89.88 |
Instance |
BLSH
|
CTS
|
TSMN
| |||
---|---|---|---|---|---|---|
Group |
n
| Avg. \(f_1\) | Improvement (%) | Nb. best values | Improvement (%) | Nb. best values |
L1 | 100 | 16,711 | 9.47 | 2 | 14.34 | 9 |
105 | 17,716 | 10.29 | 6 | 13.76 | 9 | |
110 | 32,542 | 0.02 | 2 | 4.42 | 10 | |
L2 | 200 | 11,957 | 2.45 | 4 | 6.77 | 8 |
210 | 21,710 | 5.29 | 8 | 5.86 | 10 | |
220 | 26,425 | 2.39 | 7 | 6.26 | 10 | |
L3 | 300 | 11,033 | 3.56 | 6 | 6.6 | 10 |
315 | 19,083 | 0.6 | 0 | 5.11 | 10 | |
330 | 30,392 | 2.28 | 9 | 3.21 | 10 |
Instance |
BLSH
|
CTS
|
TSMN
| |||
---|---|---|---|---|---|---|
Group |
n
| Avg. \(f_2\) | Improvement (%) | Nb. best values | Improvement (%) | Nb. best values |
L1 | 100 | 10,121,838 | 6.21 | 9 | 4.63 | 1 |
105 | 10,439,980 | 6.2 | 10 | 3.45 | 0 | |
110 | 9,651,740 | 3.46 | 9 | 2.03 | 1 | |
L2 | 200 | 19,332,230 | 1.87 | 10 | 0.59 | 0 |
210 | 18,696,767 | 1.63 | 10 | 0.20 | 0 | |
220 | 19,304,129 | 1.52 | 10 | 0.18 | 0 | |
L3 | 300 | 29,471,555 | 4.76 | 10 | 0.17 | 0 |
315 | 29,166,405 | 4.83 | 10 | 0.30 | 0 | |
330 | 29,181,677 | 8.66 | 10 | 5.32 | 0 |
6.4 Comparison of BLSH, CTS and TSMN for large instances (\(n \ge 100\))
-
The average objective-function value of BLSH.
-
The average improvement percentage of CTS over BLSH (computed as \(100 \times [(BLSH - CTS )/BLSH ]\)). A positive value indicates that CTS produced improved solutions when compared to BLSH. For instance, for \(n=10\), CTS improves the results of BLSH by 9.47%.
-
The number of best values (out of the 10 instances) generated by CTS while considering all the methods. For instance, for \(n=10\), CTS has generated 2 times the best solutions.
-
The same information is also provided for TSMN. Note that if both TSMN and CTS have generated the best-solution values for a specific size n (out of 10 instances), they are counted in both columns labeled as “Nb. best values.” The summation of these two cells can thus exceed 10.
-
As expected, for each group L1, L2 and L3, the average value of \(f_1\) increases (often significantly) with the increase of n. In contrast, \(f_2\) does not vary a lot when n increases.
-
Both TSMN and CTS are significantly better than BLSH. It means that our tabu-search approaches are better than a baseline heuristic aimed at representing a common rule used in practice. Actually, the sequence of moves performed by BLSH is likely to be much longer than the sequence of moves that a decision maker would do in practice. In other words, the improvement percentages of TSMN and CTS with respect to BLSH are likely to represent the worst improvement percentages that our tabu-search metaheuristics can bring to practice.
-
TSMN outperforms CTS with respect to \(f_1\). Indeed, TSMN proposes larger improvements than CTS when compared to BLSH. We can also remark this superiority when counting the number of best solutions generated by TSMN.
-
CTS outperforms TSMN with respect to \(f_2\) and the number of best solutions generated.
Group | n | Estimation | GrH | BLSH | CTS | TSMN |
---|---|---|---|---|---|---|
L1 | 100 | 8 | 15.9 | 13.7 | 12.2 | 11.2 |
105 | 13 | 16.7 | 14.7 | 11.8 | 12.8 | |
110 | 18 | 25.4 | 23.9 | 19.7 | 19.6 | |
L2 | 200 | 16 | 25.3 | 23.8 | 22.7 | 20.1 |
210 | 26 | 40.4 | 38.3 | 34 | 33.3 | |
220 | 36 | 44.9 | 42 | 37.4 | 36.8 | |
L3 | 300 | 23 | 33.75 | 32.5 | 30.75 | 31.5 |
315 | 38 | 54 | 51.6 | 50.75 | 49.25 | |
330 | 53 | 77.5 | 77.5 | 70.75 | 67 |