Course Description

Many control and estimation tasks seek at minimizing a given cost while respecting a set of constraints, which belongs to the class of problems denoted as Optimal Control (OC). The most practical approach to solve OC problems is via direct methods, which consist in discretizing the problem to obtain a Nonlinear Program (NLP) which is then solved using one of the many available approaches. The course will be introduced by an overview of the available classes of algorithms for OC and place direct methods in this context. The core of the course is structured around the following main parts.

  • NLP solvers:This part of the course first establishes a sound theoretical background on the characterization of local minima (maxima) by introducing geometric optimality concepts and relating them to the first- and second-order conditions for optimality, i.e., the Karush-Kuhn-Tucker conditions, constraint qualifications and curvature conditions.
    Second, the theoretical concepts will be used to analyze the most successful algorithms for derivative-based nonconvex optimization, i.e., Sequential Quadratic Programming and Interior Point Methods, both of which are based on Newton’s method. Since there does not exist a plug-and-play NLP solver, attention will be devoted to giving the students a solid understanding of the mechanisms underlying the algorithms so as to endow them with the ability to formulate the problem appropriately and choose the adequate algorithm for each situation.
  • Discretization techniques:This second part of the course covers the most successful discretization approaches, i.e., single-shooting, multiple-shooting and collocation. All these approaches rely on the simulation of dynamical systems, for which a plethora of algorithms have been developed. The students will be explained the features of the different classes of algorithms, with particular attention on the numerical efficiency, simulation accuracy and sensitivity computation. Finally, the structure underlying the NLP obtained via direct methods for OC will be analyzed in order to understand the immense benefits derived from developing dedicated structure-exploiting OC solvers.
  • Advanced topics:The course will be concluded by two lectures giving a brief introduction to: (a) parametric optimization, which is particularly relevant whenever a problem needs to be solved several times with changing parameters; and (b) nonlinear model predictive control, which consists in closing the control loop by repeatedly solving OC problems online based on the most up-to-date information on the system state and parameters.

Course Schedule

If the epidemic situation will allow, the course will take place in presence. In case this will not be possible, the link to the online classroom for lectures and supervised assignments will be communicated per email to the registered students.

The course takes place in classroom 2 over the 5 days 15-19 May 2023:

  • 11:00 – 13:00: Lectures
  • 14:00 – 16:00: Lectures
  • 16:00 – 18:00: Supervised Assignments


To register please write an email to Registration is free of charge but mandatory.

Course Material

Please do not print the slides! They are designed with various animations and the paper waste would be quite significant. This course has been prepared in collaboration with Sébastien Gros.

Slides (might be updated):
Nonlinear Programming (NLP)
NLP Solvers
Shooting Methods
OCP NLP Structure
Parametric NLP
Nonlinear Model Predictive Control

Assignment 1: KKT and SOSC
Assignment 2: NLP Solvers
Assignment 3: Interior Point Method
Assignment 4: Integrators
Assignment 5: Shooting Methods
Assignment 6: Casadi (optional)