Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Prof. Jimmy Ho Man Lee and Prof. Peter James Stuckey

优化是决策的一般形式,在我们的社会中很常见。它的应用包括从求解数独谜题到婚礼上的座次安排。同样的技术可以调度航班和机组成员,协调钢铁生产,组织铁矿从矿井到港口的运输。人力资源和材料管理上好的决策可以令企业提升上百万的盈利。同样的问题很多也在我们日常生活出现,成为决定每天送货路线,决定学校时间表,传输电力到家里等种种问题的一部分。除了它们的重要性,这些问题如果用传统的本科计算机科学方法难以求解。

这门课程为已经完成离散优化高阶篇的同学设计。

请看这门课程的宣传视频:http://www.cpr.cuhk.edu.hk/cutv/detail/988

Enroll now

What's inside

Syllabus

基础约束编程
这个模块开始时用例子说明约束编程求解器的基础技术,也就是约束传播和搜索。值域代表了变量可能的取值,而约束可用于在值域上进行推理。约束本身可以以值域传播器和边界传播器的形式表示。你将会学习到一个传播引擎如何处理一组传播器,并通过变量值域协调沟通约束传播得到的信息。你也将会学到基础搜索,变量,数值选择等概念,还有传播和搜索是如何紧密而高效地连接起来的。最后,这个模块介绍了如何在Minizinc中进行编程化搜索。
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Develops core skills for decision making via problem solving
Emphasizes employability in various sectors
Primarily designed for participants with some experience in optimization
Taught by renowned experts in the field
Covers diverse optimization techniques suitable for complex problems
Includes interactive elements and case studies for practical understanding

Save this course

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

Reviews summary

深入浅出离散优化核心算法

根据学生们的说法,这门《离散优化算法篇》课程涵盖了离散优化的三个核心算法领域约束编程、混合整数线性规划和局部搜索。许多学习者认为课程结构清晰,讲解透彻,尤其是通过丰富的实例帮助理解抽象概念。实践作业被认为是非常重要有助巩固知识的部分,尽管难度不低,需要投入时间。有评论提到课程需要一定的数学和编程基础,最好已完成前置课程,否则可能会觉得学习曲线陡峭。总体而言,课程内容扎实,对于希望系统学习离散优化算法并应用于实践的学生和专业人士来说,是非常有价值的学习资源
课程有难度,建议有前置知识再学。
"如果你没有离散数学、线性代数和编程基础,学起来会比较吃力。"
"正如课程简介所说,最好先完成高阶篇课程,否则很多地方会跟不上。"
"这门课的难度不低,需要投入大量时间和精力来理解和练习。"
算法理论与实际应用相结合。
"课程不仅讲理论,还通过实际问题展示如何应用这些算法。"
"学习到的算法在解决实际优化问题时非常有用。"
"很高兴看到课程不仅限于理论推导,还介绍了实际求解器和工具。"
作业难度适中偏高,但非常有益于学习。
"作业设计得很好,不是简单的练习,需要自己动手实践解决问题。"
"虽然有些作业花了很长时间,但完成后感觉对知识的掌握提升了一大截。"
"我从作业中学到的东西不亚于视频讲解,理论结合实践很重要。"
抽象概念通过实例讲解变得更容易理解。
"老师讲课很清晰,能把复杂的算法概念用例子讲明白。"
"我喜欢课程中用MiniZinc等工具进行演示,帮助理解算法如何工作。"
"视频讲解质量很高,逻辑性强,跟着老师思路走能学到很多。"
涵盖离散优化三大核心算法,内容扎实。
"课程内容非常丰富,涵盖了CP, MIP, Local Search,理论和实践结合得很好。"
"这门课让我对离散优化的主要方法有了系统性的认识。"
"课程的结构设计合理,从基础到进阶,逐步深入。"

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 离散优化算法篇 Solving Algorithms for Discrete Optimization with these activities:
Review linear algebra
Revisit the basics of linear algebra to strengthen your foundation for understanding optimization concepts.
Browse courses on Linear Algebra
Show steps
  • Review the fundamental concepts of vector spaces, matrices, and linear transformations.
  • Practice solving systems of linear equations and finding eigenvalues and eigenvectors.
Review probability and statistics
Strengthen your foundation in probability and statistics to enhance your understanding of optimization techniques that involve probabilistic modeling and statistical analysis.
Browse courses on Probability
Show steps
  • Review the concepts of probability, random variables, and distributions.
  • Practice solving problems involving statistical inference and hypothesis testing.
Connect with experts in optimization
Seek guidance and insights from experienced professionals in the field of optimization to supplement your learning and stay up-to-date with industry best practices.
Show steps
  • Attend industry events and conferences to meet potential mentors.
  • Reach out to professors, researchers, or industry professionals in your field of interest.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve Sudoku puzzles
Sharpen your logical reasoning and problem-solving skills by regularly solving Sudoku puzzles, which demonstrate the application of constraint programming.
Show steps
  • Start with beginner-level puzzles to grasp the basics.
  • Challenge yourself with more complex puzzles as you progress.
Explore the Minizinc programming language
Learn the basics of Minizinc, a modeling language specifically designed for solving constraint programming problems, to enhance your understanding of the course material.
Show steps
  • Follow online tutorials or documentation to learn the syntax and basic concepts of Minizinc.
  • Experiment with writing and solving simple Minizinc models.
Curate a resource library on optimization techniques
Gather and organize a comprehensive collection of resources, including articles, tutorials, software tools, and datasets, on various optimization techniques to serve as a valuable reference for your learning journey.
Show steps
  • Conduct online research to identify relevant resources.
  • Create a structured repository or website to store and organize the resources.
  • Categorize and tag the resources for ease of access.
