Nonlinear Optimization (SS 22)

Here you find information about the course on Nonlinear Optimization in the summer term 2022.


  1. General Information
  2. Exercises
  3. Lecture Format
  4. Tutorial Format
    1. Collaborative working sessions
    2. Presentation of solutions
  5. Final Exam
  6. Lecture Notes, Literature and Other Materials

General Information


Please contact Ihno Schrot if you have questions regarding this course.

First Lecture
Thursday, April 21, 11:15, in the lecture hall (HS) in INF 205
Lecture Dates
  • Mondays, 11:00 - 13:00
  • Thursdays, 11:00 - 13:00
Lecture Room
Lecture hall (HS) in INF 205

We meet in person.

Tutorial Groups
Monday16:15 - 17:45SR 1Jörn
Thursday09:15 - 10:45SR 1Laura
Thursday16:15 - 17:45SR 4Laura
Collaborative Working Sessions
The collaborative working sessions take place in SR 1 on Thursday at 09:15am. If Thursday is a public holiday, the collaborative working session takes place in SR 1 on Mondays at 16:15. More details on the format can be found below.
Bachelor and Master
You should have attended at least the following courses:
  • Analysis 1, 2
  • Linear Algebra 1

Additionally, having attended the following courses is beneficial but not necessary:

  • Basics of Optimization
  • Introduction to Numerics

We will have programming exercises that have to be solved in Python, so it is beneficial if you have some experience with Python already, but we keep the exercises beginner-friendly, so that it is no problem if you have not used Python before.

You can of course still join the course if you are missing one of these requirements, but we recommend that you acquire the missing knowledge in parallel then.

To participate in the course, please register for the course on MÜSLI.


SheetDeadlineNotebook TemplateSolutionsComments
Tutorial sheetNone NoneTutorial notebooks: python_for_nlo python_tut_cebulla
Sheet 1May 13th, 08:00amTemplate 01, Auxiliary Functions 01Solutions 1, Prog. Solution 1Typo in Exe.1.8 (b) fixed on May 2nd.
Sheet 2May 27th, 08:00amThe programming exercise has been moved to Sheet 3.Solutions 2As we did not yet cover the MFCQ and the Abadie CQ in the lecture, we will move the exercises 2.4 (c), 2.6 (c) and 2.7 to Exercise Sheet 3.
Sheet 3June 10th, 08:00amTemplate 03, Auxiliary Functions 03Solutions 3, Prog. Solution 3You find the definition of Newtons method on p. 90 in the lecture notes. This short definition is sufficient to solve the exercises on this sheet.
Sheet 4June 24th, 08:00amTemplate 04, Auxiliary Functions 04Solutions 4, Prog. Solution 4 
Sheet 5July 15th, 08:00amTemplate 05, Auxiliary Functions 05Solutions 5, Prog. Solution 5The deadline has been extended to July 15.
SQP ExercisesNone SQP SolutionsThis sheet shall not be handed in.
General format
  • One exercise sheet every two weeks
  • The first exercise sheet will be published April 29.
  • 5 (graded) exercise sheets with 40 points of theoretical exercises and one programming exercise per sheet. See below for more information on the grading.
  • Release: Fridays (biweekly) on MaMpf and in the table above.
  • Submission deadline: Fridays (biweekly) until 08:00am on MaMpf
  • Submission procedure see below.
  • Work in teams allowed and encouraged with up to 3 persons per team
  • Information on the correction and the feedback see below.
  • Solutions can be written in English and German.
  • Plagiarism leads to 0 points for all involved teams (that also applies to plagiarism of the solutions from the winter term 20/21)!
  • Sample solutions will be uploaded in MaMpf and linked in the table above.
Programming exercises format
  • Programming language: Python
  • You get templates that you have to complete.
  • The templates are a single Jupyter notebook for each sheet (sometimes accompanied by a Python file with auxiliary functions)
  • A Python tutorial will be available soon.
