Optimisation for AI

Full course, CentraleSupelec, 2023

Optimisation for AI

Optimisation is at the heart of Machine Learning, indeed most practitioners of ML rely on sophisticated methods to learn models from data. Optimisation is also behind the scenes in reasoning, games, and many classical AI problems such as optimal assignment.

If you’ve ever wondered how to program a Sudoku solver for instance, and how complex it would be, this course will tell you exactly how to do it.

In this course, we begin with linear programming, which is a starting point for many discrete-based algorithms. We consider the contraints of adding integer and binary constraints, which allows us to formulate decision problems, in particular NP-complete problems.

We next consider specialized algorithms for which enumeration is fast and efficient, such as transport and flow problems.

All along the course we provide numerous examples and tutorial sessions.

Slack

Invitation to the Slack for the course: gbit.ly/2DMK9jf

Lectures

 EntryDescription
01IntroductionIntroduction to optimisation
02The Simplex algorithmAn algorithm for solving linear programs
03Limit cases of the SimplexThe limiting cases for the simplex, like how to start it
04DualityLP and duality. Interpretation and algorithms
05Integer ProgrammingFormulation and examples
06IP resolutionResolution of Integer Programs: Cuts and Branch & Bound
07Transport ProblemsTransport problems are a simpler case of LP/IP
08Resolution of transport problemsResolution of transport problems
09Network problemsNetwork problems, including maxflow and the network simplex

Tutorials

 EntryDescription
01Tutorial 1 textSimplex algorithm, examples, formulations

Solutions and code

 EntryDescription
01Tutorial 1 codeCode for assignment 1, to be completed

Thanks

Special thank to Pr Iskandar Hammam; Pr. Maria Vakalopoulou and Pr. Fragkiskos Maillaros.