Abstract
Effective production scheduling allows manufacturing companies to be flexible and well-adjusted to varying customer demand. In practice, production scheduling decisions are subject to several complex constraints which emerge from staff working hours and skills, delivery schedules, stock capacities, machine maintenance and machine setup. This paper introduces a novel production scheduling problem based on the real-world case of a manufacturing company in Belgium. Given a set of customer requests which may only be delivered together on one of the provided potential shipment days, the problem is to select a subset of these requests and schedule the production of the required item quantities subject to the aforementioned restrictions. All decisions must be taken for a time horizon of several days, leading to a complex problem where there may not be enough resources to serve all requests. We provide an integer programming formulation of this novel problem which is capable of solving small-scale instances to proven optimality. In order to efficiently solve large-scale instances, we develop a metaheuristic algorithm. A computational study with instances generated from real-world data indicates that the metaheuristic can quickly produce high-quality solutions, even for cases comprising several days, requests and limited stock capacities. We also conduct a sensitivity analysis concerning characteristics of the schedules and instances, the results of which can be exploited to increase production capacity and revenue.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Burke, E.K., Bykov, Y.: The late acceptance hill-climbing heuristic. Eur. J. Oper. Res. 258(1), 70–78 (2017)
Charnsirisakskul, K., Griffin, P.M., Keskinocak, P.: Order selection and scheduling with leadtime flexibility. IIE Trans. 36(7), 697–707 (2004)
Copil, K., Wörbelauer, M., Meyr, H., Tempelmeier, H.: Simultaneous lotsizing and scheduling problems: a classification and review of models. OR Spectrum 39(1), 1–64 (2016). https://doi.org/10.1007/s00291-015-0429-4
Drexl, A., Kimms, A.: Lot sizing and scheduling - survey and extensions. Eur. J. Oper. Res. 99(2), 221–235 (1997)
Fleischmann, B.: The discrete lot-sizing and scheduling problem. Eur. J. Oper. Res. 44(3), 337–348 (1990)
Goerler, A., Lalla-Ruiz, E., Voß, S.: Late acceptance hill-climbing matheuristic for the general lot sizing and scheduling problem with rich constraints. Algorithms 13(6), 138 (2020)
López-Ibáñez, M., Dubois-Lacoste, J., Pérez Cáceres, L., Birattari, M., Stützle, T.: The irace package: iterated racing for automatic algorithm configuration. Oper. Res. Perspect. 3, 43–58 (2016)
Sartori, C.S., Gandra, V., Çalik, H., Smet, P.: Instances for production scheduling with stock- and staff-related restrictions. Mendeley Data, V2 at http://dx.doi.org/10.17632/rpbv622wyd.2 (2021). Accessed 26 July 2021
Silva, Y.L.T., Subramanian, A., Pessoa, A.A.: Exact and heuristic algorithms for order acceptance and scheduling with sequence-dependent setup times. Comput. Oper. Res. 90, 142–160 (2018)
Slotnick, S.A.: Order acceptance and scheduling: a taxonomy and review. Eur. J. Oper. Res. 212(1), 1–11 (2011)
Tempelmeier, H., Copil, K.: Capacitated lot sizing with parallel machines, sequence-dependent setups, and a common setup operator. OR Spectrum 38(4), 819–847 (2015). https://doi.org/10.1007/s00291-015-0410-2
Wörbelauer, M., Meyr, H., Almada-Lobo, B.: Simultaneous lotsizing and scheduling considering secondary resources: a general model, literature review and classification. OR Spectrum 41(1), 1–43 (2018). https://doi.org/10.1007/s00291-018-0536-0
Acknowledgements
Research supported by KU Leuven (C2 C24/17/012) and ‘Data-driven logistics’ (FWO-S007318N). Editorial consultation provided by Luke Connolly (KU Leuven).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix A Integer Linear Programming Formulation
Appendix A Integer Linear Programming Formulation
To model the PSP as an ILP we introduce some additional notation.
-
T: set of all blocks in the scheduling horizon: \(T=\{1,\ldots ,|B|,|B|+1,\ldots ,2|B|,2|B|+1,\ldots ,|D||B|\}\)
-
\(T^M\subset T\): set of all maintenance blocks.
-
\(T^N\subset T\): set of all night-shift blocks.
-
\(T^O\subset T^N\): set of all overtime blocks.
-
\(T_r\subset T\): set of all shipping blocks for request \(r\in R\).
-
\(d(t)\in D\): the day index of block \(t\in T\): \(d(t)=1\) for \(t=1,\ldots ,|B|\); \(d(t)=2\) for \(t=|B|+1,\ldots ,2|B|\) ...
-
\(h_n\): the index of the last day with a night shift pushed from the previous scheduling horizon.
-
\(g_0^m\): at the beginning of current scheduling horizon, the number of days passed without a maintenance for machine \(m\in M\) since the last maintenance in the previous scheduling horizon.
-
\(b_n^d\): the last block of day \(d\in D\).
Additionally, a set of decision variables is used.
-
\(\eta _{d}=1\) if there is a night shift on day \(d\in D\), 0 otherwise.
-
\(\pi _{d}=1\) if there is parallel processing of machines on day \(d\in D\), 0 otherwise.
-
\(\theta _{t}=1\) if block \(t\in T^O\) is used as overtime, 0 otherwise.
-
\(y_{t}^m=1\) if machine \(m\in M\) is idle during block \(t\in T\), 0 otherwise.
-
\(\mu _{t}^m=1\) if \(m\in M\) is under maintenance during block \(t\in T\), 0 otherwise.
-
\(\gamma _{r}^t=1\) if request \(r\in R\) is fulfilled by shipping at \(t\in T_r\), 0 otherwise.
-
\(z_{ti}^m=1\) if \(m\in M\) is producing item \(i\in I\) during block \(t\in T\), 0 otherwise.
-
\(\varDelta _{id}\) is the stock level of item \(i\in I\) at the end of day \(d\in D\). \(\varDelta _{i0}\) is the initial stock of i.
-
\(\phi _{id}\) is the stock deficit of \(i\in I\) at the end of day \(d\in D\).
-
\(\tau _{d}^m=1\) if \(m\in M\) undergoes a maintenance on day \(d\in D\), 0 otherwise.
-
\(v_{tt'}^{m}=1\) if during block \(t\in T^M\), machine \(m\in M\) is occupied by a long setup to be finished during block \(t'\in T^M\), 0 otherwise.
-
\(w_{ij}^{mt'}=1\) if during block \(t'\in T^M\), machine \(m\in M\) is occupied and finished a long setup from item \(i\in I\) to item \(j\in I\), 0 otherwise.
-
\(\psi _{tt'}^{m}=1\) if during block \(t\in T\), machine \(m\in M\) is occupied by a short setup to be finished during block \(t'\in T\), 0 otherwise.
-
\(u_{ij}^{mt}=1\) if during block \(t\in T\), machine \(m\in M\) is occupied and finished a short setup from item \(i\in I\) to item \(j\in I\), 0 otherwise.
-
\(\rho _{ti}^m=1\) if machine \(m\in M\) is set-up to produce item \(i\in I\) during block \(t\in T\), 0 otherwise (\(\rho _{0i}^m=1\) if the initial configuration of machine m is for item i).
The following is an integer programming formulation for the PSP.
Objective function (1) minimizes the sum of revenue loss from unserved requests, additional personnel costs (overtime, night shift and parallel operations) and penalties incurred by stock deficits. Constraints (2) ensure that if a block is used for overtime then there is no night shift that day and vice versa (meaning no overtime is possible if there is a night shift on a certain day). Constraints (3) forbid using isolated overtime blocks, in other words: overtime in a block is possible only if the previous overtime block is also used, except for the first overtime block, which can be used without preceding overtime blocks. Constraints (4) and (5) enforce the machines to be idle during night-shift blocks if there is no overtime or night shift used that day. Constraints (6) ensure that for a certain day with no night shift on the preceding day, night shifts are only allowed if there is a night shift on every single one of the following \(d_n-1\) consecutive days. Similarly, Constraints (7) ensure that for a certain day with no night shift on the following day that night shifts are only allowed if there is a night shift on every single one of the preceding \(d_n-1\) consecutive days. Constraints (8) and (9) ensure that during any block, a machine is either idle or occupied by a single operation, namely: setup (short or long), maintenance or production. Constraints (10) enforce a parallel processing penalty if more than one machine is not idle. Constraints (11) are the inventory (stock) balance constraints. Constraints (12) retrieve the daily stock deficit per item, if there is any. If the inventory level is greater than the minimum stock requirement, the deficit variable assumes a value of zero thanks to the objective function (1) and binary restrictions (34). By Constraints (13), at most one shipping is conducted per request. Constraints (14)–(16) ensure that no production is performed in between the blocks of the same short setup. Constraints (18)–(20) ensure that no production is performed in between the blocks of the same long setup. Constraints (17) and (21) ensure that only one type of setup is scheduled per day. Constraints (22) ensure that at most one long setup or maintenance takes place during any single block. Constraints (23)–(26) ensure that maintenance blocks are assigned with the required frequency while ensuring that no production is conducted in between the blocks of a maintenance. Constraints (27)–(30) guarantee that production of an item is only possible if the machine has the right configuration, which is validated by a previous block either with the identical configuration or via a completed setup to that item. Maximum stock levels are respected thanks to Constraints (33). Finally, (34)–(44) are nonnegativiy and binary restrictions.
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Sartori, C.S., Gandra, V., Çalık, H., Smet, P. (2021). Production Scheduling with Stock- and Staff-Related Restrictions. In: Mes, M., Lalla-Ruiz, E., Voß, S. (eds) Computational Logistics. ICCL 2021. Lecture Notes in Computer Science(), vol 13004. Springer, Cham. https://doi.org/10.1007/978-3-030-87672-2_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-87672-2_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-87671-5
Online ISBN: 978-3-030-87672-2
eBook Packages: Computer ScienceComputer Science (R0)