Single-machine scheduling
Single-machine scheduling or single-resource scheduling is an optimization problem in computer science and operations research. We are given n jobs J1, J2, ..., Jn of varying processing times, which need to be scheduled on a single machine, in a way that optimizes a certain objective, such as the throughput.
Single-machine scheduling is a special case of identical-machines scheduling, which is itself a special case of optimal job scheduling. Many problems, which are NP-hard in general, can be solved in polynomial time in the single-machine case.[1]: 10–20
In the standard three-field notation for optimal job scheduling problems, the single-machine variant is denoted by 1 in the first field. For example, " 1||" is an identical machine scheduling problem with no constraints, where the goal is to minimize the sum of completion times.
Variants[]
The makespan-minimization problem 1||, which is a common objective with multiple machines, is trivial with a single machine, since the makespan is always identical. Therefore, other objectives have been studied:[2]
- The problem 1|| aims to minimize the sum of completion times. It can be solved optimally by the Shortest Processing Time First rule (SPT): the jobs are scheduled by ascending order of their processing time .
- The problem 1|| aims to minimize the weighted sum of completion times. It can be solved optimally by the Weighted Shortest Processing Time First rule (WSPT): the jobs are scheduled by ascending order of the ratio .[2]: lecture 1, part 2
- The problem 1|chains| is a generalization of the above problem for jobs with dependencies in the form of chains. It can also be solved optimally by a suitable generalization of WSPT.[2]: lecture 1, part 3
- The problem 1|| aims to minimize the maximum lateness. For each job j, there is a due date . If it is completed after its due date, it suffers lateness defined as . 1|| can be solved optimally by the Earliest Due Date First rule (EDD): the jobs are scheduled by ascending order of their deadline .[2]: lecture 2, part 2
- The problem 1|prec| generalizes the 1|| in two ways: first, it allows arbitrary precedence constraints on the jobs; second, it allows each job to have an arbitrary cost function hj, which is a function of its completion time (lateness is a special case of a cost function). The maximum cost can be minimized by a greedy algorithm known as Lawler's algorithm.[2]: lecture 2, part 1
- The problem 1|| generalizes the 1|| by allowing each job to have a different release time by which it becomes available for processing. The presence of release times means that, in some cases, it may be optimal to leave the machine idle, in order to wait for an important job that is not released yet. Minimizing maximum lateness in this setting is NP-hard. But in practice, it can be solved using a branch-and-bound algorithm.[2]: lecture 2, part 3
- The problem 1|| aims to minimize the number of late jobs, regardless of the amount of lateness. It can be solved optimally by the Hodgson-Moore algorithm.[3][2]: lecture 3, part 1
- The problem 1|| aims to minimize the weight of late jobs. It is NP-hard, since the special case in which all jobs have the same deadline (denoted by 1|| ) is equivalent to the Knapsack problem.[2]: lecture 3, part 2
- In settings with deadlines, it is possible that, if the job is completed by the deadline, there is a profit pj. Otherwise, there is no profit. The goal is to maximize the profit. Single-machine scheduling with deadlines is NP-hard; Sahni[4] presents both exact exponential-time algorithms and a polynomial-time approximation algorithm.
- Jobs can have execution intervals. For each job j, there is a processing time tj and a start-time sj, so it must be executed in the interval [sj, sj+tj]. Since some of the intervals overlap, not all jobs can be completed. The goal is to maximize the number of completed jobs, that is, the throughput. More generally, each job may have several possible intervals, and each interval may be associated with a different profit. The goal is to choose at most one interval for each job, such that the total profit is maximized. For more details, see the page on interval scheduling.
- More generally, jobs can have time-windows, with both start-times and deadlines, which may be larger than the job length. Each job can be scheduled anywhere within its time-window. Bar-Noy, Bar-Yehuda, Freund, Naor and Schieber[5] present a (1-ε)/2 approximation.
See also[]
Many solution techniques have been applied to solving single machine scheduling problems. Some of them are listed below.
- Genetic algorithms
- Neural networks
- Simulated annealing
- Ant colony optimization
- Tabu search
References[]
- ^ Eugene L. Lawler, Jan Karel Lenstra, Alexander H. G. Rinnooy Kan, David B. Shmoys (1993-01-01). "Chapter 9 Sequencing and scheduling: Algorithms and complexity". Handbooks in Operations Research and Management Science. 4: 445–522. doi:10.1016/S0927-0507(05)80189-6. ISSN 0927-0507.CS1 maint: multiple names: authors list (link)
- ^ Jump up to: a b c d e f g h Grinshpoun, Tal (2020). "Subjects in Scheduling". www.youtube.com. Retrieved 2021-09-12.
- ^ "Knapsack-like scheduling problems, the Moore-Hodgson algorithm and the 'tower of sets' property". Mathematical and Computer Modelling. 20 (2): 91–106. 1994-07-01. doi:10.1016/0895-7177(94)90209-7. ISSN 0895-7177.
- ^ Sahni, Sartaj K. (1976-01-01). "Algorithms for Scheduling Independent Tasks". Journal of the ACM. 23 (1): 116–127. doi:10.1145/321921.321934. ISSN 0004-5411.
- ^ Bar-Noy, Amotz; Bar-Yehuda, Reuven; Freund, Ari; (Seffi) Naor, Joseph; Schieber, Baruch (2001-09-01). "A unified approach to approximating resource allocation and scheduling". Journal of the ACM. 48 (5): 1069–1090. doi:10.1145/502102.502107. ISSN 0004-5411.
- Optimal scheduling