Lecture XIII - Recap and Discussion
Applied Optimization with Julia
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.
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!
Thank You!
Thank you for participating in the course — good luck with the exam!
Footnotes
Original problem structure we used/extended/exploited to address the topic.↩︎