Submission procedure
  • Both the theoretical and the programming exercises are submitted digitally.
  • The solutions to the theoretical questions have to be submitted as one PDF file. Solutions created in LaTeX are allowed as long as the names of the team members are also added using LateX. If you scan handwritten solutions, please make sure that the solutions remain readable and have a moderate file size! Digitally handwritten solutions are accepted, too.
  • The programming exercises have to be submitted as one Jupyter notebook.
  • The Jupyter notebooks have to include the created outputs, like plots and logging outputs.
  • The PDF and the Jupyter notebook have then to be added to a ZIP-archive.
  • The notebooks, PDFs, and archives have an obligatory naming scheme. Please name your files <sheet numer (2 digits!)>_<Last name1>(_<Last name2>_<Last name3>).ipynb/pdf/zip, i.e. for example 01_Femmer_Kostina_Schrot.ipynb. (Do not use the angle brackets and adjust the number of names according to your team size).
  • Write down your name(s) at the beginning of your theoretical solutions and at the beginning of your Jupyter notebooks. It is not sufficient to have your names only in the file name.
  • Upload your solutions until Friday (biweekly), 08:00am on MaMpf.
  • A guide how to submit solutions on MaMpf can be found here.
Grading, correction and feedback
Fortunately, we have found a second tutor such that the grading, correction and feedback works as usual. I.e., all submissions will be corrected and graded and you will receive a commented version of your submission in MaMpf.

Lecture Format

The lectures take place in person and in a “classical” format, i.e. Prof. Kostina will present the lecture content in the lectures.

Handwritten lecture notes will be uploaded on MaMpf. Moreover, lecture notes from the course in the winter term 2020/2021 are available, see other materials.

Tutorial Format

We will alternate between two different formats: A collaborative working session and the presentation of solutions.

We want to make sure that the tutorials are as effective as possible for you, so we can possibly still adjust the formats to your needs. Therefore, feedback is always welcome.

Collaborative working sessions

In these sessions we invite you to come to the seminarroom to work together with your own and other groups on the exercises. Moreover, Laura and myself will be there to help if you have problems or questions. In particular, we can discuss programming related issues here.

The spirit of these sessions is less the one of a “classical” tutorial, but more the one of an interactive group meeting. Especially, we will not prepare anything unless you have asked us for something specific.

In the second week after you submitted your solutions/the new exercise sheet has been published in SR 1 on Thursday, 09:15am. Moreover, we have an additional meeting at the beginning and one at the end of the semester. I.e., the dates are:
02.05./05.05.Setting up the Conda environments and the Python tutorials; possibly we will say a few words about debugging and Git 
09.05./12.05.Working on the 1st exercise sheet 
23.05.Working on the 2nd exercise sheetMonday 16:15 instead of Thursday!
09.06.Working on the 3rd exercise sheet 
23.06.Working on the 4th exercise sheet 
07.07.Working on the 5th exercise sheet 
14.07.Working on the 5th exercise sheet 

Presentation of solutions

In these tutorials Laura and Jörn will present (some of the) solutions of the previous exercise sheet and answer specific questions to your solutions.
In the first week after you submitted your solutions/the new exercise sheet has been published. I.e., the dates are:
MondaysThursdaysTopic solutions of the 1st exercise sheet solutions of the 2nd exercise sheet
13.06.(Public Holiday)Discussing solutions of the 3rd exercise sheet solutions of the 4th exercise sheet
-21.07.Discussing solutions of the 5th exercise sheet

Final Exam

Admission Requirements
  • at least 50% of the points (=95 points) in the theoretical exercises and 2 points in the programming exercises.

If you have an old admission, contact me as soon as possible.

Exam Format
  • Date and Room:

    1stAugust 1st, from 11:00 - 13:00HS and SR C
    2ndOctober 12th, from 11:15 - 13:15HS

    Please arrive 15min earlier!

  • Written exam of 120min
  • No programming project
  • Theoretical and programming related questions (no coding on paper however)
  • The exam is not an open book exam. In fact, you are not allowed to bring any materials into the exam, i.e. you are not allowed to use cheat sheets or similar.
  • Exam Information/Preparation Sheet In this document you find general information about the exam and materials for the exam preparation including a list of the most relevant exercises and a list of questions.

Lecture Notes, Literature and Other Materials

Lecture Notes
The lecture notes will be uploaded on MaMpf.
  • Nocedal, Wright: Numerical Optimization, Springer, 2006.
  • Fletcher: Practical Methods of Optimization, Wiley, 2nd edition 1987.
  • Ulbrich, Ulbrich: Nichtlineare Optimierung, Birkhäuser Verlag, 2012. (German)
Other Materials
  • MaMpf (WS 20/21) -> Here you find all materials from the last time that we have taught this course
  • Skript -> Lecture Notes from the winter term 2011 (German)