Mathematical Optimisation with Python Science for Professionals
Program Overview
Mathematical Optimisation with Python
Overview
Mathematical Optimisation with Python is an advanced course designed for professionals and researchers with a background in linear optimisation and Python programming. The course focuses on robust and stochastic optimisation methods used to solve complex real-world problems affected by uncertainty.
Curriculum
The course covers theoretical foundations, algorithmic implementations, and hands-on practice using the Python library Pyomo. Key topics include:
- Review of linear and mixed-integer linear optimisation
- Network optimisation: models and heuristics
- Accounting for uncertainty: “Optimisation meets reality”
- Robust optimisation
- Stochastic optimisation
Detailed Daily Course Curriculum
The course spans 8 days, with the following topics covered each day:
- Day 1: Review of linear and mixed-integer linear optimisation
- Review of linear optimisation and duality
- Integer variables and related modelling tricks
- Introduction to Pyomo modelling language and solvers
- Day 2: Network optimisation: models and heuristics
- Matching problems
- Flow and transportation problems
- Totally unimodularity and its computational advantages
- Day 3: Accounting for uncertainty: “Optimisation meets reality”
- Sources of uncertainty
- Two mindsets to deal with uncertainty
- The role of simulation and the flaw of averages
- Day 4: Robust optimisation 1 “Optimising for the worst case”
- Core ideas of robust optimisation: worst-case scenarios
- Types of uncertainty sets and how to build them from data
- Day 5: Robust optimisation 2 “Reformulation and implementation”
- Review of duality and its role in the adversarial approach
- Robust counterparts: derivation and implementation
- Day 6: Stochastic optimisation 1 “Optimising for the average case”
- Probability theory refresher
- Optimising “on average”: what does it mean?
- The price of ignoring uncertainty: the flaw of averages
- Day 7: Stochastic optimisation 2 “Chance constraints and risk measures”
- Modelling using chance constraints
- MILO reformulation of chance constraints
- Beyond expectations: an overview of risk measures
- Day 8: Stochastic optimisation 3 “Advanced stochastic problems and solution methods”
- Two-stage stochastic problem formulation
- Recourse actions
- Sample-average approximation
Instructor
Dr. Alessandro Zocca is an assistant professor specialised in reinforcement learning and stochastic optimisation and its applications in various domains, especially (renewable) energy systems. He teaches probability and optimisation at all levels and has recently written the textbook titled “Hands-On Mathematical Optimisation with Python”. He is fluent in Python and is specialised in the use of optimisation packages such as Pyomo.
