## Topic outline

• ### MS-E2122 Nonlinear Optimization -- Fall 2022

#### Why this course?

Mathematical optimisation is one of the cornerstones of fields such as Machine Learning, Artificial Intelligence, and Operations Research. Most decision support methods have, at some level, a mathematical optimisation method at its core, and it is precisely these methods that we will learn in this course.

Mathematical optimisation (Nonlinear optimisation, in its most general form) is a powerful framework in which one seeks to find variable values within a domain that maximise (or minimise) the value of a given function. Using the analogy that variables represent decisions or parameters to be defined and the function is a measure of performance, one can use that framework to support decision making in a wide range of applications, from planning industrial chemical plants to training models that learn from data.

In this course, the student will learn the basic optimisation theory behind the main numerical algorithms available and how they can be applied to solve optimisation problems. At the end of the course, it is expected that the student will be capable of analysing the main characteristics of an optimisation problem and decide what is the most suitable method to be employed for its solution.

#### Practical matters

Lecturer: Nuutti Hyvönen
Assistants: Anton Saukkonen

• Point totals and final grades File
Not available unless: Your User account contains (use: aalto.fi) contains aalto.fi
• ### Lectures

Not available unless:
• Your User account contains (use: aalto.fi) contains aalto.fi
• It is before 31 January 2023, 11:55 PM

• ### Exercises and Homework

Not available unless:
• Your User account contains (use: aalto.fi) contains aalto.fi
• It is before 31 January 2023, 11:55 PM
• ### Project Assignments

Not available unless:
• Your User account contains (use: aalto.fi) contains aalto.fi
• It is before 31 January 2023, 11:55 PM
• ### Intro to Julia

Many of the assignments in our course will be implemented in Julia, using packages, such as JuMP, Plots, among many others. Julia combines simplicity and remarkable performance, which is one of the reasons it has become the language of choice for many optimisation applications. The main website for downloading is http://www.julialang.org. This is also the main place for finding the information you might need.

Aalto Scientific Computing has previously offered an introductory course in Julia. Here is a link to the course and its materials: https://scicomp.aalto.fi/training/julia/julia-introduction/

There are a few options to use Julia during this course.

1. The first option which is probably the easiest and recommended one is to use Aalto JupyterHub with the Julia 1.6.2 kernel. The platform may be accessed from here https://jupyter.cs.aalto.fiFollowing this link, you will be able to log to with your personal Aalto account and choose the Julia environment (Julia: General use (JupyterLab)) on the next page. In this case, all the necessary packages are preinstalled.
2. The second option is to install Julia on your personal computer. We recommend this option for those that feel confident about handling the installation themselves. In this case, the recommended version of Julia 1.6.2 with the most recent versions of the packages. By following this option, you will also have to manually install all the packages that will be required during the course.

For the coding interface (IDE), I recommend using Jupyter notebooks (you can open them in Julia by using the IJulia package). If you would like something more "advanced" then VS Code is the way to go.

Below you can find some helpful links. The first one has all the information you need for this course.