MATHEMATICAL OPTIMISATION

[446SM]
a.a. 2025/2026

2° Year of course - Second semester

Frequency Not mandatory

  • 6 CFU
  • 48 hours
  • English
  • Trieste
  • Opzionale
  • Standard teaching
  • Oral Exam
  • SSD MAT/09
  • Advanced concepts and skills
Curricula: DATA SCIENCE AND ARTIFICIAL INTELLIGENCE FOR INDUSTRY AND CYBER-PHYSICAL SYSTEMS
Syllabus

Knowledge and understanding: capability of formulating a discrete
optimization model to maximize or minimize a function of many variables
subject to (i) equality and inequality constraints, and (ii) integrality
restrictions on some or all of the variables.

Applying knowledge and understanding: capability of solving optimization
models relying either on ad-hoc (e.g., Gurobi) or open-source (e.g.,
python) software in different application areas, such as production
planning and scheduling, logistics and transportation, health care, and
telecommunications.

Making judgments: understanding how to translate a verbal description of
a real-life optimization problem into a solvable mathematical formulation.

Communication skills: capability of explaining to a wide audience, both in
verbal and graphical terms, in a formally precise albeit simple way the
meaning of the various results that are usually obtained from a linear
programming optimization model (e.g., dual and slack variables,
optimality gap, branch-and-bound search criterion, etc.).

Learning skills: Capability of autonomously integrating different sources
(textbooks, literature papers, optimization softwares, programming codes
and libraries) to replicate and enhance existing formulations or designing
new ones for real-life optimization problems

Basic knowledge of linear algebra and programming techniques.

The scope of integer and combinatorial optimization - Modeling techniques using integer and continuous variables - Good and ideal formulations - Techniques of 'preprocessing' - Optimality, relaxation and bounds Linear programming - Introduction - Duality and its economic interpretation - Primal and dual simplex algorithms - Sensitivity analysis Network flow problems - Shortest path problem - Maximum flow problem - Minimum cost flow problem - Minimum spanning tree problem - Transport and assignment problems Integer Programming - Branch and Bound - Cutting plane Algorithms Combinatorial optimization - Knapsack and bin-packing - Set covering and set partitioning - Matching - Travelling salesman problem - Vehicle routing problem Heuristic algorithms - Greedy algorithms - Local search algorithms Relaxation techniques - Continuous relaxation - Elimination of constraints - Lagrangian relaxation Introducing python and Gurobi for optimisation

Integer and Combinatorial Optimization, G. L. Nemhauser & L. A. Wolsey,
John Wiley and Sons, New York, 1999. (Chapters 1, 2 and 3)

Integer Programming, L. A. Wolsey, John Wiley and Sons, New York, 1998.
(Chapters 1, 2, 4, 7, 8, 11)

The scope of integer and combinatorial optimization - Modeling techniques using integer and continuous variables - Good and ideal formulations - Techniques of 'preprocessing' - Optimality, relaxation and bounds Linear programming - Introduction - Duality and its economic interpretation - Primal and dual simplex algorithms - Sensitivity analysis Network flow problems - Shortest path problem - Maximum flow problem - Minimum cost flow problem - Minimum spanning tree problem - Transport and assignment problems Integer Programming - Branch and Bound - Cutting plane Algorithms Combinatorial optimization - Knapsack and bin-packing - Set covering and set partitioning - Matching - Travelling salesman problem - Vehicle routing problem Heuristic algorithms - Greedy algorithms - Local search algorithms Relaxation techniques - Continuous relaxation - Elimination of constraints - Lagrangian relaxation Introducing python and Gurobi for optimisation

Lectures on theory topics on the blackboard and/or with the aid of slides
projected in the classroom.

Explanation of how to solve a linear programming problem with Python
and Gurobi by presenting the appropriate software tools on the computer
and a detailed description of the code.

Lab sessions to formulate and implement code to solve linear and integer
programming problems.

A few seminars from external guests

Students may be requested to bring their own laptop.

Teaching materials are available on http://moodle2.units.it and Teams

The examination can be prepared individually or by a group of up to two people.

The examination is set up as follows
- Implementation of a (mixed-) integer linear programming model (or series of models).
- The programming language is Gurobi
- The formulation of the model is available in a paper published in a scientific journal
- The paper is the choice of the student/group subject to confirmation by the lecturer.
- The paper must have been published no earlier than the year 2020 in selected journals
- Once the code has been sent to the lecturer by email, the student/group must prepare a PowerPoint presentation of the work done.
- The presentation will be given in person on a date to be agreed with the lecturer.
- The presentation must involve all members of the group equally.

There is no time limit from when approval of the chosen paper is received to when the email with the implementation is sent.

In the (frequent) case where the input data of the implemented model cannot be derived from the paper, it will be the responsibility of the student/group to create an appropriate dataset.

An analysis of the scalability of the implemented model will be assessed, i.e. how the model behaves from a computational point of view
as the size of the instance increases.

Possible improvements and/or extensions of the model in the chosen paper will be evaluated.

The presentation will be followed by questions from the lecturer concerning or related to the project.

It is not possible to choose a paper that has already been assigned (a list of already assigned papers is provided).

The maximum grade is 30. Honours may only be awarded in exceptional cases if the student(s) has (have) extended the work in the paper with
original contributions.

It is assessed
- the correctness of the python+Gurobi code, and any heuristics
- the degree of understanding of the mathematical programming model proposed in the paper
- data management
- the scalability analysis
- the clarity and completeness of the PowerPoint and the oral presentation

In all types of content produced by the student in order to be admitted or to take part in an examination (projects, reports, exercises, tests), the possible use of Large Language Model tools (ChatGPT and similar) must be explicitly stated. This requirement must also be complied with in the case of partial use.

Regardless of the assessment method used, the lecturer reserves the right to evaluate the student's actual contribution to each type of content produced through an oral examination.

This course explores topics closely related to one or more goals of the United Nations 2030 Agenda for Sustainable Development (SDGs)

icona 11 icona  12 icona  9