Tired of solving Sudokus by hand? This class teaches you how to solve complex search problems with discrete optimization concepts and algorithms, including constraint programming, local search, and mixed-integer programming.
Offered By
Discrete Optimization
The University of MelbourneAbout this Course
Skills you will gain
- Constraint Programming
- Branch And Bound
- Discrete Optimization
- Linear Programming (LP)
Offered by

The University of Melbourne
The University of Melbourne is an internationally recognised research intensive University with a strong tradition of excellence in teaching, research, and community engagement. Established in 1853, it is Australia's second oldest University.
Syllabus - What you will learn from this course
Welcome
These lectures and readings give you an introduction to this course: its philosophy, organization, and load. They also tell you how the assignments are a significant part of the class. This week covers the common input/output organization of the assignments, how they are graded, and how to succeed in this class.
Knapsack
These lectures introduce optimization problems and some optimization techniques through the knapsack problem, one of the most well-known problem in the field. It discusses how to formalize and model optimization problems using knapsack as an example. It then reviews how to apply dynamic programming and branch and bound to the knapsack problem, providing intuition behind these two fundamental optimization techniques. The concept of relaxation and search are also discussed.
Constraint Programming
Constraint programming is an optimization technique that emerged from the field of artificial intelligence. It is characterized by two key ideas: To express the optimization problem at a high level to reveal its structure and to use constraints to reduce the search space by removing, from the variable domains, values that cannot appear in solutions. These lectures cover constraint programming in detail, describing the language of constraint programming, its underlying computational paradigm and how it can be applied in practice.
Local Search
Local search is probably the oldest and most intuitive optimization technique. It consists in starting from a solution and improving it by performing (typically) local perturbations (often called moves). Local search has evolved substantially in the last decades with a lot of attention being devoted on which moves to explore. These lectures explore the theory and practice of local search, from the concept of neighborhood and connectivity to meta-heuristics such as tabu search and simulated annealing.
Reviews
- 5 stars88.93%
- 4 stars8.22%
- 3 stars1.04%
- 2 stars0.14%
- 1 star1.64%
TOP REVIEWS FROM DISCRETE OPTIMIZATION
This was more than introduction for me. Loved every second for me, got grades, but will try to improve obviously.
Excellent course! The course video are very clear and build on each other as the course progress. It is well structured. The assignments have the right amount of difficulty.
I just completed the course. This an amazing course with an Outstanding professor and highly interesting, although difficult, assignments. Thanks for this! I am proud to have finished
Exceptional coverage of optimization fundamentals. Learning of practical applied methods. Real university level course, no water down "data science". Absolutely love it! Thank you professor Pascal.
Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I purchase the Certificate?
Is financial aid available?
• What are the pre-requisites for the class?
• What programming language will be used in this class?
• How difficult is this class?
• Where can I get one of those T-Shirts?
More questions? Visit the Learner Help Center.