We may earn an affiliate commission when you visit our partners.
Course image
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
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.
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.
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.
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.

Good to know

Know what's good
, what to watch for
, 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

Save Advanced Modeling for Discrete Optimization to your list so you can find it easily later:
Save

Reviews summary

Engaging and challenging discrete optimization course

Learners say this engaging course on discrete optimization is well-received and highly-rated with challenging assignments. The course leverages an entertaining fable concept in its videos and is led by knowledgeable instructors.
The course is well-received by learners.
"Exceptional!"
"Excellent course overall"
The course material and assignments are challenging and rewarding.
"Great content and challenging assignments"
"Challenging assignments as difficult as the assignments from the first course."
The course uses an entertaining fable concept in its videos.
"The fable used make the videos very engaging."
The course instructors are knowledgeable and supportive.
The software development environment could benefit from improvements.
"an environment that is still developing and needs further refinment."

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

Here are nine courses similar to Advanced Modeling for Discrete Optimization.
Solving Algorithms for Discrete Optimization
Most relevant
Basic Modeling for Discrete Optimization
Most relevant
Discrete Optimization
Most relevant
Mathematical Optimization for Engineers
Most relevant
Algorithmic Solutions: Design, Problem Solving, Reporting
Most relevant
Optimization: principles and algorithms - Network and...
Most relevant
Optimization with Python: Solve Operations Research...
Most relevant
Constraint Programming
Understanding and Applying Numerical Optimization...
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 - 2024 OpenCourser