Introduction

Essentially, almost all engineering problems are optimization problems. If a civil engineer designs a bridge, then one of the main objectives is to obtain the cheapest design or the design that can be implemented most rapidly, where of course several specifications and constraints such as size, strength, safety, etc. have to be taken into account. When developing a new type of engine, we look for the most economical design, the cheapest design, or the design with the highest performance. A process engineer wants a production unit to deliver a final product of maximal quality, with minimal expenditure of energy or with maximal output flow. When composing a portfolio, a financial engineer tries to maximize the expected profits, subject to the given risk constraints. So we encounter optimization problems in almost every engineering field.

How can we solve such an optimization problem? That is the topic that will be addressed in this course. We will in particular consider the selection of the most efficient numerical algorithms to solve optimization problems resulting from real-world design problems.

The examples and case studies of this course are primarily oriented towards systems and control. In preceding courses you have already studied modeling, identification and control of systems. However, the examples in these courses were usually limited to simple or small systems, and more complex systems were often dealt with by saying that they can be tackled using optimization. In this course you will learn how to solve various optimization problems using numerical optimization, and how this can be done in the most efficient way.

In this course we study several classes of optimization problems and we discuss which algorithms are the best suited for each particular problem.