Basic Modeling for Discrete Optimization (Coursera)

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.

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

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.

Syllabus

WEEK 1
MiniZinc introduction
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 applications such as knapsack problems, graph coloring, production planning and tricky Cryptarithm puzzles, with great ease.

WEEK 2
Modeling with Sets
In this module, you will learn how to model problems involving set selection. In particular, you will see different ways of representing set variables when the variable has no constraints on its cardinality, has fixed cardinality and bounded cardinality. You also have to ensure all model decisions are valid decisions, and each valid decision corresponds to exactly one model decision.

WEEK 3
Modeling with Functions
In this module, you will learn how to model pure assignment problems and partition problems, which are functions in disguise. These problems find applications in rostering and constrained clustering. In terms of modeling techniques, you will see the power of common subexpression elimination and intermediate variables, and encounter the global cardinality constraint for the first time. MiniZinc also provides constraints for removing value symmetries.

WEEK 4
Multiple Modeling
In the final module of this course you will see how discrete optimization problems can often be seen from multiple viewpoints, and modeled completely differently from each viewpoint. Each viewpoint may have strengths and weaknesses, and indeed the different models can be combined to help each other.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to Vertex AI (Coursera) Coursera
Fractal Analytics

Introduction to Vertex AI (Coursera)

Welcome to "Introduction to Vertex AI"! In this concise yet impactful microlearning course spanning around 4 hours, we're diving into the world of Vertex AI to equip you with fundamental insights and practical skills. We'll unravel the essentials of Vertex AI, guiding you through the interface to empower you to navigate this powerful platform seamlessly. Get ready to grasp strategic insights that will enable you to effectively harness the capabilities of Vertex AI in your projects.

Oct 26th 2026
2 Weeks
Programming Mobile Applications for Android Handheld Systems: Part 1 (Coursera) Coursera
University of Maryland, College Park

Programming Mobile Applications for Android Handheld Systems: Part 1 (Coursera)

This course introduces you to the design and implementation of Android applications for mobile devices. You will develop an app from scratch, assuming a basic knowledge of Java, and learn how to set up Android Studio, work with various Activities and create simple user interfaces to make your apps run smoothly.

Oct 26th 2026
5-12 Weeks
Optimización de Redes Neuronales Profundas (Coursera) Coursera
Universidad Austral

Optimización de Redes Neuronales Profundas (Coursera)

Este curso se centrará en la optimización de Redes Neuronales Profundas, cambiando la idea de que todo el proceso es una “caja negra”. Comprenderá qué impulsa el rendimiento y podrá obtener mejores resultados de manera más sistemática. Entenderá cómo optimizar los principales Hiperparámetros y su implementación. Además, aprenderá nuevos conceptos útiles para el entrenamiento de las redes como los mini-batch y las regularizaciones. También, aprenderá a implementar una red neuronal utilizando TensorFlow

Oct 26th 2026
3 Weeks
Code Yourself! An Introduction to Programming (Coursera) Coursera
University of Edinburgh,Universidad ORT Uruguay

Code Yourself! An Introduction to Programming (Coursera)

Have you ever wished you knew how to program, but had no idea where to start from? This course will teach you how to program in Scratch, an easy to use visual programming language. More importantly, it will introduce you to the fundamental principles of computing and it will help you think like a software engineer.

Oct 26th 2026
5-12 Weeks
Learn TypeScript (Coursera) Coursera
Scrimba

Learn TypeScript (Coursera)

Are you a proficient developer in HTML, CSS, and JavaScript, looking to elevate your technical skillset? Have you observed an increasing demand for TypeScript in the professional job market and are keen to explore its significance? Are you in search of a programming language that offers ease in readability and debugging? If the answer to any of these questions is affirmative, then you have arrived at the optimal course to advance your career.

Oct 26th 2026
4 Weeks
Applied Calculus with Python (Coursera) Coursera
Johns Hopkins University

Applied Calculus with Python (Coursera)

This course is designed for the Python programmer who wants to develop the foundations of Calculus to help solve challenging problems as well as the student of mathematics looking to learn the theory and numerical techniques of applied calculus implemented in Python. By the end of this course, you will have learned how to apply essential calculus concepts to develop robust Python applications that solve a variety of real-world challenges.

Oct 26th 2026
5-12 Weeks
Reviews & Metrics for Software Improvements (Coursera) Coursera
University of Alberta

Reviews & Metrics for Software Improvements (Coursera)

This course covers techniques for monitoring your projects in order to align client needs, project plans, and software production. It focuses on metrics and reviews to track and improve project progress and software quality. What you will learn: apply techniques to measure and visualize project progress, integrate Agile review practices to increase project visibility; reflect on lessons learned in software projects through retrospective exercises; improve project and process quality through ongoing measurement

Oct 26th 2026
4 Weeks
Effective Inventory Management and Optimization (Coursera) Coursera
Starweaver

Effective Inventory Management and Optimization (Coursera)

In today's competitive business landscape, efficient inventory management is a critical factor for the success of any organization. Businesses face challenges in maintaining the right balance between having enough inventory to meet customer demands and avoiding excess stock that ties up capital and increases storage costs. This course, titled "Effective Inventory Management and Optimization," addresses a need for professionals to understand the intricacies of inventory control and optimization.

Oct 26th 2026
1 Week
Programming Mobile Applications for Android Handheld Systems: Part 2 (Coursera) Coursera
University of Maryland, College Park

Programming Mobile Applications for Android Handheld Systems: Part 2 (Coursera)

This course introduces you to the design and implementation of Android applications for mobile devices. You will build upon concepts from the prior course, including handling notifications, using multimedia and graphics and incorporating touch and gestures into your apps.

Oct 26th 2026
5-12 Weeks