Fundamentals of numerical optimization

Below is a list of the 10 lectures. More details can be found in the attached sheet.

  1. Introduction to optimization problems, sets, linear algebra basics, derivatives, convex sets and functions. Definition of an optimization problem of interest for each student (or groups). (2h)
  2. Introduction to unconstrained optimization, line search methods, trust region methods. Basic operations in Python (3h).
  3. Conjugate gradient methods, Quasi-Newton methods, derivative calculations, derivative-free methods (2h).
  4. Least-square problems, nonlinear systems of equations. Unconstrained optimization (kinetic example) and solution of systems of equations in Python (3h).
  5. Introduction to constrained optimization, optimality conditions (2h).
  6. Linear programming problems (simplex, interior-point). Examples of LPs in Python. Introduction nonlinear programming problems. Quadratic programming problems (active set, interior-point) (3h).
  7. Penalty and augmented Lagrangian methods for NLP. Sequential Quadratic Programming, Interior-point methods for NLP. (2h)
  8. Solving NLP in Python and solution of the student optimization problems (3h).
  9. Optimization examples: optimal control problems (2h)
  10. Optimization examples: state and parameter estimation, equilibrium shapes of elastic structures. Review of student problems (3h).