Modeling Discrete Optimization (Coursera)

Modeling Discrete Optimization (Coursera)

Learn a new way to approach problem solving by stating the problem and letting powerful constraint solving software do the rest. This class teaches you the art of encoding complex discrete optimization problems in the MiniZinc modeling language and then shows you how to effortlessly solve them by leveraging state-of-the-art open-source constraint solving software.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Who is this class for: This course is primarily aimed at third- and fourth-year undergraduates interested in Artificial Intelligence, Computer Science, and Mathematics. Students are expected to have basic programming skills and a general comfort with mathematics. Knowledge of fundamental computer algorithms is helpful for following some of the optional course content.

Syllabus

WEEK 1
Taming the Dragon, First Steps in MiniZinc
In this first module, you will learn the basics of MiniZinc, a high-level modeling language for discrete optimization problems. Combining the simplicity of MiniZinc with the power of open-source industrial solving technologies, you will learn how to solve tricky Cryptarithm puzzles with great ease.

WEEK 2
Core Decisions
In this module you will examine some of the archetypal forms of decisions that need to be made in discrete optimization problems and how to represent them in MiniZinc. After this module Sudoku problems will never bother you again.

WEEK 3
Multiple Perspectives
In this module you will see how discrete optimization problems can often be seen from multiple viewpoints, and modelled completely differently from each viewpoint. Each viewpoint may have strengths and weaknesses, and indeed the different models can be combined to help each other. You will learn more about converting data into complex constraints or objectives to define a problem. The assignment will challenge you far more than earlier problems.

WEEK 4
The Power of Predicates
You will learn how to encapsulate a complex constraint definition in a predicate definition to enable its reuse. This will enable the construction of far more complex models. You will learn methods to discover what is going wrong with your model and how to fix it. With these tools a complex plannning problem will be easy to solve.

WEEK 5
Challenging Applications
You will learn how to tackle challenging scheduling and packing problems, and the important combinatorial substructures that underly them. You will see how to model some of the complex constraints that arise in these applications. The assignment will tackle a simplification of a real world combined scheduling and packing problem.

WEEK 6
Other Topics (optional)
In this optional module you will get more insight into the type system of MiniZinc and how MiniZinc models are transformed to a form suitable for solving. Option types are used by MiniZinc to allow flexible specification of loops, and you may have experienced confusing error messages involving them, this will be much clearer after this module. Flattening explains how MiniZinc models are translated to solvers, giving you more insight into why some models are more efficient than others.

WEEK 7
Under the Hood (optional)
This optional module gives insight into how the solvers used by MiniZinc actually work. With greater understanding of the solvers you can create more efficient models. Constraint programming (CP) solvers, like Gecode, also allow search to be programmed in the MiniZinc model, and this can make solving far more efficient. Mixed Integer Programming (MIP) solvers can handle many discrete optimization problems far more effectively than CP solvers, but they have a preference for linear constraints.

Note: This course is currently not available.

Related Courses

Basic Modeling for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Basic Modeling for Discrete Optimization (Coursera)

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.

Oct 12th 2026
4 Weeks
Applied Text Mining in Python (Coursera) Coursera
University of Michigan

Applied Text Mining in Python (Coursera)

This course will introduce the learner to text mining and text manipulation basics. The course begins with an understanding of how text is handled by python, the structure of text both to the machine and to humans, and an overview of the nltk framework for manipulating text. The second week focuses on common manipulation needs, including regular expressions (searching for text), cleaning text, and preparing text for use by machine learning processes. The third week will apply basic natural language processing methods to text, and demonstrate how text classification is accomplished. The final week will explore more advanced methods for detecting the topics in documents and grouping them by similarity (topic modelling).

Oct 12th 2026
4 Weeks
Cómo resolver problemas y tomar decisiones con eficacia (Coursera) Coursera
University of California, Irvine

Cómo resolver problemas y tomar decisiones con eficacia (Coursera)

El pensamiento crítico (la aplicación de métodos científicos y del razonamiento lógico) constituye la base para resolver problemas y tomar decisiones con eficacia. El pensamiento crítico nos permite evitar escollos frecuentes, verificar la validez de nuestras creencias y suposiciones y corregir las distorsiones que pueden haberse producido en nuestros procesos mentales.

Oct 12th 2026
4 Weeks
Introdução ao Controle Moderno (Coursera) Coursera
Instituto Tecnológico de Aeronáutica

