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 who have completed Basic Modelling for Discrete Optimization. In this course you will learn much more about solving challenging discrete optimization 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 course will focus on debugging and improving models, encapsulating parts of models in predicates, and tackling advanced scheduling and packing problems. As you master this advanced technology, you will be able to tackle problems that were inconceivable to solve previously. Watch the course promotional video here: https://www.youtube.com/watch?v=hc3cBvtrem0&t=8s
Globe

100% online course

Start instantly and learn at your own schedule.
Intermediate Level

Intermediate Level

Clock

Approx. 22 hours to complete

Suggested: 5 weeks of study, 6-12 hours/week
Comment Dots

English

Subtitles: English
Globe

100% online course

Start instantly and learn at your own schedule.
Intermediate Level

Intermediate Level

Clock

Approx. 22 hours to complete

Suggested: 5 weeks of study, 6-12 hours/week
Comment Dots

English

Subtitles: English

Syllabus - What you will learn from this course

1

Section
Clock
12 hours to complete

Debugging and Improving Models

Similar to computer programs, models can have bugs. In this module, you will see the symptoms (unsatisfiability, too many solutions, too few solutions) of different bugs, and learn methods to discover what is going wrong with your model and how to fix it. Equipped with these tools, you will be able to develop and debug complex models....
Reading
22 videos (Total 266 min), 5 readings, 1 quiz
Video22 videos
2.1.1 Model Debugging7m
2.1.2 Tracing Models12m
2.1.3 Relational Semantics11m
2.1.4 Too Many Solutions8m
2.1.5 Missing Solutions17m
2.1.6 Basic Model Improvement19m
2.1.7 Module 1 Summary4m
Workshop 5 Solution23m
Assignment Submission - IDE7m
Assignment Submission - CLI4m
Reference 1: Basic Features13m
Reference 2: Booleans Expressions13m
Reference 3: Sets, Arrays and Comprehensions19m
Reference 4: Enumerated Types7m
Reference 5: Strings and Output8m
Reference 6: Option Types12m
Reference 7: Predicates8m
Reference 8: Flattening29m
Reference 9: Transforming Data15m
Reference 10: User Defined Functions10m
Reference 11: Command Line Interface8m
Reading5 readings
Course Overview10m
Start of Course Survey10m
Getting MiniZinc10m
Workshop 5: Poetry Challenge30m
About the Reference Material2m

2

Section
Clock
10 hours to complete

Predicates

In this module, 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 with improved readability in a modular manner. You will also encounter for the first time a problem with multiple objectives and learn how to compress them into one single objective. In addition to this, you will learn how to model the banquet seating problem, which will assist you in many occasions in life....
Reading
6 videos (Total 92 min), 1 reading, 1 quiz
Video6 videos
2.2.2 The let-in Construct17m
2.2.3 Using Predicates16m
2.2.4 Contexts22m
2.2.5 Module 2 Summary3m
Workshop 6 Solution24m
Reading1 readings
Workshop 6: Weighing an Elephant: Part 115m

3

Section
Clock
10 hours to complete

Scheduling

Learn how to tackle complex project scheduling problems of various forms, progressively from ones with only basic precedence requirements to ones with unary resources and even cumulative resources. You will see how to model some of the complex constraints that arise in these applications....
Reading
7 videos (Total 70 min), 1 reading, 1 quiz
Video7 videos
2.3.2 Disjunctive Scheduling10m
2.3.3 Cumulative Scheduling15m
2.3.4 Sequence Dependent Scheduling 112m
2.3.5 Sequence Dependent Scheduling 25m
2.3.6 Module 3 Summary3m
Workshop 7 Solution12m
Reading1 readings
Workshop 7: Visiting Zhuge Liang20m

4

Section
Clock
1 hour to complete

Packing

In this module, you will learn the important application of packing, from the packing of squares to rectilinear shapes with and without rotation. Again, you will see how to model some of the complex constraints that arise in these applications. ...
Reading
3 videos (Total 43 min)
Video3 videos
2.4.2 Rectilinear Packing without Rotation11m
2.4.3 Rectilinear Packing with Rotation15m

5

Section
Clock
15 hours to complete

Symmetry and Dominance

This final module looks at the various forms of symmetries that can appear in discrete optimization problems. You will learn various methods and special constraints to break such symmetries so as to increase solving efficiency. You will also learn the notion of dominance, which is a generalization of symmetries, and also dominance breaking techniques....
Reading
6 videos (Total 77 min), 3 readings, 1 quiz
Video6 videos
2.5.2 Matrix Model Symmetries11m
2.5.3 Value Symmetries13m
2.5.4 Dominance10m
2.5.5 Module 4 & 5 Summary5m
Workshop 8 Solution21m
Reading3 readings
Where to from here?10m
Workshop 8: The Dieda Plasters0m
End of Course Survey10m
5.0

Top Reviews

By OBMar 15th 2017

Excellent course with very supportive staff and professors on the forum. On top of that aligning the assignments to "The Romance of Three Kingdoms" story makes it fun to follow along.

By PCFeb 18th 2018

Great course! I particularly appreciated the assignment and the staging which lets you build the final solution in a progressive manner. Looking for course 3 now...

About 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....

About 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....

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • If you pay for this course, you will have access to all of the features and content you need to earn a Course Certificate. If you complete the course successfully, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. Note that the Course Certificate does not represent official academic credit from the partner institution offering the course.

  • Yes! Coursera provides financial aid to learners who would like to complete a course but cannot afford the course fee. To apply for aid, select "Learn more and apply" in the Financial Aid section below the "Enroll" button. You'll be prompted to complete a simple application; no other paperwork is required.

More questions? Visit the Learner Help Center