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

May 30, 2019

Exceptional coverage of optimization fundamentals. Learning of practical applied methods. Real university level course, no water down "data science". Absolutely love it! Thank you professor Pascal.

May 02, 2019

I just completed the course. This an amazing course with an Outstanding professor and highly interesting, although difficult, assignments. Thanks for this! I am proud to have finished

篩選依據：

創建者 Amin F

•Sep 10, 2017

This is a fun and challenging course! Without doubt the most challenging courses I've ever done in coursera!

I have a few suggestions for anyone who is considering to start this course:

1- You have to be a skillful programmer, be comfortable with algorithm design, tree and graphs structures and recursion. Also a general knowledge of models are useful.

2- You have to have enough patience to watch loooooooong videos (but the professor teaches in a pretty awesome and in times, hilarious ways!)

3- You really need to spend +15 hours per week on this course, not only the videos for each week is long but also each programming assignment will take tremendous amount of your time!

4- And finally you should be tough and not give up and sometimes have the courage to write your code again from scratch after failure!

創建者 Melissa J

•Nov 03, 2018

Very difficult. Harder than pretty much all of the courses I've taken in college, more or less, based on how much material is covered and the amount of research you have to do on top of the lectures in order to just get a passing grade on the assignments. Definitely a grad level course, probably harder than most grad level courses I've taken in college just for the amount of effort needed to get a perfect score on all assignments (unfortunately it depends on how good of a computer you have to run your solutions). The challenge just makes it even more fun. Lectures barely covers anything needed to do the assignments, which just gives you a surface level introduction to the concepts needed to solve the problems. The discussion forum is crucial to getting good guidance on how to solve the problems. Pretty much all of the assignments involved doing your own research and reading a bunch of problem-related research papers to figure out what you want to use for your own implementations. I had a blast learning, and thank you so much for offering this course on coursera.

創建者 Zhu L

•Jul 04, 2017

I guess this could be the most challenging course I've had on Coursera.

1, almost all assignments are NP-hard combinatorial optimization problems.

2, data scale can be huge, assessment criteria can be strict.

3. choosing between CP, MIP solver and all kinds of stochastic and meta-heuristic algorithms is fun, gives you the chance to learn both with hands-on experience.

4. even discouraged from doing so, you'll still read a lot of research papers, about 20+ for me.

5. several thousands of SLOC to be expected, if you're honest with yourself.

6. even if you're looking to cheat your way through, you still need solid programming ability and understanding of the problem to do it, so don't bother, why ruin all the fun?

7. the facility location problem drove me nuts.

8. randomization is Pandora's box.

創建者 Philippe C

•Jul 19, 2018

Great course, very challenging as problems are NP-hard and hence force you to find the right approaches for various problem set sizes. After a while, you get hooked and tried to find better and better solutions, reviewing videos for overlooked information, looking at research papers and available resources on the net. Programming times are only a minimum and I spent much more time than indicated.

創建者 Greg K

•Dec 23, 2018

The most challenging course that I've ever enrolled in. The instruction videos are just a 30% of what it takes to get perfect score on the assignments. Its the only course that I feel it was totally worth the time trying to complete it at 100%. Amazing instructor, and I'm totally gonna keep and revisit all of the course videos.

創建者 Max B

•Jan 24, 2017

This course is absoutely excellent. It has really time consuming and challenging programming assignments, but I learned more than I have in a long while. I could not recommend this course more highly, and I have completed 20+ MOOCs. This is one of the best ones by far. :D

創建者 Slav K

•May 30, 2019

Exceptional coverage of optimization fundamentals. Learning of practical applied methods. Real university level course, no water down "data science". Absolutely love it! Thank you professor Pascal.

創建者 Paweł W

•Sep 01, 2018

Most difficult on-line course I've ever had. Demanding and engaging at the same time. Good luck to people without IT background :D.

創建者 Tommi J

•Mar 26, 2020

