**Introduction**

The term scheduling represents the assignment of resources over time to perform tasks, jobs or

activities. Feasible schedules are compared with respect to a given optimality criterion. Mostly, the

optimization problem is combinatorial and very complex. From a computational point of view, many

of these problems are hard (NP-hard). In this course, an overview on the most classical scheduling

models is given and exact as well as some heuristic solution methods are discussed for these models.

In detail, the following issues are treated:

- Classification of scheduling models
- Single-machine models
- Parallel-machines models
- Open shop, flow shop and job shop models

**Aim of the course**

In this course, students will learn techniques for a broad variety of scheduling problems. In particular,

it is expected that after this course students will be able to construct mathematical models for the

basic problems, classify them, address the questions on computational complexity of the problems,

and apply standard algorithmic techniques to solve the problems.

**Prerequisites**

Basic knowledge (bachelor level) of analysis and linear algebra. Linear programming (modelling, not

necessarily solving, see e.g. Chapter 1 of Linear Programming: Foundations and Extensions by Robert

J. Vanderbei) and dynamic programming (see e.g. Chapter 5 of Integer Programming by Laurence A.

Wolsey).

**Lecturers**

Theresia van Essen (Delft University of Technology)

Johann Hurink (University of Twente)

- Docent: Johann Hurink
- Docent: Theresia van Essen