We may earn an affiliate commission when you visit our partners.
Take this course
Prof. Peter James Stuckey and Prof. Jimmy Ho Man Lee

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.

Read more

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

Enroll now

What's inside

Syllabus

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

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Develops modeling skills and mastery of state-of-the-art tools, which are core skills in discrete optimization
Taught by recognized leaders in discrete optimization, who bring expertise from academia and industry
Provides debugging and model improvement tools, which are key to developing expert-quality models
Covers advanced scheduling and packing problems, which are highly relevant in industries like manufacturing and logistics
Introduces symmetry and dominance breaking techniques, which are advanced concepts that can significantly improve solving efficiency
Requires prerequisite knowledge in Basic Modeling for Discrete Optimization, limiting accessibility for beginners

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Advanced modeling for discrete optimization

According to learners, this course is a strong continuation of the introductory material, offering excellent coverage of advanced topics such as scheduling, packing, and symmetry breaking. Students report gaining practical modeling skills using MiniZinc, often finding the instructor's explanations clear and helpful for tackling complex concepts. While widely seen as challenging but rewarding, a common point is the significant difficulty and time investment required for the assignments. Learners frequently emphasize the necessity of having strong prerequisite knowledge from the basic course and a solid mathematical background. Some found certain theoretical aspects abstract, requiring extra study. The course maintains a fast pace and focuses heavily on modeling.
Concepts explained well by instructor.
"The instructor does a great job explaining difficult concepts, making them accessible despite their complexity."
"Found the lectures clear and easy to follow, especially for the more abstract ideas."
"Explanations were precise and helpful, providing necessary intuition."
"The instructor's approach to explaining the material is very effective."
Teaches practical skills using MiniZinc.
"I gained practical skills in modeling complex problems using MiniZinc that I can use professionally."
"The assignments force you to apply the concepts learned, which is the best way to solidify understanding."
"This course enabled me to model and solve optimization problems that were previously intractable for me."
"Learning MiniZinc through practical exercises was very effective."
Comprehensive coverage of advanced areas.
"The course covers advanced topics like scheduling and packing in depth, which are very relevant."
"Symmetry breaking was explained very well and is a crucial part of advanced modeling."
"Loved the modules on scheduling and packing, they gave me practical tools for real problems."
"Excellent coverage of topics that are hard to find material on elsewhere."
Some topics are hard to grasp initially.
"Some of the theoretical concepts, like symmetry breaking, were quite abstract and took multiple watches to understand."
"Found certain parts of the lectures conceptually challenging and needed to consult external resources."
"Understanding the underlying theory behind some techniques was the hardest part for me."
"Be prepared for some abstract ideas that require focused effort to grasp."
Requires solid foundational knowledge.
"Definitely need to have a solid grasp of the basic course material before starting this; it builds directly on it."
"This course assumes a strong foundation in discrete math and modeling. Not for the unprepared."
"Make sure you are comfortable with the concepts from the first course, otherwise this one will be overwhelming."
"Requires more than just completing the basic course; you need to have *mastered* the concepts."
Assignments are difficult & time-consuming.
"Be prepared for very difficult and time-consuming assignments. They are the core but require significant effort."
"The assignments are a real challenge, sometimes frustrating, but ultimately rewarding."
"Struggled a lot with the homework problems; they required me to think deeply and explore documentation."
"Allocate ample time for the assignments; they are not trivial."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Advanced Modeling for Discrete Optimization with these activities:
Review Basic Modelling for Discrete Optimization
Prepare for this course by reviewing the fundamental concepts of discrete optimization modelling covered in the prerequisite course.
Browse courses on Discrete Optimization
Show steps
  • Review the course syllabus and materials.
  • Complete any recommended readings or assignments.
  • Attend any optional review sessions or workshops.
Solve Discrete Optimization Practice Problems
Strengthen your problem-solving skills by attempting practice problems related to discrete optimization.
Browse courses on Optimization
Show steps
  • Find practice problems online or in textbooks.
  • Attempt to solve the problems independently.
  • Check your solutions against provided answers or consult with peers.
Participate in Peer Review and Feedback Sessions
Enhance your learning by collaborating with peers through review and feedback sessions.
Browse courses on Optimization
Show steps
  • Find a group of peers to work with.
  • Share your models or projects with the group.
  • Provide feedback on your peers' work.
  • Incorporate feedback into your own work.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Explore Advanced Constraint Programming Techniques
Supplement your understanding of constraint programming by exploring advanced techniques through tutorials and online resources.
Browse courses on Constraint Programming
Show steps
  • Search for tutorials on constraint programming libraries.
  • Follow the tutorials to learn about advanced techniques.
  • Implement the techniques in your own projects or practice problems.
Mentor Junior Students or Colleagues
Solidify your understanding by sharing your knowledge and helping others learn about optimization.
Browse courses on Optimization
Show steps
  • Identify junior students or colleagues who could benefit from your guidance.
  • Offer your support and provide mentorship on topics related to optimization.
  • Answer questions, provide feedback, and encourage their learning.