One of the best courses I've ever taken, including all my main studies in three different universities. Don't expect to breeze through this course with some easy multiple choice questionnaires - the professor is not kidding in the beginning when he says the course is hard. It actually took me 3 years of on-and-off, admittedly sporadic efforts to get through the course with more than a few times when I questioned whether I would ever finish it. What kept me coming back every time though was knowing that this is a course where your efforts pay off highly in learning - coding the algorithms yourself is obviously more demanding then getting handed something already working, but at the same time this is simply the best way to learn. Pedagogically everything is set up ideally for the motivated learner - the lectures are inspiring (even entertaining!) and focus on the key ideas behind the methods rather than obscure equations. After getting through the lectures of a section and getting the programming assignment in front of you (which are superbly designed with the online grading system working flawlessly), you should have conceptually a solid basis for starting to start writing your optimisation algorithm (actually, in many cases you would have several algorithm classes to choose from and in the end especially towards the last few assignments I had to implement several different algorithms for the different individual problems of the assignment to get a passing score). The learning curve is perfectly set up with each successive assignment being a bit harder than the one before it (and also a bit more rewarding once you finally manage to get through it). Finally, it's certainly worth it to read through the informative discussion forums to get new ideas when you get stuck in an assignment. The bottom line is that if you are interested in learning about discrete optimisation and are motivated enough to spend the fairly significant amount of time and effort required, then you simply couldn't ask for a better course than this - thanks so much to the course staff for making this amazing course available on Coursera!

創建者 Ioan A C

•Nov 24, 2016

While doing Tim Roughgarden's Algorithms course (https://www.coursera.org/specializations/algorithms) I became interested about the topic of solving NP-hard problems and wanted more. That's how I bumped into this course. I'm VERY happy I did. I never had so much fun programming since I was in high school. The assignments are tough and time consuming and super addictive. Don't be surprised if you find yourself at 5:00 AM trying to squeeze a slightly better solution then what you currently have.

The course covers a lot of material: constraint programming, local search heuristics and meta-heuristics, linear and mixed integer programming. I think each of these topics could be extended and made into separate course. If you want to get a thorough understanding of all of the presented topics, you're gonna have to go through the additional materials. However, prof. Pascal Van Hentenryck is an excellent teacher so even though you don't have a thorough understanding of everything, things are gonna make sense and feel very natural and intuitive. Dr. Carleton Coffrin is also very active on the forums, constantly answering questions or encouraging interesting conversations. I've never seen a MOOC which such actively involved staff.

Bottom line, if you have10+ hours/week and you like CS, definitely take this one.

創建者 Akash S

•Jul 02, 2019

I am sure this is the best course out there to help students/Professionals to understand the complexity of the optimization problems specially designed and explained by Professor Pascal Van Hentenryck in his own hilarious style . The assignments are really challenging and make you up to try different strategies. Most of the times the classical approaches like Mixed Integer programming and Constraint Programming fail to provide solution in a reasonable time.But that's when you become of intuitive developing your own ideas/ heuristics.This course covers a lot of optimization concepts like dynamic programming, Constraint Programming ,Mixed Integer programming and Local search.

Waiting for the next one!.. Till then keep optimizing ....

創建者 Christoph L

•Mar 29, 2020

Great course - with very nice instructor. Assignments are very challenging at times and one should not take the course if one is not rather confident in one's programming abilities (preferably python). You will likely have to program a lot and write your own codes from scratch. I did the course with Matlab but figuring out how to upload the results into python was initially a pain. If you enjoy programming, have sufficient time per week to do the course (at least 5-10 hours - no re-scheduling of overall course deadline!) and want to learn about discrete optimization - then this course is clearly for you!

創建者 Aditya U S

•Mar 31, 2019

Truly challenging course. Had enrolled out of curiosity. Before starting had only basic knowledge on combinatorial optimization. The course content is good and the course theme is basically exploratory. Really a dense course if determined to study in depth.The instructor is brilliant and his teaching style keeps you motivated all the time. The assignments are good and requires you to think thoroughly about the problem. Getting a higher grade is obviously challenging if you are a newbie to this topic, although scoring a decent grade is definitely possible. Overall loved the experience.

