Basic Modeling for Discrete Optimization

Basic Modeling for Discrete Optimization

Basic Modeling for Discrete Optimization

The University of Melbourne, The Chinese University of Hong Kong

About this course: 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: https://www.youtube.com/watch?v=hc3cBvtrem0&t=8s

Who is this class for: The course is for penultimate/final year undergraduates and graduates in computing and related disciplines. You will need to have basic computer programming skills, and knowledge of fundamental algorithms, discrete mathematics, logic and linear algebra in order to take this course. Please note that this course is also available wholly in Chinese, see: https://www.coursera.org/learn/lisan-youhua-jianmo-jichupian

Created by:The University of Melbourne, The Chinese University of Hong Kong

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.

20 videos, 6 readings

Video: Welcome to Basic Modeling for Discrete Optimization

Reading: Course Overview

Reading: Start of Course Survey

Video: 1.1.1 First Steps

Video: 1.1.2 Second Model

Video: 1.1.3 Third Model

Video: 1.1.4 Models and Instances

Video: 1.1.5 Modeling Objects

Video: 1.1.6 Arrays and Comprehensions

Video: 1.1.7 Global Constraints

Video: 1.1.8 Module 1 Summary

Reading: Getting MiniZinc

Reading: Workshop 0: First Steps

Video: Workshop 0 Solution

Reading: Workshop 1: Temperature

Video: Workshop 1 Solution

Video: Assignment Submission - IDE

Video: Assignment Submission - CLI

Reading: About the Reference Material

Video: Reference 1: Basic Features

Video: Reference 2: Booleans Expressions

Video: Reference 3: Sets, Arrays, Comprehensions

Video: Reference 4: Enumerated Types

Video: Reference 5: Strings and Output

Video: Reference 6: Option Types

Video: Reference 7: Command Line Interface

Graded: Cryptarithms for Seven Paces Verse

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.

6 videos, 1 reading

Video: 1.2.1 Selecting a Set

Video: 1.2.2 Choosing a Set Representation

Video: 1.2.3 Choosing a Fixed Cardinality Set

Video: 1.2.4 Sets with Bounded Cardinality

Video: 1.2.5 Module 2 Summary

Reading: Workshop 2: Surrender Negotiations

Video: Workshop 2 Solution

Graded: Raid Planning

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.

7 videos, 1 reading

Video: 1.3.1 Modeling Functions

Video: 1.3.2 Another Assignment Problem Example

Video: 1.3.3 Modeling Partitions

Video: 1.3.4 Global Cardinality Constraint

Video: 1.3.5 Pure Partitioning

Video: 1.3.6 Module 3 Summary

Reading: Workshop 3: Feast Trap

Video: Workshop 3 Solution

Graded: Dance Trap

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.

6 videos, 2 readings

Video: 1.4.1 Multiple Modeling

Video: 1.4.2 Permutation

Video: 1.4.3 More Permutation Problem

Video: 1.4.4 More Multiple Models

Video: 1.4.5 Module 4 Summary

Reading: Workshop 4: Composition

Video: Workshop 4 Solution

Reading: End of Course Survey

Graded: Royal Hunt

FAQs

How It Works

Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material,
and get help mastering concepts.

Certificates

Earn official recognition for your work, and share your success with friends,
colleagues, and employers.

Creators

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.

The Chinese University of Hong Kong

Founded in 1963, The Chinese University of Hong Kong (CUHK) is a forward looking comprehensive research university with a global vision and a mission to combine tradition with modernity, and to bring together China and the West. CUHK teachers and students hail from all corners of the world. CUHK graduates are connected worldwide through an expansive alumni network.

Ratings and Reviews

Rated 4.8 out of 5 of 52 ratings

A very good course. Thank you to the teachers and Staff in general.

GL

Really interesting course with challenging assignment!

cc

Nothing but great!

Very interesting and neatly prepared course. It was very easy to dive in the course and to stay motivated. I would highly recommend their course for its amazing quality.