Lecture XIII - Recap and Discussion
Applied Optimization with Julia
Introduction
Congratulations!
Solutions
You will likely find solutions to most exercises online. However, I strongly encourage you to work on these exercises independently without searching explicitly for the exact answers to the exercises. Understanding someone else’s solution is very different from developing your own. Use the lecture notes and try to solve the exercises on your own. This approach will significantly enhance your learning and problem-solving skills.
Remember, the goal is not just to complete the exercises, but to understand the concepts and improve your programming abilities. If you encounter difficulties, review the lecture materials, experiment with different approaches, and don’t hesitate to ask for clarification during class discussions.
Later, you will find the solutions to these exercises online in the associated GitHub repository, but we will also quickly go over them in next week’s tutorial. To access the solutions, click on the Github button on the lower right and search for the folder with today’s lecture and tutorial. Alternatively, you can ask ChatGPT or Claude to explain them to you. But please remember, the goal is not just to complete the exercises, but to understand the concepts and improve your programming abilities.
You’ve finished the course and learned how mathematical models can be used to solve real-world problems! 🎉
. . .
Topics Covered
Topic | Original Problem1 |
---|---|
Solar Panel Transport | Classic Transport Problem |
Beer Production | Capacitated Lot Sizing Problem |
Split Delivery Minimization | Multiple-Quadratic-Knapsack Problem |
Library Routing | Capacitated Vehicle Routing Problem |
Police Service Districting | P-Median Problem |
Safety Planning Hajj Pilgrimage | Scheduling Problem |
Arena Seating | 2-D Knapsack Problem |
Passenger Flow Control | Network Flow Problem |
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!
How to continue?
How to continue after the lecture?
- The best way is to keep programming and modeling
- We are offering seminars and master thesis
- Try to find a way to apply programming in your work
- There are many interesting topics to explore!
. . .
Getting your supervisors on board is the hardest part! But note, that it is often worth it and the tools we have used are all free and open-source.
Concrete Next Steps
- Join online communities on Julia and Optimization
- Contribute to open-source projects if you can
- Follow key researchers and practitioners
- Start a small personal project using the tools learned
. . .
If you want to start a small personal project, try to find a problem that you are interested in and that you can solve using the tools we have learned.
Start Pair Programming with AI
- First, try to be confident with the basics of a language
- Always try to understand the code you use
- If you want to try AI pair programming, use Cursor as IDE
. . .
Cursor is a great IDE for AI pair programming, although it is not completely free. It has Claude and ChatGPT integrated and makes work much easier when compared to copying and pasting code.
Final Words
That’s it for the Lecture Series!
- I hope you enjoyed the lecture and found it helpful
- On Friday, we will have a discussion session
- 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!
Footnotes
Original problem structure we used/extended/exploited to address the topic.↩︎