Looking Back at the Winter Session

4 minute read

Published:

In the world of numerical optimization, the quest for efficiency, accuracy, and innovation never ceases. At Polytechnique Montréal, students embarking on their educational journey have a unique opportunity to explore this dynamic field through the course MTH8408 Méthodes d’optimisation et contrôle optimal. This course, which I had the privilege of teaching during the winter session of 2023, delves into the depths of numerical methods for optimization, variational calculus, and optimal control.

Teaching the same course in 2022 provided valuable insights that led to improvements, making the 2023 edition an even more enriching experience. The heart of MTH8408 lies in bridging theory and practice, giving students a well-rounded understanding of optimization. Here, we will take you on a journey through the course, its laboratory sessions, student projects, and the role of the powerful Julia programming language.

Course Overview

MTH8408 is a 36-hour course that equips students with a deep understanding of optimization algorithms, spanning various classes of problems. The primary objective is to ensure that students grasp the core concepts of optimization while gaining hands-on experience. It’s this unique blend of theory and practice that sets the course apart.

One remarkable aspect of the course is the extensive in-class discussions that dissect algorithms, focusing on the intricate details that render them efficient. A prime example is the utilization of matrix-free implementations for some algorithms. Such attention to detail ensures that students not only understand the algorithms but can also implement them effectively.

Laboratory Sessions

In addition to the classroom sessions, students spend 18 hours in the laboratory. Here, they get to grips with the Julia programming language, known for its power and flexibility in the field of scientific computing. More importantly, students have the opportunity to contribute to existing Julia packages, such as OptimizationProblems.jl.

The course uses several Julia packages:

What’s truly impressive is how quickly students adapt to Julia and these packages. In just a few hours, they are able to code a range of algorithms for unconstrained and equality-constrained optimization problems, as well as linear and nonlinear least squares problems. It’s a testament to both the students’ capabilities and the accessibility of Julia as a programming language.

Student Projects

One of the highlights of MTH8408 is the student projects. These projects allow students to explore areas of interest within the realm of optimization and apply their newfound knowledge and skills. The results from these projects are nothing short of astounding, often reaching the level of numerical results expected in research papers.

Some of the topics that students tackled in 2023 included parameter identification in financial market models, Gaussian process regression, quasi-Newton methods, first-order objective-function-free optimization algorithms, local solutions of the optimal power flow problem, nonsmooth R2 algorithms with constraints, and hybrid methods for nonlinear least squares.

The diversity of these projects demonstrates the breadth of optimization’s applications and the depth of the knowledge acquired during the course. Students are not just learning theory; they are actively contributing to the advancement of optimization research.

Teaching with Julia

Teaching MTH8408 using Julia and its associated packages has been a revelation. The simplicity and efficiency of Julia make it a powerful tool for teaching optimization. However, what truly makes a difference is the usage of a straightforward yet highly effective API, known as NLPModels, along with refined ideas and subsolvers for algorithms.

The students’ ability to implement algorithms and achieve exceptional results is a testament to both their aptitude and the efficacy of these tools. Julia has undoubtedly earned its place in the optimization classroom.

Personal Insights

Teaching MTH8408 is not just a professional endeavor; it’s a source of personal fulfillment. The interaction with students, their enthusiasm, and their achievements are incredibly rewarding. Moreover, teaching this course is a two-way street. It guides my research and helps me understand what truly matters in the world of numerical optimization. The students’ exploration of diverse projects continually expands my horizons and enriches my research endeavors.