MS-E2122 - Nonlinear Optimization D, Lecture, 8.9.2022-1.12.2022
This course space end date is set to 01.12.2022 Search Courses: MS-E2122
Topic outline
-
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- Teaching: lectures (24h) and exercise sessions (24h)
- Assessment methods: Project assignments and homework assignments.
- Grading scale: 0-5
- Study material: Lecture notes, lecture slides and exercises. Book (Nonlinear Programming, Theory and Algorithms by Bazaraa, Sherali and Shetty).
- Language of instruction: English
- Programming language: Julia http://www.julialang.org. Detailed information here.
- Recommended platform: Aalto CS Jyputer Notebooks https://jupyter.cs.aalto.fi. Detailed information here.
-
Please read the course syllabus carefully for information on assessment, course content and administrative info.
-
Point totals and final grades FilePDF document
-
-
-
-
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.
- 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.fi. Following 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.
- 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.
- Tutorial 1 (Julia Academy - great starting point): https://juliaacademy.com/p/intro-to-julia
- Tutorial 2 (youtube, very much like the above but in a single video):
- Aalto JupyterHub info: https://scicomp.aalto.fi/aalto/jupyterhub.html