Solve optimization problems with Gurobi
Gain hands-on experience in solving mixed-integer linear programming problems using Gurobi, a popular optimization solver, to reinforce your understanding of the techniques covered in the course.
Show steps
  • Install Gurobi and familiarize yourself with its user interface.
  • Practice formulating and solving optimization problems using Gurobi's modeling language.
  • Explore advanced features of Gurobi to enhance your problem-solving capabilities.

Career center

Learners who complete 离散优化算法篇 Solving Algorithms for Discrete Optimization will develop knowledge and skills that may be useful to these careers:
Operations Research Analyst
Operations research analysts are experts in using advanced analytical techniques to solve complex business problems. They use mathematical modeling, optimization techniques, and statistical analysis to improve efficiency and productivity in a variety of industries, including manufacturing, healthcare, and finance. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the techniques used by operations research analysts, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for operations research analysts who want to specialize in solving discrete optimization problems.
Data Scientist
Data scientists use their knowledge of mathematics, statistics, and computer science to extract insights from data. They develop and apply algorithms to analyze data and build models that can be used to make predictions and solve business problems. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by data scientists, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for data scientists who want to specialize in solving discrete optimization problems.
Quantitative Analyst
Quantitative analysts use mathematical and statistical models to analyze financial data and make investment decisions. They develop and apply algorithms to analyze risk and return, and to build models that can be used to make trading decisions. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by quantitative analysts, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for quantitative analysts who want to specialize in solving discrete optimization problems.
Software Engineer
Software engineers design, develop, and maintain software systems. They use their knowledge of programming languages and algorithms to create software that meets the needs of users. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by software engineers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for software engineers who want to specialize in developing software for solving discrete optimization problems.
Management Consultant
Management consultants help businesses improve their performance by providing advice on strategy, operations, and technology. They use their knowledge of business and management principles to develop and implement solutions to complex problems. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by management consultants, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for management consultants who want to specialize in solving discrete optimization problems.
Actuary
Actuaries use mathematical and statistical models to assess risk and uncertainty. They develop and apply models to calculate insurance premiums, pensions, and other financial products. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by actuaries, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for actuaries who want to specialize in solving discrete optimization problems.
Financial Analyst
Financial analysts use financial data to make investment recommendations and provide advice to clients. They use their knowledge of financial markets and investment strategies to develop and implement investment portfolios. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by financial analysts, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for financial analysts who want to specialize in solving discrete optimization problems.
Market Researcher
Market researchers collect and analyze data about consumers and markets. They use their knowledge of research methods and statistical analysis to develop and implement marketing strategies. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by market researchers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for market researchers who want to specialize in solving discrete optimization problems.
Operations Manager
Operations managers plan and coordinate the activities of a business to achieve its goals. They use their knowledge of business processes and management principles to develop and implement efficient and effective operations. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by operations managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for operations managers who want to specialize in solving discrete optimization problems.
Product Manager
Product managers are responsible for the development and marketing of products. They work with engineers, designers, and marketers to develop and launch products that meet the needs of customers. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by product managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for product managers who want to specialize in developing products that solve discrete optimization problems.
Project Manager
Project managers plan and execute projects to achieve specific goals. They use their knowledge of project management principles and techniques to develop and implement project plans, and to manage project teams. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by project managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for project managers who want to specialize in managing projects that involve solving discrete optimization problems.
Risk Manager
Risk managers identify and assess risks that a business faces. They develop and implement strategies to mitigate these risks, and to ensure the continuity of the business. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by risk managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for risk managers who want to specialize in solving discrete optimization problems.
Supply Chain Manager
Supply chain managers plan and manage the flow of goods and services from suppliers to customers. They use their knowledge of supply chain management principles and techniques to develop and implement efficient and effective supply chains. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by supply chain managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for supply chain managers who want to specialize in solving discrete optimization problems.
Transportation Manager
Transportation managers plan and manage the movement of goods and people. They use their knowledge of transportation management principles and techniques to develop and implement efficient and effective transportation systems. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by transportation managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for transportation managers who want to specialize in solving discrete optimization problems.
Warehouse Manager
Warehouse managers plan and manage the storage and distribution of goods. They use their knowledge of warehouse management principles and techniques to develop and implement efficient and effective warehouse operations. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by warehouse managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for warehouse managers who want to specialize in solving discrete optimization problems.

Reading list

We've selected nine 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 离散优化算法篇 Solving Algorithms for Discrete Optimization.
One of the pioneers in constraint programming, this book provides comprehensive theoretical background and advanced applications in this field.
As an important textbook for teaching discrete optimization at universities, this book is quite useful for self-study and for professionals who want to learn more about the subject.
Is an introductory textbook in combinatorial and discrete optimization. It is useful for both academic audience and industrial practitioners.
Can be a great reference book covering local search. It offers a good introduction to this subject for those who are interested.
Is not an introduction to constraint programming but rather an introduction to the modeling of combinatorial optimization problems in constraint programming.
Is about the Linear Programming (LP) methodology in Operations Research and demonstrates how LP can be applied in practice to help solve real-world mathematical problems. It is good for those who need to apply LP in practice.
For those who want to learn about non-linear programming, this book provides an overview of the theoretical aspects as well as practical numerical algorithms.
General book for computational optimization and applications. It provides an introduction to optimization. This book mainly is for graduate students and practitioners in operations research, computer science, and applied mathematics.

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