Welcome to Applied Optimization with Julia!

University of Hamburg - Fall 2024

Course Description

In this module we will focus on solving practical problems with the help of optimization. To this end, over the course of the semester you will become familiar with a number of optimization problems that have been worked on in the past at the Institute of Logistics, Transportation and Production in cooperation with practice partners. Problems include improving the sustainability of parcel delivery companies, Corona-compliant seat allocations of stadiums and theaters, optimizing districts and locations for police departments, and many more. The module consists of the following two parts: Lectures (2 SWS) and Exercises (1 SWS).

Learning Outcomes

You can find our specific outcomes in the module handbook. Our broader goal is to introduce you to how diversified the solution of practical problems can be. We want to enable you to independently apply methods and concepts from optimization, and to get a feeling for abstracting and modeling problems. Is our module hard? That’s a subjective question. We would say it is exciting and doable. If you have a basic interest in logical relationships and mathematics, you are in the right place. If you also have basic knowledge of programming or want to get into the subject with help, our module is perfect for you.

Upon completion of the course, you …

  • can implement solutions to complex optimization problems in Julia
  • know advanced concepts of optimization such as linear and nonlinear optimization
  • know basic concepts of programming and algorithms such as loops, functions
  • will be able to read and write code in Julia
  • will have experience working with Julia libraries such as JuMP and HiGHS
  • will know how to collaborate in a small team to find solutions for problems at hand

Please note that this course is specifically designed for business students. That is, it is not required to have any advanced knowledge or experience in programming to attend this course. The teaching format will make it possible to account for different levels of programming skills such that every student can take the most out of the course.

Course Blocks

The core content of the course is organized in three blocks:

  1. Part I: Introduction to Julia and Modelling
  2. Part II: Applied Optimization with Basic Models
  3. Part III: Applied Optimization with Advanced Models

You can find more information on the course blocks and the corresponding lectures in the syllabus.

Tutorials

The tutorials accompany the lectures. In the tutorials, you will apply the concepts from the lectures to realistic data sets. You will work in small groups of 3 participants, in which you can work out solutions together. We will help you during the weekly practice sessions by answering your questions or briefly explaining individual issues in case of difficulties. Afterwards, you have the opportunity to submit your jointly developed solution until the next exercise date in order to earn bonus points for the exam. You can earn up to half a bonus point per exercise, up to 6.5 bonus points in total. Important: the bonus points will only be credited to you if you pass the exam with at least a 4.0. Furthermore, we will not award bonus points for exercises in which you have simply copied the results of another group.

How to see the slides

  • This course is based on Quarto
  • It uses revealjs to render the slides
  • You find the slides for each lecture in the corresponding lecture
  • To see the slides, click on RevealJS in the top right corner

Questions

If you have any questions regarding the course, please contact me under tobias.vlcek@uni-hamburg.de.

Contributors

Thanks to Matthes Koch and Justus Bonz, who helped to prepare the lecture materials.