Introdução ao Controle Moderno (Coursera)

Este curso lhe dará a base necessária para entender técnicas mais avançadas de controle moderno. Você aprenderá como representar a dinâmica de um sistema no espaço de estados, como analisar um sistema no espaço de estados, como projetar uma realimentação de estado e como projetar um observador de estado.

Oct 19th 2026
5-12 Weeks
Introduction and Programming with IoT Boards (Coursera) Coursera
Pohang University of Science and Technology - POSTECH

Introduction and Programming with IoT Boards (Coursera)

Internet of Things (IoT) is an emerging area of information and communications technology (ICT) involving many disciplines of computer science and engineering including sensors/actuators, communications networking, server platforms, data analytics and smart applications. IoT is considered to be an essential part of the 4th Industrial Revolution along with AI and Big Data. This course will be very useful to senior undergraduate and graduate students as well as engineers who are working in the industry.

Oct 26th 2026
5-12 Weeks
Introduction to Psychology (Coursera) Coursera
Yale University

Introduction to Psychology (Coursera)

What are people most afraid of? What do our dreams mean? Are we natural-born racists? What makes us happy? What are the causes and cures of mental illness? This course tries to answer these questions and many others, providing a comprehensive overview of the scientific study of thought and behavior. It explores topics such as perception, communication, learning, memory, decision-making, persuasion, emotions, and social behavior. We will look at how these aspects of the mind develop in children, how they differ across people, how they are wired-up in the brain, and how they break down due to illness and injury.

Oct 26th 2026
5-12 Weeks
Quantitative Formal Modeling and Worst-Case Performance Analysis (Coursera) Coursera
EIT Digital

Quantitative Formal Modeling and Worst-Case Performance Analysis (Coursera)

Welcome to Quantitative Formal Modeling and Worst-Case Performance Analysis. In this course, you will learn about modeling and solving performance problems in a fashion popular in theoretical computer science, and generally train your abstract thinking skills. After finishing this course, you have learned to think about the behavior of systems in terms of token production and consumption, and you are able to formalize this thinking mathematically in terms of prefix orders and counting functions. You have learned about Petri-nets, about timing, and about scheduling of token consumption/production systems, and for the special class of Petri-nets known as single-rate dataflow graphs, you will know how to perform a worst-case analysis of basic performance metrics, like throughput, latency and buffering.

Oct 19th 2026
4 Weeks
Game Theory (Coursera) Coursera
Stanford University,The University of British Columbia

Game Theory (Coursera)

Popularized by movies such as "A Beautiful Mind," game theory is the mathematical modeling of strategic interaction among rational (and irrational) agents. Beyond what we call `games' in common language, such as chess, poker, soccer, etc., it includes the modeling of conflict among nations, political campaigns, competition among firms, and trading behavior in markets such as the NYSE.

Oct 26th 2026
5-12 Weeks
3D Printing Capstone Coursera
University of Illinois at Urbana-Champaign

3D Printing Capstone

The capstone will integrate the learning acquired from the four courses in the 3D Printing Specialization through a hands-on project. This project will enable you to turn an idea into an object using the knowledge and skills acquired through the other courses. Specifically, you will be guided through a step-by-step process in which you imagine, design, make, and share a 3D printed object. Thus, through this capstone, you will be able to put course concepts into action and utilize the skills that you have acquired throughout the Specialization.

Oct 26th 2026
4 Weeks
Problem Solving, Python Programming, and Video Games (Coursera) Coursera
University of Alberta

Problem Solving, Python Programming, and Video Games (Coursera)

This course is an introduction to computer science and programming in Python. Important computer science concepts such as problem solving (computational thinking), problem decomposition, algorithms, abstraction, and software quality are emphasized throughout. The Python programming language and video games are used to demonstrate computer science concepts in a concrete and fun manner. However, a learner can take the knowledge and skills from this course and apply them to non-game problems, other programming languages, and other computer science courses.

Oct 19th 2026
5-12 Weeks
Introduction to Programming with MATLAB (Coursera) Coursera
Vanderbilt University

Introduction to Programming with MATLAB (Coursera)

This course teaches computer programming to those with little to no previous experience. It uses the programming system and language called MATLAB to do so because it is easy to learn, versatile and very useful for engineers and other professionals. MATLAB is a special-purpose language that is an excellent choice for writing moderate-size programs that solve problems involving the manipulation of numbers.

Oct 12th 2026
5-12 Weeks