# Combinatorial optimization

LINMA2450  2018-2019  Louvain-la-Neuve

Combinatorial optimization
5.0 credits
30.0 h + 22.5 h
1q

Teacher(s)
Catanzaro Daniele (compensates Delvenne Jean-Charles) ; Hendrickx Julien ; Catanzaro Daniele (compensates Hendrickx Julien) ; Delvenne Jean-Charles (coordinator) ;
Language
Anglais
Prerequisites

Basic knowledge of linear programming and the simplex algorithm

Main themes
The course is about different ways to solve optimization problems with discrete or integer variables, which are used to handle indivisibilities, or on/off decisions, such as choosing an edge in a graph, buying a machine, using a warehouse, etc. Such problems arise in scheduling trains or aircraft, constructing a tour in a graph, drawing up a production plan for electricity generation, etc. The theory involves the study of polyhedra, matrices, graphs and aspects of complexity and the development of tight formulations. The algorithmic approaches covered include implicit enumeration and cutting planes (branch-and-cut), Lagrangian relaxation, dynamic programming and approximation algorithms.
Aims

Learning outcomes:

• AA1: 1,2

More specifically, at the end of the course, the student should be able to :

• formulate different combinatorial problems as integer programmes
• explore different formulations for a same problem
• find lower and upper bounds to the solution of an integer programme
• recognize and solve some integer programmes that are solvable in polynomial time
• recognize some integer programmes that are hard to solve (NP-hard)
• apply various techniques (branch-and-bound, Lagrangian relaxation, heuristics) to solve hard problems approximately

Tranversal learning outcomes:

• Use of Matlab or other softwares to solve medium-size problems

The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.

Content
1. Formulation of combinatorial optimization and integer programming problems.
2. Finding bounds on the optimal value and using them to prove optimality
3. Recognizing and solving certain easy problems - network flows, trees, matching and assignment problems
4. Introduction to the distinction between easy and hard problems: NP-hardness
5. Intelligent enumeration - the branch-and-bound algorithm
6. Lagrangian relaxation
7. Introduction to cutting plane algorithms
8. Heuristic methods to find good solutions quickly
Teaching methods

An exercise session is held approximately every two weeks. One or several home exercises on a software (Matlab or other) will be proposed as well.

Evaluation methods

Written exam.

Bibliography

Integer Programming, L.A. Wolsey, Wiley, New York 1998.

Faculty or entity

#### Programmes / formations proposant cette unité d'enseignement (UE)

Program title
Sigle
Credits
Prerequisites
Aims
Master [120] in Computer Science
5
-

Master [120] in Computer Science and Engineering
5
-

Master [120] in Mathematical Engineering
5
-

Master [120] in Data Science Engineering
5
-

Master [120] in data Science: Information technology
5
-