創建者 Manuel A

•Sep 08, 2019

A very comprehensive and challening course on optimization. Algorithms are explained at a high level and is up to the student to implement them (on any language, but Python is sugested). Canonical problems in optimization are tackled, such as TSP, VRP and facility location. As a Data Scientist with no Computer Science background, implementing those algorithms to pass assignmets have been very challenging. Industrial solvers like ortools, gurobi, etc. can be used, but they are not covered.

創建者 Marcin W

•Dec 23, 2016

One of the best and most interesting courses I have taken a part in. Very demanding and frustrating sometimes but absolutely brilliant. Interesting lectures, problems to solve, etc. Small improvement in my opinion can be achieved in two areas:

1. I could not get used to instructor's showmanship and he sometimes covers up the slides.

2. I would suggest changing submission format not to post code but solution. In this case we would not be limited in programming language's choice.

創建者 Li H

•Jan 06, 2018

The programming assignments of this course are very challenge and the pursuit of the 'Good Optimization' is torturous, especially after Knapsack Problem, such as the TSP, Facility Problem and VRP. However, the sense of achievement gained when you passed the online judge is also unspeakable. Last but not least, Professor Pascal Van Hentenryck is really a nice man, he is humorous and charming. Wish you a memorable and nice experiences on the on the journey of OPTIMIZATION.

創建者 Øystein S

•Jun 27, 2018

Good course. The instructor is really a fast talker and it may be hard to grasp everything at the first time you watch the videos. About the assignments: The assignments are really hard. Yes! Really really hard. I've never taken any MOOC course where the assignments are so hard. Al in all, I can say that this course really thought me something about discrete optimization, and I would love to learn even more about this interesting field.

創建者 Anders A

•Sep 19, 2018

This is my fifth or sixt online course on coursera, and it is without a doubt the best one I have done. Apart from the little goofy start with Indiana Jones, I simple loved the course. There was a lot of useful material covering what would have been several courses at my university. The assignments were challenging, sometimes frustrating, but really fun as well. I had a lot of fun doing this course.

創建者 Shihan, Z

•Jul 05, 2019

I appreciate the enthusiasm from the professor's teaching. Also the quality of the homework is very high, which help me deeply understand the concept about optimization methods. I highly recommend this course to all the people who desire the basic knowledge about NP-hard problem, and optimization thought.

創建者 Edmund L

•Sep 28, 2019

Difficult course, but rewarding once you have completed the assignments. This course presents a variety of discrete optimization problems to be solved. Great course overall, although I wish the course is structured such that we don't need to read research papers to complete the assignments.

創建者 Aliaksei K

•Jul 16, 2017

One of the most challenging and interesting sources among all that I've passed so far. The lector has it's own hilarious style of teaching. All the material is carefully created and well structured. Every time that you pass the programming assignment, you feel that it's a real achievement.

創建者 Andrew K

•Oct 30, 2019

Best course I have done so far on Coursera. The assignments are the best part of the course and are very challenging but ensure that you learn and understand the material. You will want to have some programming experience as you will need to code optimization algorithms from scratch.

創建者 Leo

•Jan 22, 2020

I was surprised how clear are the Lectures. It's such fun taking this course. We use the techniques (Dynamic Progrmaming, Local Search, etc) to solve those NP-complete problems. Highly recommond it to anyone who wants to refresh their optimization skills.

創建者 Chitrang S

•Mar 31, 2019

Excellent Course, I would highly recommend for all algorithmist and programmers. It step by steps teaches how to approach NP-hard problems. The way the professor teaches make this highly difficult subject easy. Of-course assignments are very challenging.

創建者 hope

•Aug 26, 2019

The best course on Coursera. Unlike the do-it-by-rote Deep Learning classes, there is much creativity and freedom in tackling all assignments. The assignments are stimulating, challenging, and approximate real life problem solving very well.