Duration
30h Th, 20h Pr, 25h Proj.
Number of credits
Lecturer
Language(s) of instruction
English language
Organisation and examination
Teaching in the second semester
Schedule
Units courses prerequisite and corequisite
Prerequisite or corequisite units are presented within each program
Learning unit contents
Consider a salesman who must visit 20 potential customers in 20 different cities. A natural question he may ask is to know what is the optimal order in which he has to visit all cities so as to minimze the total distance. This famous problem is better known as the traveling salesman problem. It is the typical example of a discrete optimization problem. Indeed, there is a finite number of solutions (the 20! possible permutations of cities) and we may think of testing them all in order to find the optimal one. This approach is however impossible to perform in practice. Even if we were able to test a billion of these solutions per second, it would take us 77 years to test them all.
The traveling salesman problem is one of many discrete optimization problems. Indeed in particular the problems where binary decisions (such as yes or no) have to be taken often arise in practical applications.
Concerning the contents of the course, as a first part, we concentrate on modeling discrete problems as linear integer programs. We discuss some good principles in order to come up with a formulation. We also see what is needed in order to have a good formulation.
Then the last part of the course deals with the solving techniques of integer programs: mainly branch-and-bound, branch-and-cut, lagrangian relaxation, dynamic programming and approximation algorithms. We also consider some classes of important discrete problems that are well solved, namely flow and matching problems.
Learning outcomes of the learning unit
At the end of the course, the student
- will be able to formulate a real problem as an integer programming model
- will be able to compare two formulations of a problem
- will know the main methods to solve integer progamming problems
- will be able to recognize a tractable discrete optimization problem
Prerequisite knowledge and skills
A basic course in linear programming.
Planned learning activities and teaching methods
Traditional tutorials are organized. An implementation project must be achieved.
Mode of delivery (face to face, distance learning, hybrid learning)
Organisational adjustments related to the current health context
Recommended or required readings
Two main references are used: For the first part (and the approximation algorithms): D. Bertsimas, R. Weismantel, Optimization over Integers. Dynamic Ideas, 2005. For the second part: L. Wolsey, Integer Programming. Wiley, 1998.
Assessment methods and criteria
Below you will find information on the evaluation methods planned for in-person and remote exams as well as those planned for hybrid sessions. Depending on how the health crisis evolves, the chosen method will be communicated to you no later than one month before the start of the exam session.
Any session :
- In-person
oral exam
- Remote
oral exam
- If evaluation in "hybrid"
preferred remote
Additional information:
The final exam is oral and composed of theory and exercises.
The final grade is made of 2/3 of the exam grade and 1/3 of the project grade.
If the project is not submitted in May, it has to be resubmitted in August. The absence of any project submitted implies a "no show" grade.
Work placement(s)
Organizational remarks
The course is given in the second semester.
All documents related to the course are available through
https://dox.uliege.be/index.php/s/6njPHTkUf3RBpFX