Lecture XIII - Recap and Discussion

Applied Optimization with Julia

Dr. Tobias Vlćek

University of Hamburg

Introduction

Congratulations!

You’ve finished the course and learned how mathematical models can be used to solve real-world problems!

Topics Covered

Question: Can you recall the problem structure behind each topic?

  • Solar Panel Transport
  • Beer Production
  • Split Order Minimization
  • Library Routing
  • Police Service Districting
  • Safety Planning for the Hajj Pilgrimage
  • Arena Seating
  • Passenger Flow Control

Underlying Problem Structures

Topic Original Problem1
Solar Panel Transport Classic Transport Problem
Beer Production Capacitated Lot-Sizing Problem (CLSP)
Split Order Minimization Quadratic Multiple Knapsack Problem (QMKP)
Library Routing Capacitated Vehicle Routing Problem (CVRP)
Police Service Districting p-Median Problem
Safety Planning for the Hajj Pilgrimage Scheduling Problem
Arena Seating 2D-Knapsack Problem
Passenger Flow Control Dynamic Network Flow Problem

Modeling Techniques

Question: And do you remember the key modeling ideas?

Topic Key Modeling Idea
Solar Panel Transport Sets, parameters and continuous variables
Beer Production Binary setup variables and Big-M constraints
Split Order Minimization Quadratic objective with binary variables
Library Routing Subtour elimination and heuristics

Modeling Techniques II

Topic Key Modeling Idea
Police Service Districting Contiguity and compactness constraints
Safety Planning for the Hajj Pilgrimage Time-indexed scheduling with penalties
Arena Seating One binary variable per seating group
Passenger Flow Control Queue dynamics over time periods

What have we learned?

  • How to identify and abstract real-world problems
  • How to start programming in Julia
  • How to model and solve optimization problems
  • How to question model assumptions

That’s a lot and a great foundation for a seminar or a master thesis!

Check Yourself

Before the exam, you should be able to answer the following:

  • Can you define sets, parameters, and variables for a new problem?
  • Can you choose the right variable domain (continuous, integer, binary)?
  • Can you formulate objective functions and constraints in JuMP?
  • Do you know when a model needs Big-M constraints?
  • Can you explain what subtours are and how to prevent them?
  • Do you know the difference between LP, MIP, and NLP?

If some points feel shaky, revisit the linked lectures and take a look at the cheatsheets on the course website.

Any questions

regarding the

past lectures?

How to continue?

How to continue after the lecture?

  • The best way is to keep programming and modeling
  • We offer seminar places and master thesis supervision
  • Try to find a way to apply programming in your work
  • There are many interesting topics to explore!

Getting your managers on board is the hardest part! But note that it is often worth it. The tools we have used are all free and open-source.

Concrete Next Steps

  • Ask questions on the Julia Discourse forum
  • Explore the JuMP community at jump.dev
  • Contribute to open-source, e.g. “good first issues” of JuMP
  • Start a small personal project using the tools learned

Project ideas at the right scale: a schedule for your sports league, a weekly meal plan on a budget, or a shift roster for a student job.

Start Pair Programming with AI

  • First, try to be confident with the basics of a language
  • Always try to understand the code you use
  • Then, try an AI-assisted IDE or coding agent

The tools change fast; popular options are, for example, Cursor, GitHub Copilot, and Claude Code. They make work much easier compared to copying and pasting code between a chat and your editor.

Final Words

That’s it for the Lecture Series!

  • I hope you enjoyed the lecture and found it helpful
  • In the last tutorial, we will have a final discussion session
  • There, you can earn the last half-bonus point for the exam
  • I wish you all the best for your studies and your career!

If you have any questions on optimization in the future, feel free to contact me!

Questions?

Thank You!

Thank you for participating in the course — good luck with the exam!