Optimal job scheduling explained

Optimal job scheduling is a class of optimization problems related to scheduling. The inputs to such problems are a list of jobs (also called processes or tasks) and a list of machines (also called processors or workers). The required output is a schedule – an assignment of jobs to machines. The schedule should optimize a certain objective function. In the literature, problems of optimal job scheduling are often called machine scheduling, processor scheduling, multiprocessor scheduling, or just scheduling.

There are many different problems of optimal job scheduling, different in the nature of jobs, the nature of machines, the restrictions on the schedule, and the objective function. A convenient notation for optimal scheduling problems was introduced by Ronald Graham, Eugene Lawler, Jan Karel Lenstra and Alexander Rinnooy Kan. It consists of three fields: α, β and γ. Each field may be a comma separated list of words. The α field describes the machine environment, β the job characteristics and constraints, and γ the objective function.[1] Since its introduction in the late 1970s the notation has been constantly extended, sometimes inconsistently. As a result, today there are some problems that appear with distinct notations in several papers.

Single-stage jobs vs. multi-stage jobs

In the simpler optimal job scheduling problems, each job j consists of a single execution phase, with a given processing time pj. In more complex variants, each job consists of several execution phases, which may be executed in sequence or in parallel.

Machine environments

In single-stage job scheduling problems, there are four main categories of machine environments:

m

parallel machines, and they are identical. Job

j

takes time

pj

on any machine it is scheduled to.

m

parallel machines, and they have different given speeds. Job

j

on machine

i

takes time

pj/si

.

m

parallel machines, and they are unrelated – Job

j

on machine

i

takes time

pij

.

These letters might be followed by the number of machines, which is then fixed. For example, P2 indicates that there are two parallel identical machines. Pm indicates that there are m parallel identical machines, where m is a fixed parameter. In contrast, P indicates that there are m parallel identical machines, but m is not fixed (it is part of the input).

In multi-stage job scheduling problems, there are other options for the machine environments:

j

consists of

m

operations

Oij

for

i=1,\ldots,m

. The operations can be scheduled in any order. Operation

Oij

must be processed for

pij

units on machine

i

.

j

consists of

m

operations

Oij

for

i=1,\ldots,m

, to be scheduled in the given order. Operation

Oij

must be processed for

pij

units on machine

i

.

j

consists of

nj

operations

Okj

for

k=1,\ldots,nj

, to be scheduled in that order. Operation

Okj

must be processed for

pkj

units on a dedicated machine

\mukj

with

\mukj\muk'j

for

kk'

.

Job characteristics

All processing times are assumed to be integers. In some older research papers however they are assumed to be rationals.

pi=p

, or

pij=p

: the processing time is equal for all jobs.

pi=1

, or

pij=1

: the processing time is equal to 1 time-unit for all jobs.

rj

for each job a release time is given before which it cannot be scheduled, default is 0.

online-rj

: an online problem. Jobs are revealed at their release times. In this context the performance of an algorithm is measured by its competitive ratio.

dj

: for each job a due date is given. The idea is that every job should complete before its due date and there is some penalty for jobs that complete late. This penalty is denoted in the objective value. The presence of the job characteristic

dj

is implicitly assumed and not denoted in the problem name, unless there are some restrictions as for example

dj=d

, assuming that all due dates are equal to some given date.

\bardj

: for each job a strict deadline is given. Every job must complete before its deadline.

sizej

: Each job comes with a number of machines on which it must be scheduled at the same time. The default is 1. This is an important parameter in the variant called parallel task scheduling.

Precedence relations

Each pair of two jobs may or may not have a precedence relation. A precedence relation between two jobs means that one job must be finished before the other job. For example, if job i is a predecessor of job j in that order, job j can only start once job i is completed.

k

is a predecessor of every job with level

k-1

.

x

has an interval and job

x

is a predecessor of

y

if and only if the end of the interval of

x

is strictly less than the start of the interval for

y

.=

In the presence of a precedence relation one might in addition assume time lags. The time lag between two jobs is the amount of time that must be waited after the first job is complete before the second job to begin. Formally, if job i precedes job j, then

Ci+\ellij\leqSj

must be true. If no time lag

\ellij

is specified then it is assumed to be zero. Time lags can also be negative. A negative time lag means that the second job can begin a fixed time before the first job finishes.

\ellij

: Different pairs of jobs can have different time lags.

Transportation delays

tjk

: Between the completion of operation

Okj

of job

j

on machine

k

and the start of operation

Ok+1,j

of job

j

on machine

k+1

, there is a transportation delay of at least

tjk

units.

tjkl

: Between the completion of operation

Okj

of job

j

on machine

k

and the start of operation

Ol,j

of job

j

on machine

l

, there is a transportation delay of at least

tjkl

units.

tk

: Machine dependent transportation delay. Between the completion of operation

Okj

of job

j

on machine

k

and the start of operation

Ok+1,j

of job

j

on machine

k+1

, there is a transportation delay of at least

tk

units.

tkl

: Machine pair dependent transportation delay. Between the completion of operation

Okj

of job

j

on machine

k

and the start of operation

Ol,j

of job

j

on machine

l

, there is a transportation delay of at least

