À propos de ce cours
Tired of solving Sudokus by hand? This class teaches you how to solve complex search problems with discrete optimization concepts and algorithms, including constraint programming, local search, and mixed-integer programming. Optimization technology is ubiquitous in our society. It schedules planes and their crews, coordinates the production of steel, and organizes the transportation of iron ore from the mines to the ports. Optimization clears the day-ahead and real-time markets to deliver electricity to millions of people. It organizes kidney exchanges and cancer treatments and helps scientists understand the fundamental fabric of life, control complex chemical reactions, and design drugs that may benefit billions of individuals. This class is an introduction to discrete optimization and exposes students to some of the most fundamental concepts and algorithms in the field. It covers constraint programming, local search, and mixed-integer programming from their foundations to their applications for complex practical problems in areas such as scheduling, vehicle routing, supply-chain optimization, and resource allocation.
Globe

Cours en ligne à 100 %

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Intermediate Level

Niveau intermédiaire

Clock

Approx. 34 heures pour terminer

Recommandé : 8 weeks of study, 10-15 hours per week
Comment Dots

English

Sous-titres : English

Compétences que vous acquerrez

Python ProgrammingMathematical OptimizationOperations ResearchRouting
Globe

Cours en ligne à 100 %

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Intermediate Level

Niveau intermédiaire

Clock

Approx. 34 heures pour terminer

Recommandé : 8 weeks of study, 10-15 hours per week
Comment Dots

English

Sous-titres : English

Syllabus - What you will learn from this course

1

Section
Clock
2 hours to complete

Welcome

These lectures and readings give you an introduction to this course: its philosophy, organization, and load. They also tell you how the assignments are a significant part of the class. This week covers the common input/output organization of the assignments, how they are graded, and how to succeed in this class....
Reading
4 videos (Total 43 min), 3 readings, 1 quiz
Video4 videos
Course Motivation - Indiana Jones, challenges, applications20m
Course Introduction - philosophy, design, grading rubric11m
Assignments Introduction & Any Integer9m
Reading3 readings
Start of Course Survey10m
Socialize10m
Course Syllabus10m

2

Section
Clock
7 hours to complete

Knapsack

These lectures introduce optimization problems and some optimization techniques through the knapsack problem, one of the most well-known problem in the field. It discusses how to formalize and model optimization problems using knapsack as an example. It then reviews how to apply dynamic programming and branch and bound to the knapsack problem, providing intuition behind these two fundamental optimization techniques. The concept of relaxation and search are also discussed....
Reading
9 videos (Total 101 min), 1 quiz
Video9 videos
Knapsack 2 - greedy algorithms7m
Knapsack 3 - modeling8m
Knapsack 4 - dynamic programming17m
Knapsack 5 - relaxation, branch and bound14m
Knapsack 6 - search strategies, depth first, best first, least discrepancy14m
Assignments Getting Started13m
Knapsack & External Solver10m
Exploring the Material - open course design, optimization landscape, picking your adventure10m

3

Section
Clock
17 hours to complete

Constraint Programming

Constraint programming is an optimization technique that emerged from the field of artificial intelligence. It is characterized by two key ideas: To express the optimization problem at a high level to reveal its structure and to use constraints to reduce the search space by removing, from the variable domains, values that cannot appear in solutions. These lectures cover constraint programming in detail, describing the language of constraint programming, its underlying computational paradigm and how it can be applied in practice....
Reading
13 videos (Total 248 min), 1 reading, 2 quizzes
Video13 videos
CP 2 - propagation, arithmetic constraints, send+more=money26m
CP 3 - reification, element constraint, magic series, stable marriage16m
CP 4 - global constraint intuition, table constraint, sudoku19m
CP 5 - symmetry breaking, BIBD, scene allocation18m
CP 6 - redundant constraints, magic series, market split11m
CP 7 - car sequencing, dual modeling18m
CP 8 - global constraints in detail, knapsack, alldifferent33m
CP 9 - search, first-fail, euler knight, ESDD25m
CP 10 - value/variable labeling, domain splitting, symmetry breaking in search28m
Graph Coloring6m
Optimization Tools5m
Set Cover8m
Reading1 readings
Optimization Tools10m

