HN Academy

The best online courses of Hacker News.

Hacker News Comments on
Basic Modeling for Discrete Optimization

Coursera · The University of Melbourne · 5 HN comments

HN Academy has aggregated all Hacker News stories and comments that mention Coursera's "Basic Modeling for Discrete Optimization" from The University of Melbourne.
Course Description

Optimization is a common form of decision making, and is ubiquitous in our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports. Good decisions in manpower and material resources management also allow corporations to improve profit by millions of dollars. Similar problems also underpin much of our daily lives and are part of determining daily delivery routes for packages, making school timetables, and delivering power to our homes. Despite their fundamental importance, all of these problems are a nightmare to solve using traditional undergraduate computer science methods.

This course is intended for students interested in tackling all facets of optimization applications. You will learn an entirely new way to think about solving these challenging problems by stating the problem in a state-of-the-art high level modeling language, and letting library constraint solving software do the rest. This will allow you to unlock the power of industrial solving technologies, which have been perfected over decades by hundreds of PhD researchers. With access to this advanced technology, problems that are considered inconceivable to solve before will suddenly become easy.

Watch the course promotional video here:

HN Academy Rankings
  • Ranked #3 this month (jun/jul) · view
Provider Info
This course is offered by The University of Melbourne on the Coursera platform.
HN Academy may receive a referral commission when you make purchases on sites after clicking through links on this page. Most courses are available for free with the option to purchase a completion certificate.
See also: all Reddit discussions that mention this course at

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this url.
As others have said, using a combinatorial solver like Z3 (SMT solver) or MiniZinc (which is a modelling language and can interface to different types of solvers, including several constraint programming and mixed integer programming solvers, can be driven via minizicn-python) is probably the way to go. CPMpy is a new Python modelling framework that might also be of interest that interfaces to different solvers

If you have a lot of constraints that are on the bit representation, then it is more likely that an SMT solver is a better solution. If on the other hand more of your constraints are arithmetic and perhaps some structural constraints, then it might be interesting to look into other types of solvers. It all depends on the specifics of your problem instances.

There are a couple of Coursera courses for modelling with MiniZinc that are quite nice ( is the first one) that are useful if you want to learn more about how to think when doing combinatorial modelling. These are usefule even if you end up using some other tool or technology, as the mindset is similar.

Sep 15, 2021 · mzl on How much faster is Java 17?
There are a couple of very good coursera courses on modeling with MiniZinc, the first one being
Signed up. Much appreciated.
I am taking the Modelling series( and Discrete optimization( Great way to get your feet wet in the world of NP-hard problems.
Discrete optimization is the best course for me. It's really challenging one. I spend about a month for getting A score for all tasks - but it's rewarding experience.

I miss professor Pascal. I hope he will create a second course!

I took watched some of the lectures and did a few exercises when I had a similar course at University, it was great indeed.
Mar 15, 2020 · cerved on Employee Scheduling
I'm glad to see the domain of constraint programming and operational research in general generate interest so I thought I would take the opportunity to share some links and resources I have found useful. Personally, I've spent most of my time on the routing (TSP, VRP, VRPTW) side of things using CP (OscaR-CP).

Discrete optimization and constraint programming can be a bit difficult to get into. There are two great free online courses on Coursera that do a good job at introducing the topic.

Discrete Optimization

I don't remember the exact content of this course but I believe it covers the basics in a few different methodologies.

Basic Modeling for Discrete Optimization

This is a great course by Peter Stuckey that uses MiniZinc. The MiniZinc programming language is a great starting point that teaches you to think of solving discrete optimization problems only in terms of modelling the problem.

Håkan Kjellerstrands blog is another great resource

It contains hundreds of different models for a large variety of different solvers. Chances are that he has created a model for your solver for a similar problem.

Two books worth mentioning are:

Handbook of Constraint Programming

Principles of Constraint Programming

Other solvers/frameworks:

The OscaR library

My personal favorite. An OR framework written entirely in Scala. As such it's an absolute joy to work with and the internals are (relatively speaking) easier to understand.


Another extremely potent solver. Exclusively CP based.


An extremly lightweight CP solver, designed for educational purposed to expose how a CP solver works without obfuscating performance optimizations found in research/production solvers.


A solver agnostic constraint modelling languages, designed to interface a given optimization model with different solvers.

A few notable researches:

Phil Kilby

Pascal Van Hentenryck

Paul Shaw

Laurent Perron - OR-tools

Peter Stuckey - MiniZinc

Pierre Schaus - OscaR, Mini-CP

Renaud Hartert - OscaR

I also want to make a plug for the work of the Uppsala University optimization group

Especially the work of Pierre Flener, Gustav Björdal and Justin Pearson who I've had the pleasure to work with during my masters thesis on vehicle routing using CP.

There's a good MOOC on Coursera on applied discrete optimization that uses MiniZinc:
HN Academy is an independent project and is not operated by Y Combinator, Coursera, edX, or any of the universities and other institutions providing courses.
~ [email protected]
;laksdfhjdhksalkfj more things ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.