
#108 overall
Basic Modeling for Discrete Optimization
Coursera
5 recommenders · 4 threads · recommended in 3 years, 2020–2023 · score 4.0
An introductory Coursera course by Peter Stuckey on modeling discrete optimization problems in the MiniZinc language, using constraint programming as the main approach. It is the first of a sequence that continues with an advanced modeling course.
Commenters call it an excellent introduction to constraint programming and a good way to learn MiniZinc, and one recommends it along with its sequel.
Machine Learning & AIbeginnerfreevideo lectures#minizinc#constraint programming#discrete optimization#modeling#stuckey
Recommendations by year
20062026
I strongly recommend Minizinc. The coursera course related to it is also an excellent introduction to constraint programming: https://www.coursera.org/learn/basic-modeling
MiniZinc is high-level modeling language, before using it I'd suggest taking course https://www.coursera.org/learn/discrete-optimization where you could use/create different solvers.
Only after it makes sense to take https://www.coursera.org/learn/basic-modeling and https://www.coursera.org/learn/advanced-modeling courses.
If you want a quick start read really good tutorial on official website https://www.minizinc.org/doc-2.7.2/en/part_2_tutorial.html and play with examples at online playground https://play.disopt.com/ or locally installing MiniZincIDE.
I can recommend this course and its sequels on Coursera to anyone interested in learning MiniZinc: https://www.coursera.org/learn/basic-modeling
I enjoyed the courses and learning the techniques through the exercises but I still haven't really found a good application to a problem I need to solve for work or side projects.
There are a couple of very good coursera courses on modeling with MiniZinc, the first one being https://www.coursera.org/learn/basic-modeling
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
https://www.coursera.org/learn/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
https://www.coursera.org/learn/basic-modeling
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
http://www.hakank.org/
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
https://bitbucket.org/oscarlib/oscar/wiki/Home
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.
GeCode
https://www.gecode.org/
Another extremely potent solver. Exclusively CP based.
Mini-CP
https://minicp.readthedocs.io/en/latest/
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.
MiniZinc
https://www.minizinc.org/
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
http://www.it.uu.se/research/group/optimisation/
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.