4

Section
Clock
13 hours to complete

Local Search

Local search is probably the oldest and most intuitive optimization technique. It consists in starting from a solution and improving it by performing (typically) local perturbations (often called moves). Local search has evolved substantially in the last decades with a lot of attention being devoted on which moves to explore. These lectures explore the theory and practice of local search, from the concept of neighborhood and connectivity to meta-heuristics such as tabu search and simulated annealing....
Reading
10 videos (Total 191 min), 1 quiz
Video10 videos
LS 2 - swap neighborhood, car sequencing, magic square15m
LS 3 - optimization, warehouse location, traveling salesman, 2-opt, k-opt23m
LS 4 - optimality vs feasibility, graph coloring22m
LS 5 - complex neighborhoods, sports scheduling21m
LS 6 - escaping local minima, connectivity15m
LS 7 - formalization, heuristics, meta-heuristics introduction22m
LS 8 - iterated location search, metropolis heuristic, simulated annealing, tabu search intuition18m
LS 9 - tabu search formalized, aspiration, car sequencing, n-queens26m
Traveling Salesman10m

5

Section
Clock
2 hours to complete

Linear Programming

Linear programming has been, and remains, a workhorse of optimization. It consists in optimizing a linear objective subject to linear constraints, admits efficient algorithmic solutions, and is often an important building block for other optimization techniques. These lectures review fundamental concepts in linear programming, including the infamous simplex algorithm, simplex tableau, and duality. ....
Reading
6 videos (Total 130 min)
Video6 videos
LP 2 - algebraic view, naive algorithm13m
LP 3 - the simplex algorithm32m
LP 4 - matrix notation, the tableau20m
LP 5 - duality derivation22m
LP 6 - duality interpretation and uses17m

6

Section
Clock
12 hours to complete

Mixed Integer Programming

Mixed Integer Programming generalizes linear programming by allowing integer variables, which dramatically changes the complexity of the problems but also broadens the potential applications significantly. These lectures review how to model problems in mixed-integer programming and how to solve mixed-integer programs using branch and bound. Advanced techniques such as cutting planes and polyhedral cuts are also covered....
Reading
6 videos (Total 136 min), 1 quiz
Video6 videos
MIP 2 - modeling, big-M, warehouse location, graph coloring28m
MIP 3 - cutting planes, Gomory cuts20m
MIP 4 - convex hull, polyhedral cuts, warehouse location, node packing, graph coloring19m
MIP 5 - cover cuts, branch and cut, seven bridges, traveling salesman31m
Facility Location9m

7

Section
Clock
11 hours to complete

Advanced Topics: Part I

These lectures cover some more advanced concepts in optimization. They introduce constraint-programming techniques for scheduling and routing. ...
Reading
2 videos (Total 51 min), 1 quiz
Video2 videos
Vehicle Routing14m

8

Section
Clock
1 hour to complete

Advanced Topics: Part II

These lectures continues to cover some more advanced concepts in optimization. They introduce large neighborhood search, which often combines constraint programming and local search, and column generation which decomposes an optimization model into a master and pricing problem, using more complex variables....
Reading
2 videos (Total 32 min)
Video2 videos
Column Generation - branch and price, cutting stock23m
4.9
Direction Signs

33%

started a new career after completing these courses
Briefcase

83%

got a tangible career benefit from this course

Top Reviews

By PEJul 22nd 2017

Great course, the teacher is very clear and often goes into sufficient depth for the student to understand concepts.\n\nAssignments are challenging and help understanding course content.

By AMFeb 6th 2017

I like the instructor teaching approach and the evaluation system, the subject itself took me a lot of effort and i think the LNS technique should be teached just after local search.

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

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.

  • Good programming skills, knowledge of algorithms and linear algebra.

  • A minimal knowledge of python is necessary to integrate with the course infrastructure. Outside of that, students are free to use any language of their choice.

  • A motivated student spending the time on the programming assignment will succeed in this class.

  • At the discrete optimization store: http://www.zazzle.com.au/discreteoptimization

More questions? Visit the Learner Help Center