Abstract
Scheduling problems refer to the decision-making process of allocating tasks to resources, usually scarce and in high demand, to optimize different performance measures. We consider the class of shop scheduling problems arising in the context of manufacturing systems, which are often NP-hard and challenging to solve. Exact methods have limitations in finding optimal solutions in reasonable computation times, even for instances of moderate size. Therefore, in real-life production environments, finding high-quality solutions is often satisfactory, even if they are not optimal. We contribute to the solution of shop scheduling problems with the design and implementation of the SSP-3M framework, oriented by three main guidelines: versatility, extensibility, and independence of the optimization method. These characteristics reduce the gap between scheduling theory and practice in real-life environments and improve the integration of the scheduling framework with other process planning or functions such as Computer-aided Process Planning, Advanced Planning and Scheduling, Integrated Process Planning and Scheduling, and Computer Integrated Manufacturing. The problem and solution representations adopted in our framework design make it possible to handle six shop scheduling problem variants, illustrating its versatility: job shop, flow shop, permutation flow shop, generalized flow shop, flexible flow shop, and flexible job shop. SSP-3M is open-source and can be used by any interested party. Our experimental evaluation shows that it can successfully be integrated with external optimization methods. We claim that SSP-3M is a good choice for companies that need free and quick-to-develop solutions to shop scheduling problems.
Similar content being viewed by others
Data availability
The data that support the findings of this study are available from repositories at http://people.brunel.ac.uk/~mastjjb/jeb/orlib/flowshopinfo.html (Beasley, 2023), http://people.brunel.ac.uk/~mastjjb/jeb/orlib/jobshopinfo.html (Beasley, 2023), and https://people.idsia.ch/~monaldo/fjsp.html (Mastrolilli, 2023). Full numerical results are available at the project repository at https://github.com/cherreram2012/jssp-framework/wiki/Benchmark-results (Márquez, 2023).
References
Adams, J., Balas, E., & Zawack, D. (1988). The shifting bottleneck procedure for job shop scheduling. Management Science, 34, 391–401.
Agarwal, A., Colak, S., & Eryarsoy, E. (2006). Improvement heuristic for the flow-shop scheduling problem: An adaptive-learning approach. European Journal of Operational Research, 169, 801–815.
Applegate, D., & Cook, W. (1991). A computational study of the job-shop scheduling problem. ORSA Journal on Computing, 3, 149–156.
Arisha, A., & Young, P. (2001). Job shop scheduling problem: An overview. In International conference for flexible automation and intelligent manufacturing (pp. 682–693). Technological University Dublin.
Bagheri, A., Zandieh, M., Mahdavi, I., & Yazdani, M. (2010). An artificial immune algorithm for the flexible job-shop scheduling problem. Future Generation Computer Systems, 26, 533–541.
Bahouth, S. (2014). Taxonomy of shop scheduling. Online Reference Available at SSRN https://doi.org/10.2139/ssrn.2447152. Accessed January 8, 2023.
Beasley, J. E. (2023). OR-Library: Flow shop scheduling. Online reference at http://people.brunel.ac.uk/~mastjjb/jeb/orlib/flowshopinfo.html. Accessed June 8, 2023.
Beasley, J. E. (2023). OR-Library: Job shop scheduling. Online reference at http://people.brunel.ac.uk/~mastjjb/jeb/orlib/jobshopinfo.html. Accessed June 8, 2023.
Behnke, D., & Geiger, M. J. (2012). Test instances for the flexible job shop scheduling problem with work centers. Technical Report RR-12-01-01. Helmut-Schmidt Universitat.
Bidot, J., Vidal, T., Laborie, P., & Beck, J. C. (2009). A theoretic and practical framework for scheduling in a stochastic environment. Journal of Scheduling, 12, 315–344.
Bierwirth, C. (1995). A generalized permutation approach to job shop scheduling with genetic algorithms. OR Spektrum, 17, 87–92.
Bierwirth, C., & Mattfeld, D. C. (1999). Production scheduling and rescheduling with genetic algorithms. Evolutionary Computation, 7, 1–17.
Blażewicz, J., Ecker, K., Pesch, E., Schmidt, G., & Wȩglarz, J. (2007). Handbook on scheduling: From theory to applications. Springer.
Brandimarte, P. (1993). Routing and scheduling in a flexible job shop by tabu search. Annals of Operations Research, 41, 157–183.
Brucker, P. (2007). Scheduling algorithms (5th ed.). Springer.
Brucker, P., Jurisch, B., & Sievers, B. (1994). A branch and bound algorithm for the job-shop scheduling problem. Discrete Applied Mathematics, 49, 107–127.
Buxey, G. (1989). Production scheduling: Practice and theory. European Journal of Operational Research, 39, 17–31.
Fang, H., Ross, P., & Corne, D. (1993). A promising genetic algorithm approach to job-shop scheduling, rescheduling, and open-shop scheduling problems. In S. Forrest (Ed.), Proceedings of the fifth international conference on genetic algorithms (pp. 375–382). Morgan Kaufmann.
Fisher, H., & Thompson, G. L. (1963). Probabilistic learning combinations of local job shop scheduling rules. In J. F. Muth & G. L. Thompson (Eds.), Industrial scheduling (pp. 225–251). Prentice Hall.
Framinan, J. M., & Ruiz, R. (2010). Architecture of manufacturing scheduling systems: Literature review and an integrated proposal. European Journal of Operational Research, 205, 237–246.
Framinan, J. M., & Ruiz, R. (2012). Guidelines for the deployment and implementation of manufacturing scheduling systems. International Journal of Production Research, 50, 1799–1812.
Fumagalli, L., Macchi, M., Negri, E., Polenghi, A., & Sottoriva, E. (2017). Simulation-supported framework for job shop scheduling with genetic algorithm. In Proceedings of the summer School Francesco Turco (Vol. 2017, pp. 271–278).
Giffler, B., & Thompson, G. L. (1960). Algorithms for solving production-scheduling problems. Operations Research, 8, 487–503.
Heller, J. (1960). Some numerical experiments for an \({M} \times {J}\) flow shop and its decision-theoretical aspects. Operations Research, 8, 178–184.
Holsapple, C. W., Jacob, V. S., Pakath, R., & Zaveri, J. S. (1993). A genetics-based hybrid scheduler for generating static schedules in flexible manufacturing contexts. IEEE Transactions on Systems, Man, and Cybernetics, 23, 953–972.
King, J. R. (1976). The theory-practice gap in job-shop scheduling. The Production Engineer, 55, 137–143.
Lau, H. Y. K., & Qiu, X. (2014). An artificial immune systems (AIS)-based unified framework for general job shop scheduling. IFAC Proceedings Volumes, 47, 6186–6191.
Lawrence, S. (1984). Resource constrained project scheduling: An experimental investigation of heuristic scheduling techniques (Supplement). Technical report. Carnegie-Mellon University.
Lee, C.-Y., Piramuthu, S., & Tsai, Y.-K. (1997). Job shop scheduling with a genetic algorithm and machine learning. International Journal of Production Research, 35, 1171–1191.
Liu, W., Jin, Y., & Price, M. (2017). A new improved NEH heuristic for permutation flowshop scheduling problems. International Journal of Production Economics, 193, 21–30.
Liu, W., Ma, W., Hu, Y., Jin, M., Li, K., Chang, X., & Yu, X. (2019). Production planning for stochastic manufacturing/remanufacturing system with demand substitution using a hybrid ant colony system algorithm. Journal of Cleaner Production, 213, 999–1010.
Márquez, C. R. H. (2023). Benchmark results for the SSP-3M framework. Online reference at https://github.com/cherreram2012/jssp-framework/wiki/Benchmark-results. Accessed June 5, 2023.
Márquez, C. R. H. (2023). SSP-3M framework repository. Online reference at https://github.com/cherreram2012/jssp-framework. Accessed June 5, 2023.
Márquez, C. R. H., & Ribeiro, C. C. (2022). Shop scheduling in manufacturing environments: A review. International Transactions in Operational Research, 29, 3237–3293.
Mastrolilli, M. (2023). Flexible Job Shop Problem. Online reference at https://people.idsia.ch/~monaldo/fjsp.html. Accessed June 8, 2023.
McKay, K. N., & Buzacott, J. A. (2000). Application of computerized production control systems in job shop environments. Computers in Industry, 42, 79–97.
Nawaz, M., Enscore, E. E., & Ham, I. (1983). A heuristic algorithm for the \(m\)-machine, \(n\)-job flow-shop sequencing problem. Omega, 11, 91–95.
Pfeiffer, A., Kádár, B., & Monostori, L. (2006). Stability-oriented evaluation of rescheduling strategies, by using simulation. Computers in Industry, 35, 563–570.
Pinedo, M. L. (2012). Scheduling: Theory, algorithms and systems. Springer.
Pinedo, M., & Yen, B. P. C. (1997). On the design and development of object-oriented scheduling systems. Annals of Operations Research, 70, 359–378.
Pongcharoen, P., Hicks, C., & Braiden, P. M. (2004). The development of genetic algorithms for the finite capacity scheduling of complex products, with multiple levels of product structure. European Journal of Operational Research, 152, 215–225.
Reisman, A., Kumar, A., & Motwani, J. (1997). Flowshop scheduling/sequencing research: A statistical review of the literature, 1952–1994. IEEE Transactions on Engineering Management, 44, 316–329.
Resende, M. G. C., & Ribeiro, C. C. (2016). Optimization by GRASP: Greedy randomized adaptive search procedures. Springer.
Resende, M. G. C., Ribeiro, C. C., Glover, F., & Martí, R. (2010). Scatter search and path-relinking: Fundamentals, advances, and applications. In M. Gendreau & J.-Y. Potvin (Eds.), Handbook of metaheuristics, 2nd edn (pp. 87–107). Springer.
Resende, M. G. C., & Ribeiro, C. C. (2005). GRASP with path-relinking: Recent advances and applications. In T. Ibaraki, K. Nonobe, & M. Yagiura (Eds.), Metaheuristics: Progress as real problem solvers (pp. 29–63). Springer.
Ribeiro, C. C., & Resende, M. G. C. (2012). Path-relinking intensification methods for stochastic local search algorithms. Journal of Heuristics, 18, 193–214.
Romero-Silva, R., Santos, J., & Hurtado, M. (2015). A framework for studying practical production scheduling. Production Planning & Control, 26, 438–450.
Roy, B., & Sussmann, B. (1964). Les problemes d’ordonnancement avec contraintes disjonctives. Technical report. SEMA.
Salido, M. A., Escamilla, J., Barber, F., & Giret, A. (2017). Rescheduling in job-shop problems for sustainable manufacturing systems. Journal of Cleaner Production, 162, 121–132.
Sun, D., & Lin, L. (1994). A dynamic job shop scheduling framework: A backward approach. International Journal of Production Research, 32, 967–985.
Taillard, E. (1993). Benchmarks for basic scheduling problems. European Journal of Operational Research, 64, 278–285.
Vieira, G. E., Herrmann, J. W., & Lin, E. (2003). Rescheduling manufacturing systems: A framework of strategies, policies, and methods. Journal of Scheduling, 6, 39–62.
Wall, M. (1996). GAlib: A C++ Library of genetic algorithm components. Online reference at http://lancet.mit.edu/ga/. Accessed May 7, 2023.
Xia, W.-J., & Wu, Z.-M. (2006). A hybrid particle swarm optimization approach for the job-shop scheduling problem. The International Journal of Advanced Manufacturing Technology, 29, 360–366.
Yamada, T. (2003). Studies on metaheuristics for jobshop and flowshop scheduling problems. PhD thesis, Kyoto University.
Yen, B. P. C., & Pinedo, M. (1994). On the design and development of scheduling systems. In Proceedings of the fourth international conference on computer integrated manufacturing and automation technology (pp. 197–204). IEEE Computer Society Press.
Acknowledgements
The work of Celso C. Ribeiro was supported by research grants CNPq 309869/2020-0 and FAPERJ E-26/200.926/2021. Vanessa Braganholo was supported by research grant CNPq 305020/2019-6.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors have no conflict of interest to declare that are relevant to the content of this article.
Software availability statement
The open-source, ready-to-use framework SSP-3M coded in C++ is available at the project repository at https://github.com/cherreram2012/jssp-framework (Márquez, 2023).
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix A: Greedy randomized G &T algorithm
Appendix A: Greedy randomized G &T algorithm
The greedy randomized G &T algorithm of Giffler and Thompson (1960) takes as input the set of jobs \(J=\{J_1,\ldots ,J_n\}\), the set of machines \(M=\{M_1,\ldots ,M_m\}\), and, for each job \(J_i\), \(i=1,\ldots ,n\), the number of operations \(\#op(i)\) to be processed, a list \(L^i = [L^i[1],\ldots ,L^i[\#op(i)]]\) with the sequence of machines where it has to be processed, and the processing times \(p_{i,1},\ldots ,p_{i,\#op(i)}\) of each operation. The algorithm outputs a schedule represented by an operation sequence (possibly with repetitions), with each operation defined by a job, a machine, and the time this job should start to be processed in this machine. The main steps of its pseudo-code appear in Algorithm 1, which is our formalization of the original algorithm textually described in Giffler and Thompson (1960).
Line 1 initializes the set A that stores the candidate operations, i.e., those that are ready to be scheduled. Each iteration \(i=1,\ldots ,n\) of the loop in lines 2 to 6 places the first operation of job \(J_i\) in the candidate set A in line 3 and sets its starting time to 0 in line 4. Line 5 sets to 1 the position of the first operation of job \(J_i\) ready to be scheduled. Line 7 sets to 0 the counter of scheduled operations. The while loop in lines 8 to 20 runs until all operations are scheduled. Line 9 selects from the candidate set A the operation \(o_{i',k'}\) with the shortest completion time, corresponding to the execution of job \(J_{i'}\) in machine \(M_{k'}\). Line 10 creates the set \(B \subseteq A\) formed by the candidate operations that guarantee the construction of an active schedule. It contains all operations that use machine \(M_{k'}\) and may start before the shortest completion time determined in line 9. Line 11 randomly selects an operation \(o_{i^*,k^*}\) from B. Line 12 removes the newly selected operation from the candidate set A. Line 13 updates the counter of scheduled operations, and line 14 schedules operation \(o_{i^*,k^*}\) in this position of the operation sequence. Line 15 checks if operation \(o_{i^*,k^*}\) is not the last of job \(J_{i^*}\). In this case, line 16 updates the position of the subsequent operation of job \(J_{i^*}\) ready to be scheduled. Line 17 adds the next operation of job \(J_i\) to the candidate set A, and its starting time is set to the completion time of operation \(o_{i^*,k^*}\) in line 18. Line 21 returns the schedule represented as an operation sequence.
We remark that other dispatching rules can be used at step 11 instead of a simple random choice, such as shortest processing time (SPT), longest processing time (LPT), start as-early-as-possible (SEP), earliest completion time (ECT), earliest due date (EDD), longest number of successors (LNS), and shortest number of successors (SNS). They all lead to active schedules and different variants of the algorithm (Pfeiffer et al., 2006).
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Márquez, C.R.H., Braganholo, V. & Ribeiro, C.C. An open-source framework for solving shop scheduling problems in manufacturing environments. Ann Oper Res (2024). https://doi.org/10.1007/s10479-024-05995-6
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s10479-024-05995-6