Abstract
In this paper, we present a hybrid modelling approach and formulation using simulation-based optimisation (SbO) for solving complex problems, viz., job shop scheduling. The classical job shop scheduling problem is NP-Hard. Traditionally, the problem is modelled as a Mixed-Integer Programming (MIP) model and solved using exact algorithms (branch-and-bound, branch-and-cut, etc) or using meta-heuristics (Genetic Algorithm, Particle Swarm Optimisation, etc). In our hybrid SbO approach, we propose a modified formulation of the scheduling problem where the operational aspects of the job shop are captured only in the simulation model. Two new decision variables, controller delays and queue priorities, are introduced. The performances of the MIP-based approach and the proposed hybrid approach are compared through the number of decision variables, run time and the objective values for select deterministic benchmark problem instances. The results clearly indicate that the hybrid approach outperforms the traditional MIP for all large-scale problems, resulting in solutions closer to optimum in a much lesser computational time. Interestingly, it is also observed that the introduction of an ‘error’ term in the objective of the deterministic problem improves performance. Finally, the performance of the proposed SbO approach is analysed for stochastic job shops.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Branke J and Mattfeld DC (2005). Anticipation and flexibility in dynamic scheduling. International Journal of Production Research 43 (15): 3103–3129.
Fisher H and Thompson GL (1963). Probabilistic learning combinations of local job-shop scheduling rules. Industrial Scheduling. Prentice Hall, Englewood Cliffs: New Jersey, pp 225–251.
Gnoni MG, Iavagnilio R, Mossa G, Mummolo G and Di Leva A (2003). Production planning of a multi-site manufacturing system by hybrid modelling: A case study from the automotive industry. International Journal of Production Economics, 85(2): 251–262.
Holthaus O and Rajendran C (1997). Efficient dispatching rules for scheduling in a job shop. International Journal of Production Economics, 48(1):87–105.
IBM ILOG CPLEX Optimization Studio Information Center (2014). IBM ILOG CPLEX Optimization Studio V12.5.1 documentation, http://pic.dhe.ibm.com/infocenter/cosinfoc/v12r5/index.jsp, accessed 31 October 2014.
Jeong SJ, Lim SJ and Kim KS (2006). Hybrid approach to production scheduling using genetic algorithm and simulation. International Journal of Advanced Manufacturing Technology 28 (1–2): 129–136, ISSN 0268-3768. 10.1007/s00170-004-2345-7.
Klemmt A, Horn S, Weigert G and Wolter KJ (2009). Simulation based optimization vs. mathematical programming: A hybrid approach for optimizing scheduling problems. Robotics and Computer-Integrated Manufacturing 25 (6): 917–925, December. ISSN 0736-5845 doi:10.1016/j.rcim.2009.04.012.
Lawrence S (1984). Resource constrained project scheduling: An experimental investigation of heuristic scheduling techniques (supplement). Graduate School of Industrial Administration. Carnegie-Mellon University: Pittsburgh, Pennsylvania.
Lawrence SR and Sewell EC (1997). Heuristic, optimal, static, and dynamic schedules when processing times are uncertain. Journal of Operations Management, 15(1):71–82.
Mahdavi I, Shirazi B and Solimanpur M (2010). Development of a simulation based decision support system for controlling stochastic flexible job shop manufacturing systems. Simulation Modelling Practice and Theory 18 (6): 768–786.
Manne AS (1959). On the job shop scheduling problem. Cowles Foundation Discussion Papers 73, Cowles Foundation for Research in Economics, Yale University: New Haven, CT.
OR library (2014). Job shop benchmark instances, http://people.brunel.ac.uk/~mastjjb/jeb/orlib/files/jobshop1.txt, accessed 31 January 2013.
Pan JC-H and Chen J-S (2003). Minimizing makespan in re-entrant permutation flow-shops. Journal of the Operational Research Society, 54(6): 642–653. cited By (since 1996)37.
Sargent RG (1994). A historical view of hybrid simulation/analytic models. In: Proceedings of the 26th Conference on Winter Simulation, WSC ’94, pp 383–386, San Diego, CA, Society for Computer Simulation International. ISBN 0-7803-2109-X.
van Laarhoven PJM, Aarts EHL and Lenstra JK (1992). Job shop scheduling by simulated annealing. Operations Research, 40(1):113–125.
Xia W and Wu Z (2005). An effective hybrid optimization approach for multiobjective flexible job-shop scheduling problems. Computers and Industrial Engineering 48 (2): 409–425.
Xing L-N, Chen Y-W and Yang K-W (2009). Multi-objective flexible job shop schedule: Design and evaluation by simulation modeling. Applied Soft Computing 9 (1): 362–376.
Author information
Authors and Affiliations
Corresponding author
Appendix
Appendix
Each instance in the benchmark library consists of a line of description followed by a line containing the number of jobs and the number of machines. Next is one line for each job, listing the machine number and processing time for each step of the job. The machines are numbered starting with 0. Table A1 shows the ft10 instance.
Klemmt et al (2009) have modified the data set in Table A1 to use an 8 × 10 job shop. This data set is called ft08 and is obtained by removing the last two rows from the Table A1. From Table A1, sorting out the data into processing time and sequence.
The functions written in the model are:
-
InitializeJob(): All entities are initialised by assigning their respective sequences and the priority for the first machine that is visited in their sequence.
-
AssignControllerDelay(): When implementing delay schedules, this function is used to delay a job before it proceeds to the next machine in its sequence. For non-delay schedules, the function returns a value 0.
-
routing(): This function is used to implement the sequence for each job. Each time a job leaves a machine, this function is called to route it to the next machine in its sequence.
-
AssignInterDelay(): This function is used to assign the queue priorities of each job on each machine. This function is recalled each time after a new routing occurs.
-
ControllerDelayTimes(): This function calculates the time spent by an entity before entering the queue of the next machine in its sequence.
-
DelayTimes(): This function calculates the time spent by the job in the queue of a machine.
-
BeforeProcessing(): This function is called just before a job seizes a machine resource. It notes the actual start time of servicing by calling function ActualStartTimes() and also calls DelayTimes().
-
AfterProcessing(): This function is called after a job releases the machine resource. It notes the time at which the machine was released by calling the function EndTimes(). It also calls JobSequence() to read the next machine number and AssignInterDelay().
-
AssignProcessTime(): This function is called once the job enters the delay of the machine. The processing time corresponding to the job and the machine is accessed from the ‘processingtimes’ table, which holds all the processing times.
Rights and permissions
About this article
Cite this article
Kulkarni, K., Venkateswaran, J. Hybrid approach using simulation-based optimisation for job shop scheduling problems. J Simulation 9, 312–324 (2015). https://doi.org/10.1057/jos.2014.40
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1057/jos.2014.40