Skip to content

Downloads

The lecture notes, the exercise books and the catalogue of problems in PDF, with the same numbering of definitions, theorems, examples and exercises as the website, and the Colab notebooks with the code of the algorithms. Text and figures are released under CC BY 4.0, the code under the MIT licence.

Lecture notes

Volume Contents Chapters File
1. Combinatorial optimization problems Combinatorial optimization problems and their families: knapsack, packing, coloring, clique, routing, scheduling and lot sizing problems. For each problem: definition, assumptions, instances, counting the solutions, a first solution by hand and a simple bound. 1–8 PDF (0.8 MB)
2. Formulations and their properties Integer linear programming models of the problems of Volume 1, their linear programming relaxations and duals, the bounds they give, and the comparison between weaker and stronger formulations. 9–15 PDF (1.0 MB)
3. Dynamic programming The principles of dynamic programming and DP algorithms for knapsack problems, lot sizing, coin change and rod cutting: recurrences, pseudocode, complexity and worked tables. 16–28 PDF (1.3 MB)
4. Heuristic algorithms Heuristic algorithms: constructive heuristics, local search, metaheuristics and MIP-based heuristics, applied to the problems of the course. 29–33 PDF (1.7 MB)
5. Approximation algorithms Approximation algorithms: performance ratios and approximation schemes, with algorithms and worst-case analyses for knapsack, bin packing, the metric TSP and parallel machine scheduling, and the limits of approximation for vertex coloring, maximum clique and the general TSP. 34–40 PDF (1.1 MB)
6. Ad hoc algorithms Ad hoc algorithms: the branch-and-bound on the critical item for the 0/1 knapsack problem and the DSATUR branch-and-bound for vertex coloring. 41–42 PDF (0.5 MB)

Exercise books

Volume Contents Chapters File
1. Combinatorial optimization problems Combinatorial optimization · Knapsack problems · Packing problems · Coloring problems · Clique problems · Routing problems · Scheduling problems · Lot sizing problems 1–8 PDF (0.6 MB)
2. Formulations and their properties Knapsack problems · Packing problems · Coloring problems · Clique problems · Routing problems · Scheduling problems · Lot sizing problems 9–15 PDF (0.6 MB)
3. Dynamic programming Principles · Knapsack problems · Lot sizing problems · Miscellaneous problems 16–28 PDF (1.0 MB)
4. Heuristic algorithms Definitions · Constructive heuristics · Local search · Metaheuristics · MIP heuristics 29–33 PDF (0.7 MB)
5. Approximation algorithms Principles · Knapsack problems · Packing problems · Coloring problems · Clique problems · Routing problems · Scheduling problems 34–40 PDF (0.7 MB)
6. Ad hoc algorithms Knapsack problems · Coloring problems 41–42 PDF (0.5 MB)

Slides

The lecture slides, one PDF per chapter, with the same definitions and examples as the lecture notes.

Chapter Title File
1 Combinatorial optimization problems PDF (0.5 MB)
2 Knapsack problems PDF (0.6 MB)
3 Packing problems PDF (0.6 MB)
4 Coloring problems PDF (0.4 MB)
5 Clique problems PDF (0.5 MB)
6 Routing problems PDF (0.4 MB)
7 Scheduling problems PDF (0.4 MB)
8 Lot sizing problems PDF (0.4 MB)
9 Formulations of knapsack problems PDF (0.6 MB)
10 Formulations of packing problems PDF (0.5 MB)
11 Formulations of coloring problems PDF (0.4 MB)
12 Formulations of clique problems PDF (0.5 MB)
13 Formulations of routing problems PDF (0.4 MB)
14 Formulations of scheduling problems PDF (0.4 MB)
15 Formulations of lot sizing problems PDF (0.5 MB)
16 Principles of dynamic programming PDF (0.3 MB)
17 DP for the 0/1 knapsack problem (1/2) PDF (0.6 MB)
17 DP for the 0/1 knapsack problem (2/2) PDF (0.6 MB)
18 DP for the unbounded knapsack problem PDF (0.6 MB)
19 DP for the bounded knapsack problem PDF (0.5 MB)
20 DP for the subset sum problem PDF (0.4 MB)
21 DP for the multiple-choice knapsack problem PDF (0.4 MB)
22 DP for the multidimensional knapsack problem PDF (0.4 MB)
23 DP for the knapsack problem with setups PDF (0.4 MB)
24 DP for the multiple knapsack problem PDF (0.4 MB)
25 DP for the uncapacitated lot sizing problem PDF (0.5 MB)
26 DP for the capacitated lot sizing problem PDF (0.5 MB)
27 DP for the coin change problem PDF (0.5 MB)
28 DP for the rod cutting problem PDF (0.5 MB)
29 Heuristic algorithms: definitions PDF (0.4 MB)
30 Constructive heuristics (1/2) PDF (0.6 MB)
30 Constructive heuristics (2/2) PDF (0.6 MB)
31 Local search (1/2) PDF (0.6 MB)
31 Local search (2/2) PDF (0.6 MB)
32 Metaheuristics (1/2) PDF (0.6 MB)
32 Metaheuristics (2/2) PDF (0.6 MB)
33 MIP heuristics for the classical problems PDF (0.8 MB)
34 Principles of approximation algorithms PDF (0.3 MB)
35 Approximation algorithms for the knapsack problem (1/2) PDF (0.6 MB)
35 Approximation algorithms for the knapsack problem (2/2) PDF (0.6 MB)
36 Approximation algorithms for bin packing PDF (0.6 MB)
37 Vertex coloring: limits of approximation PDF (0.4 MB)
38 Maximum clique: limits of approximation PDF (0.3 MB)
39 The TSP: the general case and the metric case PDF (0.5 MB)
40 Approximation for \(P\|C_{\max}\) PDF (0.4 MB)
41 Knapsack: branch-and-bound on the critical item PDF (0.5 MB)
42 Vertex coloring: the DSATUR branch-and-bound PDF (0.4 MB)

Catalogue of problems

Contents File
Catalogue of combinatorial problems All the problems defined in the course, grouped by family: for each one its definition, its assumptions and what the course does on it, technique by technique. PDF (0.6 MB)

Colab notebooks

The code of the chapters on algorithms, one notebook per chapter and per language, to run in Google Colab or to download (.ipynb links). How to use them: the notebooks page.