tkl

units.

tj

: Job dependent transportation delay. Between the completion of operation

Okj

of job

j

on machine

k

and the start of operation

Ol,j

of job

j

on machine

l

, there is a transportation delay of at least

tj

units.

Various constraints

\mu

is lifted and for some pairs

kk'

we might have

\mukj=\muk'j

. In other words, it is possible for different operations of the same job to be assigned to the same machine.

Ok+1,i

must start exactly when operation

Ok,i

completes. In other words, once one operation of a job finishes, the next operation must begin immediately. Sometimes also denoted as 'nwt'.

sizej

: Multiprocessor tasks on identical parallel machines. The execution of job

j

is done simultaneously on

sizej

parallel machines.

fixj

: Multiprocessor tasks. Every job

j

is given with a set of machines

fixj\subseteq\{1,\ldots,m\}

, and needs simultaneously all these machines for execution. Sometimes also denoted by 'MPT'.

Mj

: Multipurpose machines. Every job

j

needs to be scheduled on one machine out of a given set

Mj\subseteq\{1,\ldots,m\}

. Sometimes also denoted by Mj.

Objective functions

Usually the goal is to minimize some objective value. One difference is the notation

\sumUj

where the goal is to maximize the number of jobs that complete before their deadline. This is also called the throughput. The objective value can be sum, possibly weighted by some given priority weights

wj

per job.

Cj

: the completion time of job

j

.

Cmax

is the maximum completion time; also known as the makespan. Sometimes we are interested in the mean completion time (the average of

Cj

over all j), which is sometimes denoted by mft (mean finish time).[2]

Fj

: The flow time of a job is the difference between its completion time and its release time, i.e.

Fj=Cj-rj

.

Lj

: Lateness. Every job

j

is given a due date

dj

. The lateness of job

j

is defined as

Cj-dj

. Sometimes

Lmax

is used to denote feasibility for a problem with deadlines. Indeed using binary search, the complexity of the feasibility version is equivalent to the minimization of

Lmax

.

Uj

: Throughput. Every job is given a due date

dj

. There is a unit profit for jobs that complete on time, i.e.

Uj=1

if

Cj\leqdj

and

Uj=0

otherwise. Sometimes the meaning of

Uj

is inverted in the literature, which is equivalent when considering the decision version of the problem, but which makes a huge difference for approximations.

Tj

: Tardiness. Every job

j

is given a due date

dj

. The tardiness of job

j

is defined as

Tj=max\{0,Cj-dj\}

.

Ej

: Earliness. Every job

j

is given a due date

dj

. The earliness of job

j

is defined as

Ej=max\{0,dj-Cj\}

. This objective is important for just-in-time scheduling.There are also variants with multiple objectives, but they are much less studied.[3]

Examples

Here are some examples for problems defined using the above notation.[4]

P2\parallelCmax

– assigning each of

n

given jobs to one of the two identical machines so to minimize the maximum total processing time over the machines. This is an optimization version of the partition problem

Lmax

– assigning to a single machine, processes with general precedence constraint, minimizing maximum lateness.

\sumCi

– assigning tasks to a variable number of unrelated parallel machines, allowing preemption, minimizing total completion time.

pij\midCmax

– a 3-machine job shop problem with unit processing times, where the goal is to minimize the maximum completion time.

P\midsizej\midCmax

– assigning jobs to

m

parallel identical machines, where each job comes with a number of machines on which it must be scheduled at the same time, minimizing maximum completion time. See parallel task scheduling.

Other variants

See also

External links

Notes and References

  1. B. Chen, C.N. Potts and G.J. Woeginger. "A review of machine scheduling: Complexity, algorithms and approximability". Handbook of Combinatorial Optimization (Volume 3) (Editors: D.-Z. Du and P. Pardalos), 1998, Kluwer Academic Publishers. 21-169. (HB) 0-7923-5019-7 (Set)
  2. Horowitz. Ellis. Sahni. Sartaj. 1976-04-01. Exact and Approximate Algorithms for Scheduling Nonidentical Processors. Journal of the ACM. 23. 2. 317–327. 10.1145/321941.321951. 18693114 . 0004-5411. free.
  3. 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. en. 4. 445–522. 10.1016/S0927-0507(05)80189-6. 9780444874726 . 0927-0507.
  4. Graham . R. L. . Lawler . E. L. . Lenstra . J.K. . Rinnooy Kan . A.H.G. . Optimization and Approximation in Deterministic Sequencing and Scheduling: a Survey . Proceedings of the Advanced Research Institute on Discrete Optimization and Systems Applications of the Systems Science Panel of NATO and of the Discrete Optimization Symposium . Elsevier . 1979 . (5) 287–326 .
  5. Aumann . Yonatan . Dombb . Yair . 2010 . Kontogiannis . Spyros . Koutsoupias . Elias . Spirakis . Paul G. . Pareto Efficiency and Approximate Pareto Efficiency in Routing and Load Balancing Games . Algorithmic Game Theory . Lecture Notes in Computer Science . en . Berlin, Heidelberg . Springer . 66–77 . 10.1007/978-3-642-16170-4_7 . 978-3-642-16170-4.