Develop a Model Using a State-of-the-Art High Level Modeling Language
Apply your knowledge by creating a complex model using a state-of-the-art high level modeling language.
Browse courses on Constraint Programming
Show steps
  • Identify a real-world problem that can be modelled using constraint programming.
  • Choose a suitable modeling language and learn its syntax.
  • Develop the model and implement it using the chosen language.
  • Test and validate your model.
Tackle a Real-World Optimization Project
Reinforce your learning by applying your skills to solve a real-world optimization problem.
Browse courses on Optimization
Show steps
  • Identify a suitable project that aligns with your interests and career goals.
  • Gather the necessary data and resources.
  • Develop a plan and timeline for the project.
  • Implement your solution and evaluate its effectiveness.
  • Present your findings and document your project.

Career center

Learners who complete Advanced Modeling for Discrete Optimization will develop knowledge and skills that may be useful to these careers:
Operations Research Analyst
Operations Research Analysts use advanced analytical techniques to improve the efficiency of organizations. They may work in a variety of industries, including manufacturing, healthcare, and finance. This course may be useful for Operations Research Analysts as it provides a solid foundation in discrete optimization techniques that can be used to solve complex scheduling and packing problems.
Management Consultant
Management Consultants help organizations improve their performance by providing advice on strategy, operations, and technology. This course may be useful for Management Consultants as it provides skills in modeling and solving complex problems that can be applied to a variety of business scenarios.
Data Scientist
Data Scientists use data to solve business problems. They may work in a variety of industries, including retail, finance, and healthcare. This course may be useful for Data Scientists as it provides a foundation in optimization techniques that can be used to solve data-driven problems.
Software Engineer
Software Engineers design, develop, and maintain software applications. This course may be useful for Software Engineers as it provides a foundation in optimization techniques that can be used to improve the performance of software applications.
Industrial Engineer
Industrial Engineers design, improve, and install integrated systems for managing industrial production and operations. This course may be useful for Industrial Engineers as it provides a foundation in optimization techniques that can be used to improve the efficiency of industrial processes.
Financial Analyst
Financial Analysts provide advice on investment decisions. This course may be useful for Financial Analysts as it provides a foundation in optimization techniques that can be used to solve portfolio optimization problems.
Actuary
Actuaries use mathematical and statistical techniques to assess risk and uncertainty. This course may be useful for Actuaries as it provides a foundation in optimization techniques that can be used to solve risk management problems.
Statistician
Statisticians collect, analyze, interpret, and present data. This course may be useful for Statisticians as it provides a foundation in optimization techniques that can be used to solve data analysis problems.
Operations Manager
Operations Managers plan and direct the operations of an organization. This course may be useful for Operations Managers as it provides a foundation in optimization techniques that can be used to improve the efficiency of operations.
Project Manager
Project Managers plan, execute, and close projects. This course may be useful for Project Managers as it provides a foundation in optimization techniques that can be used to improve the efficiency of project management.
Business Analyst
Business Analysts identify and solve business problems. This course may be useful for Business Analysts as it provides a foundation in optimization techniques that can be used to solve complex business problems.
Systems Analyst
Systems Analysts design and implement computer systems. This course may be useful for Systems Analysts as it provides a foundation in optimization techniques that can be used to improve the performance of computer systems.
Computer Programmer
Computer Programmers write and maintain computer code. This course may be useful for Computer Programmers as it provides a foundation in optimization techniques that can be used to improve the efficiency of computer code.
Database Administrator
Database Administrators design and maintain databases. This course may be useful for Database Administrators as it provides a foundation in optimization techniques that can be used to improve the performance of databases.
Network Administrator
Network Administrators design and maintain computer networks. This course may be useful for Network Administrators as it provides a foundation in optimization techniques that can be used to improve the performance of computer networks.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Advanced Modeling for Discrete Optimization.
Provides a comprehensive overview of constraint programming, including the underlying theory, algorithms, and applications in various domains. It can serve as a valuable reference for readers looking to gain a deeper understanding of the concepts covered in the course.
Provides a coherent and unified treatment of combinatorial optimization, with a focus on the underlying theory.
Provides a comprehensive overview of the traveling salesman problem, including its history, theory, and applications.
Suitable as a textbook for a graduate or advanced undergraduate course in integer programming, it provides an entrance to the field for beginning researchers and a handy reference for professionals.
Explores constraint processing techniques, covering topics such as constraint propagation, search algorithms, and applications in various domains. It provides a solid foundation for understanding the principles and applications of constraint processing.
Provides a comprehensive overview of packing and covering problems, with a focus on the underlying theory and algorithmic techniques.
Provides a comprehensive introduction to scheduling, covering various aspects such as problem modeling, algorithms, and complexity analysis. It can serve as a useful reference for readers seeking a broad overview of scheduling concepts.
Provides a comprehensive treatment of computational geometry, covering topics such as convexity, triangulation, and geometric algorithms. It can serve as a foundational reference for readers interested in the geometrical aspects discussed in the course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser