Applied Optimization

HS 2020

Nowadays, numerical optimization is a fundamental component of many applications, e.g. in engineering, finances, biomedical applications, machine learning and many more. Therefore, understanding the underlying principles and available algorithms of numerical optimization can be considered an essential skill for a computer scientist. This course offers an applied introduction, covering a broad range of practically important topics, as for instance: Mathematical modeling of real-world problems, theory of convexity, Lagrange dualism, algorithms for unconstrained and constrained optimization with inequalities (e.g. gradient descent, Newton’s method, trust-region methods, active set approaches, interior point methods, …). A major goal of the course is to train students in appropriately modelling optimization problems, and identifying suitable optimization algorithms, based on the understanding of their specific strengths and weaknesses.

Upon successful completion of this class, a student will be able to:

  • Understand which classes of optimization problems are easy/hard to solve.
  • Model or re-formulate problems in a way that they become easier (e.g. convex).
  • Understand the fundamental ideas behind unconstrained, constrained and mixed-integer optimization.
  • Implement and use various optimization algorithms (programming exercises are in C++).
  • Understand and tune the parameters and output statistics that are exposed by optimization packages.