Lukas' Notes

computation scheduling

Definition

Scheduling Problem

A scheduling problem asks for an assignment of jobs to machines and times that satisfies the constraints of the instance and optimises a given objective.

Formally, an instance consists of a finite job set , a finite machine set , a feasibility predicate on assignments, and an objective function .
A schedule is a function

where means that job starts on machine at time .
The problem is to find a feasible schedule such that is optimal.

Components

Jobs

Each job represents a unit of work. Depending on the model, it may have a processing time , release time , deadline , weight , or a fixed interval .

Each machine is a resource that can process jobs. In the basic single-machine model, and at most one job may run at any time.

Constraints

A feasibility predicate encodes the rules of the model. Typical constraints are:

  • no machine processes two jobs at the same time;
  • a job starts after its release time;
  • a job completes before its deadline;
  • precedence constraints are respected.

Objective

The objective function defines what counts as a good schedule. Common objectives include minimising maximum lateness, minimising total completion time, or maximising the number of compatible jobs.

Form

A scheduling problem is not one problem but a schema. A concrete problem is obtained by fixing:

  1. the structure of jobs;
  2. the machine model;
  3. the feasibility predicate;
  4. the objective.

For example, the interval scheduling problem fixes each job to an immutable interval and asks for the largest feasible subset of non-overlapping jobs.

Notation

Definition

Scheduling Notation

Scheduling notation is the three-field notation

for classifying a scheduling problem. The field describes the machine environment, describes job characteristics and constraints, and describes the objective function.

Link to original