Many variations of the problem exist, including the following:
Since the traveling salesman problem is NP-hard, the job-shop problem with sequence-dependent setup is also NP-hard since the TSP is a special case of the JSP with a single job (the salesman in TSP) and the machines (the cities in TSP).5
The disjunctive graph6 is one of the popular models used for describing the job-shop scheduling problem instances.7
A mathematical statement of the problem can be made as follows:
Let M = { M 1 , M 2 , … , M m } {\displaystyle M=\{M_{1},M_{2},\dots ,M_{m}\}} and J = { J 1 , J 2 , … , J n } {\displaystyle J=\{J_{1},J_{2},\dots ,J_{n}\}} be two finite sets. On account of the industrial origins of the problem, the M i {\displaystyle \displaystyle M_{i}} are called machines and the J j {\displaystyle \displaystyle J_{j}} are called jobs.
Let X {\displaystyle \displaystyle \ {\mathcal {X}}} denote the set of all sequential assignments of jobs to machines, such that every job is done by every machine exactly once; elements x ∈ X {\displaystyle x\in {\mathcal {X}}} may be written as n × m {\displaystyle n\times m} matrices, in which column i {\displaystyle \displaystyle i} lists the jobs that machine M i {\displaystyle \displaystyle M_{i}} will do, in order. For example, the matrix
means that machine M 1 {\displaystyle \displaystyle M_{1}} will do the three jobs J 1 , J 2 , J 3 {\displaystyle \displaystyle J_{1},J_{2},J_{3}} in the order J 1 , J 2 , J 3 {\displaystyle \displaystyle J_{1},J_{2},J_{3}} , while machine M 2 {\displaystyle \displaystyle M_{2}} will do the jobs in the order J 2 , J 3 , J 1 {\displaystyle \displaystyle J_{2},J_{3},J_{1}} .
Suppose also that there is some cost function C : X → [ 0 , + ∞ ] {\displaystyle C:{\mathcal {X}}\to [0,+\infty ]} . The cost function may be interpreted as a "total processing time", and may have some expression in terms of times C i j : M × J → [ 0 , + ∞ ] {\displaystyle C_{ij}:M\times J\to [0,+\infty ]} , the cost/time for machine M i {\displaystyle \displaystyle M_{i}} to do job J j {\displaystyle \displaystyle J_{j}} .
The job-shop problem is to find an assignment of jobs x ∈ X {\displaystyle x\in {\mathcal {X}}} such that C ( x ) {\displaystyle \displaystyle C(x)} is a minimum, that is, there is no y ∈ X {\displaystyle y\in {\mathcal {X}}} such that C ( x ) > C ( y ) {\displaystyle \displaystyle C(x)>C(y)} .
Scheduling efficiency can be defined for a schedule through the ratio of total machine idle time to the total processing time as below:
C ′ = 1 + ∑ i l i ∑ j , k p j k = C . m ∑ j , k p j k {\displaystyle C'=1+{\sum _{i}l_{i} \over \sum _{j,k}p_{jk}}={C.m \over \sum _{j,k}p_{jk}}}
Where l i {\displaystyle l_{i}} represents the idle time of machine i, C is the makespan, and m is the number of machines. This formulation normalizes the makespan by the number of machines and total processing time, allowing for the comparison of resource utilization across job-shop scheduling (JSP) instances of varying sizes.8
One of the first problems that must be dealt with in the JSP is that many proposed solutions have infinite cost: i.e., there exists x ∞ ∈ X {\displaystyle x_{\infty }\in {\mathcal {X}}} such that C ( x ∞ ) = + ∞ {\displaystyle C(x_{\infty })=+\infty } . In fact, it is quite simple to concoct examples of such x ∞ {\displaystyle x_{\infty }} by ensuring that two machines will deadlock, so that each waits for the output of the other's next step.
Graham introduced the List scheduling algorithm in 1966, which is (2 − 1/m)-competitive, where m is the number of machines.9 It was later proven to be the optimal online algorithm for two and three machines. The Coffman–Graham algorithm (1972) for uniform-length jobs is also optimal for two machines and (2 − 2/m)-competitive.1011
In 1992, Bartal, Fiat, Karloff, and Vohra presented a 1.986-competitive algorithm,12 followed by a 1.945-competitive algorithm by Karger, Philips, and Torng in 1994.13 That same year, Albers introduced a different 1.923-competitive algorithm.14 The best known result is by Fleischer and Wahl, achieving a 1.9201 competitive ratio.15
Albers also established a lower bound of 1.852.16 Taillard instances play a key role in developing job-shop scheduling with a makespan objective.
In 1976, Garey proved that this problem is NP-complete for m > 2, meaning no optimal solution can be computed in polynomial time unless P=NP.17
In 2011, Xin Chen et al. provided optimal algorithms for online scheduling on two related machines, improving previous results.1819
See also: Multiprocessor scheduling
The simplest form of the offline makespan minimisation problem deals with atomic jobs, that is, jobs that are not subdivided into multiple operations. It is equivalent to packing a number of items of various different sizes into a fixed number of bins, such that the maximum bin size needed is as small as possible. (If instead the number of bins is to be minimised, and the bin size is fixed, the problem becomes a different problem, known as the bin packing problem.)
Dorit S. Hochbaum and David Shmoys presented a polynomial-time approximation scheme in 1987 that finds an approximate solution to the offline makespan minimisation problem with atomic jobs to any desired degree of accuracy.20
The basic form of the problem of scheduling jobs with multiple (M) operations, over M machines, such that all of the first operations must be done on the first machine, all of the second operations on the second, etc., and a single job cannot be performed in parallel, is known as the flow-shop scheduling problem. Various algorithms exist, including genetic algorithms.21
See also: Johnson's rule
A heuristic algorithm by S. M. Johnson can be used to solve the case of a 2 machine N job problem when all jobs are to be processed in the same order.22 The steps of algorithm are as follows:
Job Pi has two operations, of duration Pi1, Pi2, to be done on Machine M1, M2 in that sequence.
If the minimum belongs to Pk1,
Remove K from list A; Add K to end of List L1.
If minimum belongs to Pk2,
Remove K from list A; Add K to beginning of List L2.
Johnson's method only works optimally for two machines. However, since it is optimal, and easy to compute, some researchers have tried to adopt it for M machines, (M > 2.)
The idea is as follows: Imagine that each job requires m operations in sequence, on M1, M2 … Mm. We combine the first m/2 machines into an (imaginary) Machining center, MC1, and the remaining Machines into a Machining Center MC2. Then the total processing time for a Job P on MC1 = sum (operation times on first m/2 machines), and processing time for Job P on MC2 = sum(operation times on last m/2 machines).
By doing so, we have reduced the m-Machine problem into a Two Machining center scheduling problem. We can solve this using Johnson's method.
Machine learning has been recently used to predict the optimal makespan of a JSP instance without actually producing the optimal schedule.23 Preliminary results show around 80% accuracy in classifying small randomly generated JSP instances by optimal scheduling efficiency using supervised learning.
Here is an example of a job-shop scheduling problem formulated in AMPL as a mixed-integer programming problem with indicator constraints:
Graham, R. (1966). "Bounds for certain multiprocessing anomalies" (PDF). Bell System Technical Journal. 45 (9): 1563–1581. doi:10.1002/j.1538-7305.1966.tb01709.x. http://www.math.ucsd.edu/~ronspubs/66_04_multiprocessing.pdf ↩
"Taillard Instances". mistic.heig-vd.ch. Retrieved 2025-03-17. http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html ↩
Maccarthy (1993). "Addressing the gap in scheduling research: a review of optimization and heuristic methods in production scheduling". ↩
Malakooti, B (2013). Operations and Production Systems with Multiple Objectives. John Wiley & Sons. ISBN 978-1-118-58537-5. 978-1-118-58537-5 ↩
Sharma, P. (March 2016). "A review on job shop scheduling with setup times". Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture. 230 (3): 517–533. doi:10.1177/0954405414560617. ISSN 0954-4054. /wiki/Doi_(identifier) ↩
B. Roy, B. Sussmann, Les problèmes d’ordonnancement avec constraintes disjonctives, SEMA, Note D.S., No. 9, Paris, 1964. ↩
Błażewicz, Jacek (December 2000). "The disjunctive graph machine representation of the job shop scheduling problem". European Journal of Operational Research. 127 (2): 317–331. doi:10.1016/S0377-2217(99)00486-5. ISSN 0377-2217. /wiki/Doi_(identifier) ↩
Mirshekarian, Sadegh; Šormaz, Dušan N. (9 June 2016). "Correlation of job-shop scheduling problem features with scheduling efficiency" (PDF). Expert Systems with Applications. 62: 131–147. doi:10.1016/j.eswa.2016.06.014. Archived from the original on 2018-04-17. https://web.archive.org/web/20180417034243/http://mirshekarian.me/files/corrJSSP.pdf ↩
Coffman, E. G. Jr.; Graham, R. L. (1972), "Optimal scheduling for two-processor systems" (PDF), Acta Informatica, 1 (3): 200–213, doi:10.1007/bf00288685, MR 0334913, S2CID 40603807. /wiki/Edward_G._Coffman_Jr. ↩
Lam, Shui; Sethi, Ravi (1977), "Worst case analysis of two scheduling algorithms", SIAM Journal on Computing, 6 (3): 518–536, doi:10.1137/0206037, MR 0496614. /wiki/Ravi_Sethi ↩
Bartal, Y.; A. Fiat; H. Karloff; R. Vohra (1992). "New Algorithms for an Ancient Scheduling Problem". Proc. 24th ACM Symp. Theory of Computing. pp. 51–58. doi:10.1145/129712.129718. /wiki/Doi_(identifier) ↩
Karger, D.; S. Phillips; E. Torng (1994). "A Better Algorithm for an Ancient Scheduling Problem". Proc. Fifth ACM Symp. Discrete Algorithms. /wiki/David_Karger ↩
Albers, Susanne; Torben Hagerup (1992). "Improved parallel integer sorting without concurrent writing". Proceedings of the third annual ACM-SIAM symposium on Discrete algorithms. Symposium on Discrete Algorithms archive. pp. 463–472. /wiki/Susanne_Albers ↩
Fleischer, Rudolf (2000). Algorithms – ESA 2000. Berlin / Heidelberg: Springer. pp. 202–210. doi:10.1007/3-540-45253-2_19. ISBN 978-3-540-41004-1. 978-3-540-41004-1 ↩
Albers, Susanne (1999). "Better bounds for online scheduling". SIAM Journal on Computing. 29 (2): 459–473. CiteSeerX 10.1.1.685.8756. doi:10.1137/S0097539797324874. /wiki/Susanne_Albers ↩
Garey, M. R.; Johnson, D. S.; Sethi, Ravi (1976). "The Complexity of Flowshop and Jobshop Scheduling". Mathematics of Operations Research. 1 (2): 117–129. doi:10.1287/moor.1.2.117. JSTOR 3689278. /wiki/Mathematics_of_Operations_Research ↩
Chen, Xin; Lan, Yan; Benkő, Attila; Dósa, György; Han, Xin (2011). "Optimal algorithms for online scheduling with bounded rearrangement at the end". Theoretical Computer Science. 412 (45): 6269–6278. doi:10.1016/j.tcs.2011.07.014. https://doi.org/10.1016%2Fj.tcs.2011.07.014 ↩
Liu, M.; Xu, Y.; Chu, C.; Zheng, F. (2009). "Online scheduling on two uniform machines to minimize the makespan". Theoret. Comput. Sci. 410 (21–23): 2099–2109. doi:10.1016/j.tcs.2009.01.007. https://doi.org/10.1016%2Fj.tcs.2009.01.007 ↩
Hochbaum, Dorit; Shmoys, David (1987). "Using dual approximation algorithms for scheduling problems: theoretical and practical results" (PDF). Journal of the ACM. 34 (1): 144–162. CiteSeerX 10.1.1.125.5753. doi:10.1145/7531.7535. S2CID 9739129. /wiki/Dorit_S._Hochbaum ↩
Khuri, Sami; Miryala, Sowmya Rao (1999). "Genetic Algorithms for Solving Open Shop Scheduling Problems". Proceedings of the 9th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence. London: Springer Verlag. CiteSeerX 10.1.1.29.4699. /wiki/Springer_Verlag ↩
S.M. Johnson, Optimal two- and three-stage production schedules with setup times included, Naval Res. Log. Quart. I(1954)61-68. ↩